123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * this file is register_globals safe
- *
- * @todo move JavaScript out of here into .js files
- * @package PhpMyAdmin
- */
- /**
- *
- */
- require_once 'libraries/common.inc.php';
- $is_superuser = $GLOBALS['dbi']->isSuperuser();
- /**
- * Gets a core script and starts output buffering work
- */
- require_once 'libraries/sql_query_form.lib.php';
- /**
- * load relation params
- */
- $cfgRelation = PMA_getRelationsParam();
- /**
- * load bookmark support
- */
- require_once 'libraries/bookmark.lib.php';
- $querydisplay_tabs = array(
- 'sql',
- 'files',
- 'history',
- 'full',
- );
- if (isset($_REQUEST['querydisplay_tab'])
- && in_array($_REQUEST['querydisplay_tab'], $querydisplay_tabs)
- ) {
- $querydisplay_tab = $_REQUEST['querydisplay_tab'];
- } else {
- $querydisplay_tab = $GLOBALS['cfg']['QueryWindowDefTab'];
- }
- /**
- * $_REQUEST['no_js'] is set if open new window by JavaScript failed
- * so this page is loaded in main frame
- */
- $no_js = PMA_ifSetOr($_REQUEST['no_js'], false);
- if ($no_js) {
- $querydisplay_tab = 'full';
- $tabs = false;
- } else {
- $tabs = array();
- $tabs['sql']['icon'] = 'b_sql.png';
- $tabs['sql']['text'] = __('SQL');
- $tabs['sql']['fragment'] = '#';
- $tabs['sql']['attr'] = 'onclick="PMA_querywindowCommit(\'sql\');return false;"';
- $tabs['sql']['active'] = (bool) ($querydisplay_tab == 'sql');
- $tabs['import']['icon'] = 'b_import.png';
- $tabs['import']['text'] = __('Import files');
- $tabs['import']['fragment'] = '#';
- $tabs['import']['attr']
- = 'onclick="PMA_querywindowCommit(\'files\');return false;"';
- $tabs['import']['active'] = (bool) ($querydisplay_tab == 'files');
- $tabs['history']['icon'] = 'b_bookmark.png';
- $tabs['history']['text'] = __('SQL history');
- $tabs['history']['fragment'] = '#';
- $tabs['history']['attr']
- = 'onclick="PMA_querywindowCommit(\'history\');return false;"';
- $tabs['history']['active'] = (bool) ($querydisplay_tab == 'history');
- if ($GLOBALS['cfg']['QueryWindowDefTab'] == 'full') {
- $tabs['all']['text'] = __('All');
- $tabs['all']['fragment'] = '#';
- $tabs['all']['attr']
- = 'onclick="PMA_querywindowCommit(\'full\');return false;"';
- $tabs['all']['active'] = (bool) ($querydisplay_tab == 'full');
- }
- }
- $titles['Change'] = PMA_Util::getIcon('b_edit.png', __('Change'));
- $url_query = PMA_URL_getCommon($db, $table);
- if (! empty($sql_query)) {
- $show_query = 1;
- }
- if ($no_js) {
- // ... we redirect to appropriate query sql page
- // works only full if $db and $table is also stored/grabbed from $_COOKIE
- if (strlen($table)) {
- include 'tbl_sql.php';
- } elseif (strlen($db)) {
- include 'db_sql.php';
- } else {
- include 'server_sql.php';
- }
- exit;
- }
- /**
- * Defines the query to be displayed in the query textarea
- */
- if (! empty($show_query)) {
- $query_to_display = $sql_query;
- } else if (! empty($_REQUEST['sql_query'])) {
- $query_to_display = htmlspecialchars($_REQUEST['sql_query']);
- $show_query = 1;
- } else {
- $query_to_display = '';
- }
- $sql_query = '';
- /**
- * prepare JavaScript functionality
- */
- $response = PMA_Response::getInstance();
- $response->getFooter()->setMinimal();
- $header = $response->getHeader();
- $header->disableMenu();
- $header->setBodyId('bodyquerywindow');
- $scripts = $header->getScripts();
- $scripts->addFile('common.js');
- $scripts->addFile('querywindow.js');
- if (PMA_isValid($_REQUEST['auto_commit'], 'identical', 'true')) {
- $scripts->addEvent('load', 'PMA_queryAutoCommit');
- }
- // always set focus to the textarea
- if ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full') {
- $scripts->addEvent('load', 'PMA_querywindowSetFocus');
- }
- echo '<div id="querywindowcontainer">';
- if ($tabs) {
- echo PMA_Util::getHtmlTabs($tabs, array(), 'topmenu', true);
- unset($tabs);
- }
- echo PMA_getHtmlForSqlQueryForm($query_to_display, $querydisplay_tab);
- // Hidden forms and query frame interaction stuff
- $_sql_history = PMA_getHistory($GLOBALS['cfg']['Server']['user']);
- if (! empty($_sql_history)
- && ($querydisplay_tab == 'history' || $querydisplay_tab == 'full')
- ) {
- $tab = $querydisplay_tab != 'full' ? 'sql' : 'full';
- echo __('SQL history:') . '<br />'
- . '<ul>';
- foreach ($_sql_history as $query) {
- echo '<li>' . "\n";
- // edit link
- $url_params = array(
- 'querydisplay_tab' => $tab,
- 'sql_query' => $query['sqlquery'],
- 'db' => $query['db'],
- 'table' => $query['table'],
- );
- echo '<a href="querywindow.php' . PMA_URL_getCommon($url_params)
- . '">' . $titles['Change'] . '</a>';
- // execute link
- $url_params['auto_commit'] = 'true';
- echo '<a href="import.php' . PMA_URL_getCommon($url_params) . '"'
- . ' target="frame_content">';
- if (! empty($query['db'])) {
- echo '[';
- echo htmlspecialchars(PMA_Util::backquote($query['db']));
- if (! empty($query['table'])) {
- echo '.' . htmlspecialchars(PMA_Util::backquote($query['table']));
- }
- echo '] ';
- }
- if (strlen($query['sqlquery']) > 120) {
- echo '<span title="' . htmlspecialchars($query['sqlquery']) . '">';
- echo htmlspecialchars(substr($query['sqlquery'], 0, 50)) . ' [...] ';
- echo htmlspecialchars(substr($query['sqlquery'], -50));
- echo '</span>';
- } else {
- echo htmlspecialchars($query['sqlquery']);
- }
- echo '</a>' . "\n";
- echo '</li>' . "\n";
- }
- unset($tab, $_sql_history, $query);
- echo '</ul>' . "\n";
- }
- echo '<form action="querywindow.php" method="post" name="hiddenqueryform"';
- echo ' id="hiddenqueryform">';
- echo PMA_URL_getHiddenInputs('', '');
- echo '<input type="hidden" name="db" value="' . htmlspecialchars($db) . '" />';
- echo '<input type="hidden" name="table" value="'
- . htmlspecialchars($table) . '" />';
- echo '<input type="hidden" name="sql_query" value="" />';
- echo '<input type="hidden" name="querydisplay_tab" value="'
- . $querydisplay_tab . '" />';
- echo '</form>';
- echo '</div>';
|