Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xChangeLog7
-rw-r--r--css/phpmyadmin.css.php76
-rw-r--r--db_details.php246
-rw-r--r--libraries/sql_query_form.lib.php515
-rw-r--r--querywindow.php63
-rw-r--r--read_dump.php4
-rw-r--r--server_sql.php200
-rw-r--r--sql.php5
-rw-r--r--tbl_properties.php20
-rw-r--r--tbl_properties_structure.php4
-rw-r--r--tbl_query_box.php558
11 files changed, 707 insertions, 991 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e16e42612..4b9a7ee1fa 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,13 @@ phpMyAdmin - Changelog
$Id$
$Source$
+2005-09-26 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * libraries/sql_query_form.lib.php, db_details.php, server_sql.php
+ tbl_properties.php, tbl_properties_structure.php, sql.php,
+ querywindow.php, read_dump.php: moved all code for queryboxes into
+ libraries/sql_query_form.lib.php, replaced table with fieldsets, moved
+ styles into css, minor interface changes related to queryboxes
+
2005-09-27 Michal Čihař <michal@cihar.com>
* lang/czech: Update.
* server_status.php, lang/*: Separate some new information on MySQL 5.
diff --git a/css/phpmyadmin.css.php b/css/phpmyadmin.css.php
index 990c16f1e8..8775dbbc72 100644
--- a/css/phpmyadmin.css.php
+++ b/css/phpmyadmin.css.php
@@ -89,10 +89,80 @@ body#bodyquerywindow {
div#querywindowcontainer {
margin: 0;
- padding: 0.5em;
+ padding: 0;
+ width: 100%;
+}
+
+div#querywindowcontainer fieldset {
+ margin-top: 0;
+}
+
+
+/* querybox */
+
+/* Gecko bug */
+div[id=queryfieldscontainer] {
+ border: 1px solid transparent;
+}
+
+
+div#sqlquerycontainer {
float: left;
+ width: 69%;
+ /* height: 15em; */
}
+div#tablefieldscontainer {
+ float: right;
+ width: 29%;
+ /* height: 15em; */
+}
+
+div#tablefieldscontainer select {
+ width: 100%;
+ /* height: 12em; */
+}
+
+textarea#sqlquery {
+ width: 100%;
+ /* height: 100%; */
+}
+
+div#queryboxcontainer div#bookmarkoptions {
+ margin-top: 0.5em;
+}
+
+fieldset .formelement {
+ line-height: 2.3em;
+ float: left;
+ margin-right: 0.5em;
+ /* IE */
+ white-space: nowrap;
+}
+/* revert for Gecko */
+fieldset div[class=formelement] {
+ white-space: normal;
+}
+
+/* IE */
+fieldset .formelement input,
+fieldset .formelement select {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ height: 1.3em;
+}
+/* revert for Gecko */
+fieldset div[class=formelement] input,
+fieldset div[class=formelement] select {
+ margin-top: auto;
+ margin-bottom: auto;
+ height: auto;
+}
+
+
+/* end querybox */
+
+
/* Calendar */
table.calendar { width: 100%; }
table.calendar td { text-align: center; }
@@ -115,10 +185,10 @@ form.clock { text-align: center; }
/* end Calendar */
/* Options, eg. on import page */
-fieldset.options {
+fieldset {
background-color: <?php echo $cfg['BgcolorOne']; ?>;
}
-fieldset.options legend {
+fieldset legend {
background-color: transparent;
}
diff --git a/db_details.php b/db_details.php
index 1d5e3dd50b..dc4c9ffb15 100644
--- a/db_details.php
+++ b/db_details.php
@@ -7,253 +7,27 @@
* Runs common work
*/
require('./db_details_common.php');
-$url_query .= '&amp;goto=db_details.php';
-
-
-/**
- * Database work
- */
-if (isset($show_query) && $show_query == '1') {
- // This script has been called by read_dump.php
- if (isset($sql_query_cpy)) {
- $query_to_display = $sql_query_cpy;
- }
- // Other cases
- else {
- $query_to_display = $sql_query;
- }
-} else {
- $query_to_display = '';
-}
-
+require_once './libraries/sql_query_form.lib.php';
/**
* Gets informations about the database and, if it is empty, move to the
* "db_details_structure.php" script where table can be created
*/
-$sub_part = '';
require('./db_details_db_info.php');
-if ($num_tables == 0 && empty($db_query_force)) {
- $is_info = TRUE;
- require('./db_details_structure.php');
+if ( $num_tables == 0 && empty( $db_query_force ) ) {
+ $sub_part = '';
+ $is_info = TRUE;
+ require './db_details_structure.php';
exit();
}
-// loic1: defines wether file upload is available or not
-// (now defined in common.lib.php)
-
-$auto_sel = ($cfg['TextareaAutoSelect']
- // 2003-02-05 rabus: This causes big trouble with Opera 7 for
- // Windows, so let's disable it there...
- && !(PMA_USR_OS == 'Win' && PMA_USR_BROWSER_AGENT == 'OPERA' && PMA_USR_BROWSER_VER >= 7))
- ? "\n" . ' onfocus="if (typeof(document.layers) == \'undefined\' || typeof(textarea_selected) == \'undefined\') {textarea_selected = 1; this.form.elements[\'sql_query\'].select();}"'
- : '';
-
-
-// for better administration
-$strHiddenFields = ' <input type="hidden" name="is_js_confirmed" value="0" />' ."\n"
- . ' ' .PMA_generate_common_hidden_inputs($db) . "\n"
- . ' <input type="hidden" name="pos" value="0" />' . "\n"
- . ' <input type="hidden" name="goto" value="db_details.php" />' . "\n"
- . ' <input type="hidden" name="zero_rows" value="' . htmlspecialchars($strSuccess) . '" />' . "\n"
- . ' <input type="hidden" name="prev_sql_query" value="' . ((!empty($query_to_display)) ? htmlspecialchars($query_to_display) : '') . '" />' . "\n";
-?>
-<!-- Query box, sql file loader and bookmark support -->
-<form method="post" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform">
-<?php
-echo $strHiddenFields;
-?>
-<a name="querybox"></a>
-<table border="0" cellpadding="2" cellspacing="0">
-<tr><td class="tblHeaders" colspan="2">
- <?php
- // if you want navigation:
- $strDBLink = '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase'] . '?' . PMA_generate_common_url() . '&amp;db=' . urlencode($db) . '">'
- . htmlspecialchars($db) . '</a>';
- // else use
- // $strDBLink = htmlspecialchars($db);
- echo '&nbsp;' . sprintf($strRunSQLQuery, $strDBLink) . ':&nbsp;' . PMA_showMySQLDocu('Reference', 'SELECT');
-
- ?>
-</td></tr>
-<tr align="center" bgcolor="<?php echo $cfg['BgcolorOne']; ?>"><td colspan="2">
-<textarea name="sql_query" cols="<?php echo $cfg['TextareaCols'] * 2; ?>" rows="<?php echo $cfg['TextareaRows']; ?>" dir="<?php echo $text_dir; ?>"<?php echo $auto_sel; ?>>
-<?php
-if (!empty($query_to_display)) {
- echo htmlspecialchars($query_to_display);
-} else {
- echo htmlspecialchars(str_replace('%d', PMA_backquote($db), $cfg['DefaultQueryDatabase']));
-}
-?></textarea>
-</td></tr>
-<tr class="tblFooters">
- <td>
- <input type="checkbox" name="show_query" value="1" id="checkbox_show_query" checked="checked" /><label for="checkbox_show_query"><?php echo $strShowThisQuery; ?></label>
- </td>
- <td align="right"><input type="submit" name="SQL" value="<?php echo $strGo; ?>" /></td>
-</tr>
-<?php
-// loic1: displays import dump feature only if file upload available
-if ($is_upload) {
-?>
-<tr><td colspan="2"><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" width="1" height="1" border="0" alt="" /></td></tr>
-<tr>
- <td colspan="2" class="tblHeaders">
- <i><?php echo $strOr; ?></i>
- <b><?php echo $strLocationTextfile; ?>:</b>
- </td>
-</tr>
-<tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td colspan="2" align="center">
- <input type="file" name="sql_file" class="textfield" />&nbsp;
- <?php
- echo PMA_displayMaximumUploadSize($max_upload_size) . '<br />';
- // some browsers should respect this :)
- echo ' ' . PMA_generateHiddenMaxFileSize($max_upload_size) . "\n";
- $is_gzip = ($cfg['GZipDump'] && @function_exists('gzopen'));
- $is_bzip = ($cfg['BZipDump'] && @function_exists('bzdecompress'));
- if ($is_bzip || $is_gzip) {
- echo ' </td>' . "\n"
- . '</tr>' . "\n"
- . '<tr bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
- . ' <td colspan="2">' . "\n";
- echo ' &nbsp;&nbsp;' . $strCompression . ':<br />&nbsp;&nbsp;&nbsp;' . "\n"
- . ' <input type="radio" id="radio_sql_file_compression_auto" name="sql_file_compression" value="" checked="checked" /><label for="radio_sql_file_compression_auto">' . $strAutodetect . '</label>&nbsp;&nbsp;' . "\n"
- . ' <input type="radio" id="radio_sql_file_compression_plain" name="sql_file_compression" value="text/plain" /><label for="radio_sql_file_compression_plain">' . $strNone . '</label>&nbsp;&nbsp' . "\n";
- if ($is_gzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_gzip" name="sql_file_compression" value="application/x-gzip" /><label for="radio_sql_file_compression_gzip">' . $strGzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- if ($is_bzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_bzip" name="sql_file_compression" value="application/x-bzip" /><label for="radio_sql_file_compression_bzip">' . $strBzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- } else {
- ?>
- <input type="hidden" name="sql_file_compression" value="text/plain" />
- </td>
-</tr>
- <?php
- }
-} // end if (is upload)
-// web-server upload directory
-$is_upload_dir = false;
-if (!empty($cfg['UploadDir'])) {
- if (substr($cfg['UploadDir'], -1) != '/') {
- $cfg['UploadDir'] .= '/';
- }
- if ($handle = @opendir($cfg['UploadDir'])) {
- $is_first = 0;
- while ($file = @readdir($handle)) {
- if (is_file($cfg['UploadDir'] . $file) && PMA_checkFileExtensions($file, '.sql')) {
- if ($is_first == 0) {
- $is_upload_dir = true;
- echo "\n";
- echo ' <tr><td colspan=2" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n";
- echo ' &nbsp;<b>' . $strWebServerUploadDirectory . ':</b>&nbsp;' . "\n";
- echo ' </td></tr>' . "\n";
- echo ' <tr bgcolor="' . $cfg['BgcolorOne'] . '"><td colspan="2">' . "\n";
- // add 2004-05-08 by mkkeck
- // todo: building a php script for indexing files in UploadDir
- //if ($cfg['UploadDirIndex']) {
- // echo '&nbsp;<a href="' . $cfg['UploadDir'] . '" target="_blank">' . $cfg['UploadDir'] . '</a>&nbsp;';
- //}
- // end indexing
- echo ' <select size="1" name="sql_localfile">' . "\n";
- echo ' <option value="" selected="selected"></option>' . "\n";
- } // end if (is_first)
- echo ' <option value="' . htmlspecialchars($file) . '">' . htmlspecialchars($file) . '</option>' . "\n";
- $is_first++;
- } // end if (is_file)
- } // end while
- if ($is_first > 0) {
- echo ' </select>' . "\n"
- . ' </td>'
- . ' </tr>' . "\n\n";
- } // end if (isfirst > 0)
- @closedir($handle);
- }
- else {
- $upload_dir_error = '<tr><td colspan="2"><img src="' .$GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n"
- . '<tr><th colspan="2" class="tblHeadError"><div class="errorhead">' . $strError . '</div></th></tr>' . "\n"
- . '<tr><td colspan="2" class="tblError">' . $strWebServerUploadDirectoryError
- . '</td></tr>' . "\n";
- }
-} // end if (web-server upload directory)
-// Charset conversion options
-if ($is_upload || $is_upload_dir) {
- echo ' <tr class="tblFooters"><td>' . "\n";
- if (PMA_MYSQL_INT_VERSION < 40100 && $cfg['AllowAnywhereRecoding'] && $allow_recoding) {
- $temp_charset = reset($cfg['AvailableCharsets']);
- echo '&nbsp;' . $strCharsetOfFile . "\n"
- . ' <select name="charset_of_file" size="1">' . "\n"
- . ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- while ($temp_charset = next($cfg['AvailableCharsets'])) {
- echo ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- }
- echo ' </select><br />' . "\n" . ' ';
- } elseif (PMA_MYSQL_INT_VERSION >= 40100) {
- echo $strCharsetOfFile . "\n";
- echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', NULL, 'utf8', FALSE);
- } // end if (recoding)
- echo ' </td>' . "\n";
- echo ' <td align="right"><input type="submit" name="SQL" value="' . $strGo . '" /></td>' . "\n";
- echo ' </tr>' . "\n";
-}
-// Bookmark Support
-if ($cfg['Bookmark']['db'] && $cfg['Bookmark']['table']) {
- if (($bookmark_list = PMA_listBookmarks($db, $cfg['Bookmark'])) && count($bookmark_list) > 0) {
- echo ' <tr><td colspan="2"><img src="' .$GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n";
- echo ' <tr><td colspan="2" class="tblHeaders">&nbsp;<i>' . $strOr . '</i></td></tr>' . "\n";
- echo ' <tr bgcolor="' . $cfg['BgcolorOne'] . '"><td colspan="2">' . "\n";
- echo ' <b>' . $strBookmarkQuery . ':</b>&nbsp;' . "\n";
- echo ' <select name="id_bookmark">' . "\n";
- echo ' <option value=""></option>' . "\n";
- foreach ($bookmark_list AS $key => $value) {
- echo ' <option value="' . htmlspecialchars($key) . '">' . htmlspecialchars($value) . '</option>' . "\n";
- }
- echo ' </select>' . "\n";
- echo ' </td></tr><tr bgcolor="' . $cfg['BgcolorOne'] . '"><td colspan="2">';
- echo ' ' . $strVar . ' ';
- if ($cfg['ReplaceHelpImg']){
- echo '<a href="./Documentation.html#faqbookmark" target="documentation">'
- . '<img src="' .$pmaThemeImage . 'b_help.png" border="0" width="11" height="11" align="middle" alt="' . $strDocu . '" /></a>';
- }else{
- echo '(<a href="./Documentation.html#faqbookmark" target="documentation">' . $strDocu . '</a>):&nbsp;';
- }
- echo ' <input type="text" name="bookmark_variable" class="textfield" size="10" />' . "\n";
- echo ' </td></tr><tr bgcolor="' . $cfg['BgcolorOne'] . '"><td>';
- echo ' <input type="radio" name="action_bookmark" value="0" id="radio_bookmark0" checked="checked" style="vertical-align: middle" /><label for="radio_bookmark0">' . $strSubmit . '</label>' . "\n";
- echo ' &nbsp;<input type="radio" name="action_bookmark" value="1" id="radio_bookmark1" style="vertical-align: middle" /><label for="radio_bookmark1">' . $strBookmarkView . '</label>' . "\n";
- echo ' &nbsp;<input type="radio" name="action_bookmark" value="2" id="radio_bookmark2" style="vertical-align: middle" /><label for="radio_bookmark2">' . $strDelete . '</label>' . "\n";
- echo ' </td>' . "\n";
- echo ' <td align="right"><input type="submit" name="SQL" value="' . $strGo . '" /></td>';
- echo ' </tr>' . "\n";
- }
-}
+/**
+ * Query box, bookmark, insert data from textfile
+ */
+PMA_sqlQueryForm();
-// Encoding setting form appended by Y.Kawada
-if (function_exists('PMA_set_enc_form')) {
- echo PMA_set_enc_form(' ');
-}
-// modified by mkkeck 2004-05-08
-// showing UploadDir Error at the end of all option for SQL-Queries
-if (isset($upload_dir_error)) {
- echo $upload_dir_error;
-}
-?>
-</table>
-</form>
-<?php
/**
* Displays the footer
*/
-echo "\n";
-require_once('./footer.inc.php');
+require_once './footer.inc.php';
?>
diff --git a/libraries/sql_query_form.lib.php b/libraries/sql_query_form.lib.php
new file mode 100644
index 0000000000..9bad54d245
--- /dev/null
+++ b/libraries/sql_query_form.lib.php
@@ -0,0 +1,515 @@
+<?php
+/* $Id */
+// vim: expandtab sw=4 ts=4 sts=4:
+/**
+ * functions for displaying the sql query form
+ */
+
+/**
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['goto']
+ * @uses $GLOBALS['is_upload'] from common.lib.php
+ * @uses $GLOBALS['sql_query'] from grab_globals.lib.php
+ * @uses $GLOBALS['cfg']['DefaultQueryTable']
+ * @uses $GLOBALS['cfg']['DefaultQueryDatabase']
+ * @uses $GLOBALS['cfg']['QueryFrame']
+ * @uses $GLOBALS['cfg']['QueryFrameJS']
+ * @uses $GLOBALS['cfg']['Servers']
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase']
+ * @uses $GLOBALS['cfg']['DefaultQueryDatabase']
+ * @uses $GLOBALS['cfg']['DefaultQueryTable']
+ * @uses $GLOBALS['cfg']['Bookmark']['db']
+ * @uses $GLOBALS['cfg']['Bookmark']['table']
+ * @uses $GLOBALS['strSuccess']
+ * @uses PMA_generate_common_url()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_showMySQLDocu()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_sqlQueryFormBookmark()
+ * @uses PMA_sqlQueryFormInsert()
+ * @uses PMA_sqlQueryFormUpload()
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_set_enc_form()
+ * @uses sprintf()
+ * @uses htmlspecialchars()
+ * @uses str_replace()
+ * @uses md5()
+ * @uses function_exists()
+ * @param boolean|string $query query to display in the textarea
+ * or true to display last executed
+ * @param boolean|string $display_tab sql|files|history|full|FALSE
+ * what part to display
+ * false if not inside querywindow
+ */
+function PMA_sqlQueryForm( $query = true, $display_tab = false ) {
+ // check tab to display if inside querywindow
+ if ( ! $display_tab ) {
+ $display_tab = 'full';
+ $is_querywindow = false;
+ } else {
+ $is_querywindow = true;
+ }
+
+ // query to show
+ if ( true === $query ) {
+ $query = empty( $GLOBALS['sql_query'] ) ? '' : $GLOBALS['sql_query'];
+ }
+
+ // we dont need to check booth variables each time
+ if ( false == $GLOBALS['cfg']['QueryFrame'] ) {
+ $GLOBALS['cfg']['QueryFrameJS'] = false;
+ }
+
+ // set enctype to multipart for file uploads
+ if ( $GLOBALS['is_upload'] ) {
+ $enctype = ' enctype="multipart/form-data"';
+ } else {
+ $enctype = '';
+ }
+
+ $table = '';
+ $db = '';
+ if ( empty( $GLOBALS['db'] ) ) {
+ // prepare for server related
+ $goto = empty( $GLOBALS['goto'] ) ?
+ 'server_sql.php' : $GLOBALS['goto'];
+ }
+ elseif ( empty( $GLOBALS['table'] ) ) {
+ // prepare for db related
+ $db = $GLOBALS['db'];
+ $goto = empty( $GLOBALS['goto'] ) ?
+ 'db_details.php' : $GLOBALS['goto'];
+ } else {
+ $table = $GLOBALS['table'];
+ $db = $GLOBALS['db'];
+ $goto = empty( $GLOBALS['goto'] ) ?
+ 'tbl_properties.php' : $GLOBALS['goto'];
+ }
+
+
+ // start output
+ if ( $GLOBALS['cfg']['QueryFrameJS'] && $is_querywindow ) {
+ ?>
+ <form method="post" id="sqlqueryform"
+ target="phpmain<?php echo md5( $GLOBALS['cfg']['PmaAbsoluteUri'] ); ?>"
+ action="read_dump.php"<?php echo $enctype; ?> name="sqlform"
+ onsubmit="this.target=window.opener.parent.frames[2].name;
+ return checkSqlQuery(this);" >
+ <?php
+ } else {
+ echo '<form method="post" action="read_dump.php" ' . $enctype
+ .' onsubmit="return checkSqlQuery(this)" name="sqlform">' . "\n";
+ }
+
+ if ( $is_querywindow ) {
+ echo '<input type="hidden" name="focus_querywindow" value="true" />'
+ ."\n";
+ if ( $display_tab != 'sql' && $display_tab != 'full' ) {
+ echo '<input type="hidden" name="sql_query" value="" />' . "\n";
+ echo '<input type="hidden" name="show_query" value="1" />' . "\n";
+ }
+ }
+ echo '<input type="hidden" name="is_js_confirmed" value="0" />' . "\n"
+ .PMA_generate_common_hidden_inputs( $db, $table ) . "\n"
+ .'<input type="hidden" name="pos" value="0" />' . "\n"
+ .'<input type="hidden" name="goto" value="'
+ .htmlspecialchars( $goto ) . '" />' . "\n"
+ .'<input type="hidden" name="zero_rows" value="'
+ . htmlspecialchars( $GLOBALS['strSuccess'] ) . '" />' . "\n"
+ .'<input type="hidden" name="prev_sql_query" value="'
+ . htmlspecialchars( $query ) . '" />' . "\n";
+
+ // display querybox
+ if ( $display_tab === 'full' || $display_tab === 'sql' ) {
+ PMA_sqlQueryFormInsert( $query, $is_querywindow );
+ }
+
+ // display uploads
+ if ( $display_tab === 'full' || $display_tab === 'files' ) {
+ if ( $GLOBALS['is_upload'] ) {
+ PMA_sqlQueryFormUpload( $display_tab );
+ }
+ }
+
+ // Bookmark Support
+ if ( $display_tab === 'full' || $display_tab === 'history' ) {
+ if ( ! empty( $GLOBALS['cfg']['Bookmark'] )
+ && $GLOBALS['cfg']['Bookmark']['db']
+ && $GLOBALS['cfg']['Bookmark']['table'] ) {
+ PMA_sqlQueryFormBookmark( $display_tab );
+ }
+ }
+
+ // Encoding setting form appended by Y.Kawada
+ if ( function_exists('PMA_set_enc_form') ) {
+ echo PMA_set_enc_form(' ');
+ }
+
+ echo '</form>' . "\n";
+}
+
+/**
+ *
+ * @param string $query query to display in the textarea
+ * @uses $GLOBALS['text_dir']
+ * @uses $GLOBALS['cfg']['QueryFrameJS']
+ * @uses $GLOBALS['cfg']['TextareaAutoSelect']
+ * @uses $GLOBALS['cfg']['TextareaCols']
+ * @uses $GLOBALS['cfg']['TextareaRows']
+ * @uses $GLOBALS['strShowThisQuery']
+ * @uses $GLOBALS['strGo']
+ * @uses PMA_availableDatabases()
+ * @uses PMA_USR_OS
+ * @uses PMA_USR_BROWSER_AGENT
+ * @uses PMA_USR_BROWSER_VER
+ * @uses PMA_availableDatabases()
+ * @uses htmlspecialchars()
+ */
+function PMA_sqlQueryFormInsert( $query = '', $is_querywindow = false ) {
+
+ // enable auto select text in textarea
+ if ( $GLOBALS['cfg']['TextareaAutoSelect'] ) {
+ $auto_sel = ' onfocus="if (typeof(document.layers) == \'undefined\' || '
+ .' typeof(textarea_selected) == \'undefined\') {textarea_selected '
+ .'= 1; this.form.elements[\'sql_query\'].select();}"';
+ } else {
+ $auto_sel = '';
+ }
+
+ // enable locking if inside query window
+ if ( $GLOBALS['cfg']['QueryFrameJS'] && $is_querywindow ) {
+ $locking = ' onkeypress="document.sqlform.elements[\'LockFromUpdate\'].'
+ .'checked = true;"';
+ } else {
+ $locking = '';
+ }
+
+ $table = '';
+ $db = '';
+ $fields_list = array();
+ if ( empty( $GLOBALS['db'] ) ) {
+ // prepare for server related
+ $legend = sprintf( $GLOBALS['strRunSQLQueryOnServer'],
+ htmlspecialchars(
+ $GLOBALS['cfg']['Servers'][$GLOBALS['server']]['host'] ) );
+ }
+ elseif ( empty( $GLOBALS['table'] ) ) {
+ // prepare for db related
+ $db = $GLOBALS['db'];
+ // if you want navigation:
+ $strDBLink = '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . PMA_generate_common_url( $db ) . '">'
+ . htmlspecialchars( $db ) . '</a>';
+ // else use
+ // $strDBLink = htmlspecialchars( $db );
+ $legend = sprintf( $GLOBALS['strRunSQLQuery'], $strDBLink );
+ if ( empty( $query ) ) {
+ $query = str_replace( '%d',
+ PMA_backquote( $db ), $GLOBALS['cfg']['DefaultQueryDatabase'] );
+ }
+ } else {
+ $table = $GLOBALS['table'];
+ $db = $GLOBALS['db'];
+ // Get the list and number of fields
+ // we do a try_query here, because we could be in the query window,
+ // trying to synchonize and the table has not yet been created
+ $fields_list = PMA_DBI_fetch_result(
+ 'SHOW FULL COLUMNS FROM ' . PMA_backquote( $db )
+ . '.' . PMA_backquote( $GLOBALS['table'] ));
+
+ $strDBLink = '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . PMA_generate_common_url( $db ) . '">'
+ . htmlspecialchars( $db ) . '</a>';
+ // else use
+ // $strDBLink = htmlspecialchars( $db );
+ $legend = sprintf( $GLOBALS['strRunSQLQuery'], $strDBLink );
+ if ( empty( $query ) && count( $fields_list ) ) {
+ $query =
+ str_replace( '%d', PMA_backquote( $db ),
+ str_replace( '%t', PMA_backquote( $table ),
+ str_replace( '%f',
+ implode( ', ', PMA_backquote( $fields_list ) ),
+ $GLOBALS['cfg']['DefaultQueryTable'] ) ) );
+ }
+ }
+ $legend .= ': ' . PMA_showMySQLDocu( 'Reference', 'SELECT' );
+
+ if ( count( $fields_list ) ) {
+ $sqlquerycontainer_id = 'sqlquerycontainer';
+ } else {
+ $sqlquerycontainer_id = 'sqlquerycontainerfull';
+ }
+
+ echo '<a name="querybox"></a>' . "\n"
+ .'<div id="queryboxcontainer">' . "\n"
+ .'<fieldset id="querybox">' . "\n";
+ echo '<legend>' . $legend . '</legend>' . "\n";
+ echo '<div id="queryfieldscontainer">' . "\n";
+ echo '<div id="' . $sqlquerycontainer_id . '">' . "\n"
+ .'<textarea name="sql_query" id="sqlquery"'
+ .' cols="' . $GLOBALS['cfg']['TextareaCols'] . '"'
+ .' rows="' . $GLOBALS['cfg']['TextareaRows'] . '"'
+ .' dir="' . $GLOBALS['text_dir'] . '"'
+ .$auto_sel . $locking . '>' . $query . '</textarea>' . "\n";
+ echo '</div>' . "\n";
+
+ if ( count( $fields_list ) ) {
+ echo '<div id="tablefieldscontainer">' . "\n"
+ .'<label>' . $GLOBALS['strFields'] . '</label>' . "\n"
+ .'<select id="tablefields" name="dummy" '
+ .'size="' . ($GLOBALS['cfg']['TextareaRows'] - 2) . '" '
+ .'multiple="multiple" ondblclick="insertValueQuery()">' . "\n";
+ foreach ( $fields_list as $field ) {
+ echo '<option value="'
+ .PMA_backquote( htmlspecialchars( $field['Field'] ) ) . '"';
+ if ( ! empty( $field['Field'] ) ) {
+ echo ' title="' . htmlspecialchars( $field['Comment'] ) . '"';
+ }
+ echo '>' . htmlspecialchars( $field['Field'] ) . '</option>' . "\n";
+ }
+ echo '</select>' . "\n"
+ .'<div id="tablefieldinsertbuttoncontainer">' . "\n";
+ if ( $GLOBALS['cfg']['PropertiesIconic'] ) {
+ echo '<input type="button" name="insert" value="&lt;&lt;"'
+ .' onclick="insertValueQuery()"'
+ .' title="' . $GLOBALS['strInsert'] . '" />' . "\n";
+ } else {
+ echo '<input type="button" name="insert"'
+ .' value="' . $GLOBALS['strInsert'] . '"'
+ .' onclick="insertValueQuery()" />' . "\n";
+ }
+ echo '</div>' . "\n"
+ .'</div>' . "\n";
+ }
+
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</div>' . "\n";
+
+ if ( ! empty( $GLOBALS['cfg']['Bookmark'] )
+ && $GLOBALS['cfg']['Bookmark']['db']
+ && $GLOBALS['cfg']['Bookmark']['table'] ) {
+ ?>
+ <div id="bookmarkoptions">
+ <div class="formelement">
+ <label for="bkm_label">
+ <?php echo $GLOBALS['strBookmarkThis']; ?>:</label>
+ <input type="text" name="bkm_label" id="bkm_label" value="" />
+ </div>
+ <div class="formelement">
+ <input type="checkbox" name="bkm_all_users" id="id_bkm_all_users"
+ value="true" />
+ <label for="id_bkm_all_users">
+ <?php echo $GLOBALS['strBookmarkAllUsers']; ?></label>
+ </div>
+ </div>
+ <?php
+ }
+
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n"
+ .'</div>' . "\n";
+
+ echo '<fieldset id="" class="tblFooters">' . "\n";
+ echo '<div class="formelement">' . "\n";
+ if ( $is_querywindow ) {
+ ?>
+ <script type="text/javascript">
+ document.writeln(' <input type="checkbox" name="LockFromUpdate"'
+ + ' value="1" id="checkbox_lock" /> <label for="checkbox_lock">'
+ + '<?php echo $GLOBALS['strQueryWindowLock']; ?></label> ');
+ </script>
+ <?php
+ }
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo '<input type="checkbox" name="show_query" value="1" '
+ .'id="checkbox_show_query" checked="checked" />' . "\n"
+ .'<label for="checkbox_show_query">' . $GLOBALS['strShowThisQuery']
+ .'</label>' . "\n";
+ echo '</div>' . "\n";
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo'] . '" />'
+ ."\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+}
+
+function PMA_sqlQueryFormBookmark( $display_tab = 'full' ) {
+ $bookmark_list = PMA_listBookmarks(
+ $GLOBALS['db'], $GLOBALS['cfg']['Bookmark'] );
+ if ( count( $bookmark_list ) < 1 ) {
+ return;
+ }
+
+ echo '<fieldset>';
+ echo '<legend>';
+ if ( $display_tab == 'full' ) {
+ echo '<em>' . $GLOBALS['strOr'] . '</em> ';
+ }
+ echo $GLOBALS['strBookmarkQuery'] . '</legend>' . "\n";
+ echo '<div class="formelement">';
+ echo '<select name="id_bookmark">' . "\n";
+ echo '<option value=""></option>' . "\n";
+ foreach ( $bookmark_list as $key => $value ) {
+ echo '<option value="' . htmlspecialchars( $key ) . '">'
+ .htmlspecialchars( $value ) . '</option>' . "\n";
+ }
+ // &nbsp; is required for correct display with styles/line height
+ echo '</select>&nbsp;' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo $GLOBALS['strVar'];
+ if ( $GLOBALS['cfg']['ReplaceHelpImg'] ) {
+ echo ' <a href="./Documentation.html#faqbookmark"'
+ .' target="documentation">'
+ .'<img src="' .$GLOBALS['pmaThemeImage'] . 'b_help.png"'
+ .' border="0" width="11" height="11" align="middle"'
+ .' alt="' . $GLOBALS['strDocu'] . '" /></a> ';
+ } else {
+ echo ' (<a href="./Documentation.html#faqbookmark"'
+ .' target="documentation">' . $GLOBALS['strDocu'] . '</a>): ';
+ }
+ echo '<input type="text" name="bookmark_variable" class="textfield"'
+ .' size="10" />' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="0"'
+ .' id="radio_bookmark_exe" checked="checked" />'
+ .'<label for="radio_bookmark_exe">' . $GLOBALS['strSubmit']
+ .'</label>' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="1"'
+ .' id="radio_bookmark_view" />'
+ .'<label for="radio_bookmark_view">' . $GLOBALS['strBookmarkView']
+ .'</label>' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="2"'
+ .' id="radio_bookmark_del" />'
+ .'<label for="radio_bookmark_del">' . $GLOBALS['strDelete']
+ .'</label>' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+
+ echo '<fieldset id="" class="tblFooters">' . "\n";
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo'] . '" />';
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+}
+
+function PMA_sqlQueryFormUpload( $display_tab = 'full' ) {
+ $uploaded_files = array();
+ $errors = array();
+ $is_gzip = ($GLOBALS['cfg']['GZipDump'] && @function_exists('gzopen'));
+ $is_bzip = ($GLOBALS['cfg']['BZipDump'] && @function_exists('bzdecompress'));
+
+ if ( ! empty( $GLOBALS['cfg']['UploadDir'] ) ) {
+ if ( substr($GLOBALS['cfg']['UploadDir'], -1) != '/' ) {
+ $GLOBALS['cfg']['UploadDir'] .= '/';
+ }
+ if ( $handle = @opendir( $GLOBALS['cfg']['UploadDir'] ) ) {
+ while ( $file = @readdir( $handle ) ) {
+ if ( is_file( $GLOBALS['cfg']['UploadDir'] . $file )
+ && PMA_checkFileExtensions( $file, '.sql' ) )
+ {
+ $uploaded_files[] = $file;
+ }
+ } // end while
+ @closedir( $handle );
+ }
+ else {
+ $errors[$GLOBALS['strError']] =
+ $GLOBALS['strWebServerUploadDirectoryError'];
+ }
+ } // end if (web-server upload directory)
+
+ // start output
+ echo '<fieldset id="">';
+ echo '<legend>';
+ if ( $display_tab == 'full' ) {
+ echo '<em>' . $GLOBALS['strOr'] . '</em> ';
+ }
+ echo $GLOBALS['strLocationTextfile'] . '</legend>';
+ echo '<div class="formelement">';
+ echo '<input type="file" name="sql_file" class="textfield" /> ';
+ echo PMA_displayMaximumUploadSize( $GLOBALS['max_upload_size'] );
+ // some browsers should respect this :)
+ echo PMA_generateHiddenMaxFileSize( $GLOBALS['max_upload_size'] ) . "\n";
+ echo '</div>';
+
+ if ( $is_bzip || $is_gzip ) {
+ echo '<div class="formelement">';
+ echo $GLOBALS['strCompression'] . ': ' . "\n"
+ .'<input type="radio" value=""'
+ .' id="radio_sql_file_compression_auto"'
+ .' name="sql_file_compression" checked="checked" />'
+ .'<label for="radio_sql_file_compression_auto">'
+ .$GLOBALS['strAutodetect'] . '</label>' . "\n"
+ .'<input type="radio" id="radio_sql_file_compression_plain"'
+ .' name="sql_file_compression" value="text/plain" />'
+ .'<label for="radio_sql_file_compression_plain">'
+ .$GLOBALS['strNone'] . '</label>' . "\n";
+ if ( $is_gzip ) {
+ echo '<input type="radio" id="radio_sql_file_compression_gzip"'
+ .' name="sql_file_compression" value="application/x-gzip" />'
+ .'<label for="radio_sql_file_compression_gzip">'
+ .$GLOBALS['strGzip'] . '</label>' . "\n";
+ }
+ if ( $is_bzip ) {
+ echo '<input type="radio" id="radio_sql_file_compression_bzip"'
+ .' name="sql_file_compression" value="application/x-bzip" />'
+ .'<label for="radio_sql_file_compression_bzip">'
+ .$GLOBALS['strBzip'] . '</label>' . "\n";
+ }
+ echo '</div>';
+ } else {
+ echo '<input type="hidden" name="sql_file_compression"'
+ .' value="text/plain" />';
+ }
+
+ if ( count( $uploaded_files ) > 0 ) {
+ echo '<strong>' . $GLOBALS['strWebServerUploadDirectory']
+ .':</strong>' . "\n";
+ echo '<select size="1" name="sql_localfile">' . "\n";
+ echo '<option value="" selected="selected"></option>' . "\n";
+ foreach ( $uploaded_files as $file ) {
+ echo '<option value="' . htmlspecialchars( $file ) . '">'
+ .htmlspecialchars( $file ) . '</option>' . "\n";
+ }
+ echo '</select>' . "\n";
+ }
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>';
+
+
+ echo '<fieldset id="" class="tblFooters">';
+ if ( PMA_MYSQL_INT_VERSION < 40100
+ && $GLOBALS['cfg']['AllowAnywhereRecoding']
+ && $GLOBALS['allow_recoding'] ) {
+ echo $GLOBALS['strCharsetOfFile'] . "\n"
+ . '<select name="charset_of_file" size="1">' . "\n";
+ foreach( $GLOBALS['cfg']['AvailableCharsets'] as $temp_charset ) {
+ echo '<option value="' . $temp_charset . '"';
+ if ( $temp_charset == $GLOBALS['charset'] ) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $temp_charset . '</option>' . "\n";
+ }
+ echo '</select>' . "\n";
+ } elseif ( PMA_MYSQL_INT_VERSION >= 40100 ) {
+ echo $GLOBALS['strCharsetOfFile'] . "\n";
+ echo PMA_generateCharsetDropdownBox( PMA_CSDROPDOWN_CHARSET,
+ 'charset_of_file', NULL, 'utf8', FALSE );
+ } // end if (recoding)
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo']
+ .'" />' . "\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>';
+
+ foreach( $errors as $error => $message ) {
+ echo '<div>' . $error . '</div>';
+ echo '<div>' . $message . '</div>';
+ }
+}
+?>
+
diff --git a/querywindow.php b/querywindow.php
index 3e51a71858..7ff371eec2 100644
--- a/querywindow.php
+++ b/querywindow.php
@@ -17,6 +17,7 @@ if (!empty($db)) {
* Gets a core script and starts output buffering work
*/
require_once('./libraries/common.lib.php');
+require_once './libraries/sql_query_form.lib.php';
require_once('./libraries/ob.lib.php');
if ($cfg['OBGzip']) {
$ob_mode = PMA_outBufferModeGet();
@@ -68,24 +69,29 @@ var confirmMsg = '<?php echo(($GLOBALS['cfg']['Confirm']) ? str_replace('\'', '
/**/
<?php
-if ( empty( $querydisplay_tab ) || $querydisplay_tab == 'sql' ) {
+if ( empty( $querydisplay_tab ) ) {
?>
-
function resize() {
- if( typeof( self.sizeToContent ) == 'function' ) {
+
+ // for Gecko
+ if ( typeof( self.sizeToContent ) == 'function' ) {
self.sizeToContent();
- self.scrollbars.visible = false;
+ //self.scrollbars.visible = false;
+ // give some more space ... to prevent 'fli(pp/ck)ing'
+ self.resizeBy( 10, 50 );
return;
}
+ // for IE, Opera
if (document.getElementById && typeof(document.getElementById('querywindowcontainer')) != 'undefined' ) {
// get content size
var newWidth = document.getElementById('querywindowcontainer').offsetWidth;
var newHeight = document.getElementById('querywindowcontainer').offsetHeight;
- // set size to contentsize + offsetsize
- self.resizeTo( newWidth + 50, newHeight + 150 );
+ // set size to contentsize
+ // plus some offset for scrollbars, borders, statusbar, menus ...
+ self.resizeTo( newWidth + 45, newHeight + 75 );
}
}
<?php
@@ -99,7 +105,7 @@ function resize() {
<body id="bodyquerywindow" onload="resize();" bgcolor="<?php echo ($cfg['QueryFrameJS'] ? $cfg['LeftBgColor'] : $cfg['RightBgColor']); ?>">
<div id="querywindowcontainer">
<?php
-if ($cfg['QueryFrameJS'] && !isset($no_js)) {
+if ( $cfg['QueryFrameJS'] && !isset($no_js) ) {
$querydisplay_tab = (isset($querydisplay_tab) ? $querydisplay_tab : $cfg['QueryWindowDefTab']);
$tabs = array();
@@ -107,22 +113,22 @@ if ($cfg['QueryFrameJS'] && !isset($no_js)) {
$tabs['sql']['text'] = $strSQL;
$tabs['sql']['link'] = '#';
$tabs['sql']['attr'] = 'onclick="javascript:query_tab_commit(\'sql\');return false;"';
- $tabs['sql']['active'] = (bool) (isset($querydisplay_tab) && $querydisplay_tab == 'sql');
+ $tabs['sql']['active'] = (bool) ( $querydisplay_tab == 'sql' );
$tabs['import']['icon'] = 'b_import.png';
$tabs['import']['text'] = $strImportFiles;
$tabs['import']['link'] = '#';
$tabs['import']['attr'] = 'onclick="javascript:query_tab_commit(\'files\');return false;"';
- $tabs['import']['active'] = (bool) (isset($querydisplay_tab) && $querydisplay_tab == 'files');
+ $tabs['import']['active'] = (bool) ( $querydisplay_tab == 'files' );
$tabs['history']['text'] = $strQuerySQLHistory;
$tabs['history']['link'] = '#';
$tabs['history']['attr'] = 'onclick="javascript:query_tab_commit(\'history\');return false;"';
- $tabs['history']['active'] = (bool) (isset($querydisplay_tab) && $querydisplay_tab == 'history');
+ $tabs['history']['active'] = (bool) ( $querydisplay_tab == 'history' );
- if ($cfg['QueryWindowDefTab'] == 'full') {
+ if ( $cfg['QueryWindowDefTab'] == 'full' ) {
$tabs['all']['text'] = $strAll;
$tabs['all']['link'] = '#';
$tabs['all']['attr'] = 'onclick="javascript:query_tab_commit(\'full\');return false;"';
- $tabs['all']['active'] = (bool) (isset($querydisplay_tab) && $querydisplay_tab == 'full');
+ $tabs['all']['active'] = (bool) ( $querydisplay_tab == 'full' );
}
echo PMA_getTabs( $tabs );
@@ -131,9 +137,6 @@ if ($cfg['QueryFrameJS'] && !isset($no_js)) {
$querydisplay_tab = 'full';
}
-?>
-<br />
-<?php
if ($cfg['PropertiesIconic'] == true) {
// We need to copy the value or else the == 'both' check will always return true
$propicon = (string)$cfg['PropertiesIconic'];
@@ -230,8 +233,34 @@ if (!isset($goto)) {
}
require_once './libraries/bookmark.lib.php';
-$is_inside_querywindow = TRUE;
-require './tbl_query_box.php';
+
+// in case of javascript disabled in queryframe ...
+if ( $GLOBALS['cfg']['QueryFrame'] && ! $GLOBALS['cfg']['QueryFrameJS'] ) {
+ // ... we redirect to appropriate query sql page
+ // works only full if $db and $table is also stored/grabbed from $_COOKIE
+ if ( ! empty( $table ) ) {
+ require 'tbl_properties.php';
+ }
+ elseif ( ! empty( $db ) ) {
+ require 'db_details.php';
+ }
+ else {
+ require 'server_sql.php';
+ }
+ exit;
+}
+
+/**
+ * Defines the query to be displayed in the query textarea
+ */
+if ( ! empty( $show_query ) ) {
+ $query_to_display = $sql_query;
+} else {
+ $query_to_display = '';
+}
+unset( $sql_query );
+
+PMA_sqlQueryForm( $query_to_display, $querydisplay_tab );
// Hidden forms and query frame interaction stuff
if ($cfg['QueryFrame'] && $cfg['QueryFrameJS']) {
diff --git a/read_dump.php b/read_dump.php
index d492924661..1ebf1718e0 100644
--- a/read_dump.php
+++ b/read_dump.php
@@ -175,9 +175,9 @@ if (!$cfg['AllowUserDropDatabase']
define('PMA_CHK_DROP', 1);
/**
- * Store a query as a bookmark before executing it?
+ * Store the query as a bookmark before executing it if bookmarklabel was given
*/
-if (isset($SQLbookmark) && $sql_query != '') {
+if ( ! empty( $bkm_label ) && ! empty( $sql_query ) ) {
require_once('./libraries/bookmark.lib.php');
$bfields = array(
'dbase' => $db,
diff --git a/server_sql.php b/server_sql.php
index bc0762f202..7b7ab60830 100644
--- a/server_sql.php
+++ b/server_sql.php
@@ -6,211 +6,23 @@
/**
* Does the common work
*/
-require('./server_common.inc.php');
+require_once './server_common.inc.php';
+require_once './libraries/sql_query_form.lib.php';
/**
* Displays the links
*/
-require('./server_links.inc.php');
-
+require './server_links.inc.php';
/**
- * Database work
+ * Query box, bookmark, insert data from textfile
*/
-if (isset($show_query) && $show_query == '1') {
- // This script has been called by read_dump.php
- if (isset($sql_query_cpy)) {
- $query_to_display = $sql_query_cpy;
- }
- // Other cases
- else {
- $query_to_display = $sql_query;
- }
-} else {
- $query_to_display = '';
-}
-
-
-// loic1: defines wether file upload is available or not
-// (now defined in common.lib.php)
-
-$auto_sel = ($cfg['TextareaAutoSelect']
- // 2003-02-05 rabus: This causes big trouble with Opera 7 for
- // Windows, so let's disable it there...
- && !(PMA_USR_OS == 'Win' && PMA_USR_BROWSER_AGENT == 'OPERA' && PMA_USR_BROWSER_VER >= 7))
- ? "\n" . ' onfocus="if (typeof(document.layers) == \'undefined\' || typeof(textarea_selected) == \'undefined\') {textarea_selected = 1; this.form.elements[\'sql_query\'].select();}"'
- : '';
-
-
-// for better administration
-$strHiddenFields = ' <input type="hidden" name="is_js_confirmed" value="0" />' ."\n"
- . ' ' .PMA_generate_common_hidden_inputs() . "\n"
- . ' <input type="hidden" name="pos" value="0" />' . "\n"
- . ' <input type="hidden" name="goto" value="server_sql.php" />' . "\n"
- . ' <input type="hidden" name="zero_rows" value="' . htmlspecialchars($strSuccess) . '" />' . "\n"
- . ' <input type="hidden" name="prev_sql_query" value="' . ((!empty($query_to_display)) ? htmlspecialchars($query_to_display) : '') . '" />' . "\n";
-?>
-<!-- Query box, sql file loader and bookmark support -->
-<form method="post" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform">
-<?php
-echo $strHiddenFields;
-?>
-<a name="querybox"></a>
-<table border="0" cellpadding="2" cellspacing="0">
-<tr><td class="tblHeaders" colspan="2">
- <?php
- echo '&nbsp;' . sprintf($strRunSQLQueryOnServer, htmlspecialchars($GLOBALS['cfg']['Servers'][$server]['host'])) . ':&nbsp;' . PMA_showMySQLDocu('Reference', 'SELECT');
-
- ?>
-</td></tr>
-<tr align="center" bgcolor="<?php echo $cfg['BgcolorOne']; ?>"><td colspan="2">
-<textarea name="sql_query" cols="<?php echo $cfg['TextareaCols'] * 2; ?>" rows="<?php echo $cfg['TextareaRows']; ?>" dir="<?php echo $text_dir; ?>"<?php echo $auto_sel; ?>>
-<?php
-if (!empty($query_to_display)) {
- echo htmlspecialchars($query_to_display);
-}
-?></textarea>
-</td></tr>
-<tr class="tblFooters">
- <td>
- <input type="checkbox" name="show_query" value="1" id="checkbox_show_query" checked="checked" /><label for="checkbox_show_query"><?php echo $strShowThisQuery; ?></label>
- </td>
- <td align="right"><input type="submit" name="SQL" value="<?php echo $strGo; ?>" /></td>
-</tr>
-<?php
-// loic1: displays import dump feature only if file upload available
-if ($is_upload) {
-?>
-<tr><td colspan="2"><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" width="1" height="1" border="0" alt="" /></td></tr>
-<tr>
- <td colspan="2" class="tblHeaders">
- <i><?php echo $strOr; ?></i>
- <b><?php echo $strLocationTextfile; ?>:</b>
- </td>
-</tr>
-<tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td colspan="2" align="center">
- <input type="file" name="sql_file" class="textfield" />&nbsp;
- <?php
- echo PMA_displayMaximumUploadSize($max_upload_size) . '<br />';
- // some browsers should respect this :)
- echo ' ' . PMA_generateHiddenMaxFileSize($max_upload_size) . "\n";
- $is_gzip = ($cfg['GZipDump'] && @function_exists('gzopen'));
- $is_bzip = ($cfg['BZipDump'] && @function_exists('bzdecompress'));
- if ($is_bzip || $is_gzip) {
- echo ' </td>' . "\n"
- . '</tr>' . "\n"
- . '<tr bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
- . ' <td colspan="2">' . "\n";
- echo ' &nbsp;&nbsp;' . $strCompression . ':<br />&nbsp;&nbsp;&nbsp;' . "\n"
- . ' <input type="radio" id="radio_sql_file_compression_auto" name="sql_file_compression" value="" checked="checked" /><label for="radio_sql_file_compression_auto">' . $strAutodetect . '</label>&nbsp;&nbsp;' . "\n"
- . ' <input type="radio" id="radio_sql_file_compression_plain" name="sql_file_compression" value="text/plain" /><label for="radio_sql_file_compression_plain">' . $strNone . '</label>&nbsp;&nbsp' . "\n";
- if ($is_gzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_gzip" name="sql_file_compression" value="application/x-gzip" /><label for="radio_sql_file_compression_gzip">' . $strGzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- if ($is_bzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_bzip" name="sql_file_compression" value="application/x-bzip" /><label for="radio_sql_file_compression_bzip">' . $strBzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- } else {
- ?>
- <input type="hidden" name="sql_file_compression" value="text/plain" />
- </td>
-</tr>
- <?php
- }
-} // end if (is upload)
-// web-server upload directory
-$is_upload_dir = false;
-if (!empty($cfg['UploadDir'])) {
- if (substr($cfg['UploadDir'], -1) != '/') {
- $cfg['UploadDir'] .= '/';
- }
- if ($handle = @opendir($cfg['UploadDir'])) {
- $is_first = 0;
- while ($file = @readdir($handle)) {
- if (is_file($cfg['UploadDir'] . $file) && PMA_checkFileExtensions($file, '.sql')) {
- if ($is_first == 0) {
- $is_upload_dir = true;
- echo "\n";
- echo ' <tr><td colspan=2" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n";
- echo ' &nbsp;<b>' . $strWebServerUploadDirectory . ':</b>&nbsp;' . "\n";
- echo ' </td></tr>' . "\n";
- echo ' <tr bgcolor="' . $cfg['BgcolorOne'] . '"><td colspan="2">' . "\n";
- // add 2004-05-08 by mkkeck
- // todo: building a php script for indexing files in UploadDir
- //if ($cfg['UploadDirIndex']) {
- // echo '&nbsp;<a href="' . $cfg['UploadDir'] . '" target="_blank">' . $cfg['UploadDir'] . '</a>&nbsp;';
- //}
- // end indexing
- echo ' <select size="1" name="sql_localfile">' . "\n";
- echo ' <option value="" selected="selected"></option>' . "\n";
- } // end if (is_first)
- echo ' <option value="' . htmlspecialchars($file) . '">' . htmlspecialchars($file) . '</option>' . "\n";
- $is_first++;
- } // end if (is_file)
- } // end while
- if ($is_first > 0) {
- echo ' </select>' . "\n"
- . ' </td>'
- . ' </tr>' . "\n\n";
- } // end if (isfirst > 0)
- @closedir($handle);
- }
- else {
- $upload_dir_error = '<tr><td colspan="2"><img src="' .$GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n"
- . '<tr><th colspan="2" class="tblHeadError"><div class="errorhead">' . $strError . '</div></th></tr>' . "\n"
- . '<tr><td colspan="2" class="tblError">' . $strWebServerUploadDirectoryError
- . '</td></tr>' . "\n";
- }
-} // end if (web-server upload directory)
-// Charset conversion options
-if ($is_upload || $is_upload_dir) {
- echo ' <tr class="tblFooters"><td>' . "\n";
- if (PMA_MYSQL_INT_VERSION < 40100 && $cfg['AllowAnywhereRecoding'] && $allow_recoding) {
- $temp_charset = reset($cfg['AvailableCharsets']);
- echo '&nbsp;' . $strCharsetOfFile . "\n"
- . ' <select name="charset_of_file" size="1">' . "\n"
- . ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- while ($temp_charset = next($cfg['AvailableCharsets'])) {
- echo ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- }
- echo ' </select><br />' . "\n" . ' ';
- } elseif (PMA_MYSQL_INT_VERSION >= 40100) {
- echo $strCharsetOfFile . "\n";
- echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', NULL, 'utf8', FALSE);
- } // end if (recoding)
- echo ' </td>' . "\n";
- echo ' <td align="right"><input type="submit" name="SQL" value="' . $strGo . '" /></td>' . "\n";
- echo ' </tr>' . "\n";
-}
-
+PMA_sqlQueryForm();
-// Encoding setting form appended by Y.Kawada
-if (function_exists('PMA_set_enc_form')) {
- echo PMA_set_enc_form(' ');
-}
-// modified by mkkeck 2004-05-08
-// showing UploadDir Error at the end of all option for SQL-Queries
-if (isset($upload_dir_error)) {
- echo $upload_dir_error;
-}
-?>
-</table>
-</form>
-<?php
/**
* Displays the footer
*/
-echo "\n";
-require_once('./footer.inc.php');
+require_once './footer.inc.php';
?>
diff --git a/sql.php b/sql.php
index 6bd94cf85d..f4e46bdbbc 100644
--- a/sql.php
+++ b/sql.php
@@ -103,6 +103,7 @@ if (isset($btnDrop) || isset($navig)) {
$GLOBALS['unparsed_sql'] = $sql_query;
$parsed_sql = PMA_SQP_parse($sql_query);
$analyzed_sql = PMA_SQP_analyze($parsed_sql);
+
// Bug #641765 - Robbat2 - 12 January 2003, 10:49PM
// Reverted - Robbat2 - 13 January 2003, 2:40PM
@@ -627,8 +628,8 @@ else {
$message = $strAffectedRows . '&nbsp;' . $num_rows;
// Ok, here is an explanation for the !$is_select.
- // The form generated
- // by tbl_query_box.php and db_details.php has many submit buttons
+ // The form generated by sql_query_form.lib.php
+ // and db_details.php has many submit buttons
// on the same form, and some confusion arises from the
// fact that $zero_rows is sent for every case.
// The $zero_rows containing $strSuccess and sent with
diff --git a/tbl_properties.php b/tbl_properties.php
index dd95fa5a06..ef11dbccba 100644
--- a/tbl_properties.php
+++ b/tbl_properties.php
@@ -6,32 +6,30 @@
/**
* Runs common work
*/
-require('./tbl_properties_common.php');
+require './tbl_properties_common.php';
+require_once './libraries/sql_query_form.lib.php';
+
$err_url = 'tbl_properties.php' . $err_url;
-$url_query .= '&amp;goto=tbl_properties.php&amp;back=tbl_properties.php';
+$goto = 'tbl_properties.php';
+$back = 'tbl_properties.php';
/**
* Get table information
*/
-require('./tbl_properties_table_info.php');
+require './tbl_properties_table_info.php';
/**
* Displays top menu links
*/
-require('./tbl_properties_links.php');
+require './tbl_properties_links.php';
-?>
-<!-- TABLE WORK -->
-<?php
/**
* Query box, bookmark, insert data from textfile
*/
-$goto = 'tbl_properties.php';
-require('./tbl_query_box.php');
+PMA_sqlQueryForm();
/**
* Displays the footer
*/
-echo "\n";
-require_once('./footer.inc.php');
+require_once './footer.inc.php';
?>
diff --git a/tbl_properties_structure.php b/tbl_properties_structure.php
index 157573ad8b..10e8c979cb 100644
--- a/tbl_properties_structure.php
+++ b/tbl_properties_structure.php
@@ -5,6 +5,7 @@
require_once('./libraries/grab_globals.lib.php');
require_once('./libraries/common.lib.php');
require_once('./libraries/mysql_charsets.lib.php');
+require_once './libraries/sql_query_form.lib.php';
/**
* Drop multiple fields if required
@@ -807,7 +808,8 @@ if (!$tbl_is_view) {
* Query box, bookmark, insert data from textfile
*/
$goto = 'tbl_properties_structure.php';
-require('./tbl_query_box.php');
+PMA_sqlQueryForm();
+
/**
* Displays the footer
diff --git a/tbl_query_box.php b/tbl_query_box.php
index cf6a16c5fa..4e3b83a257 100644
--- a/tbl_query_box.php
+++ b/tbl_query_box.php
@@ -1,547 +1,55 @@
<?php
/* $Id$ */
// vim: expandtab sw=4 ts=4 sts=4:
+/**
+ * provides the sql form
+ *
+ * @usedby server_sql.php server SQL-tab
+ * @usedby db_details.php database SQL-tab
+ * @usedby server_sql.php server SQL-tab
+ */
// Check parameters
-
+require_once('./libraries/grab_globals.lib.php');
require_once('./libraries/common.lib.php');
require_once('./libraries/bookmark.lib.php');
+require_once './libraries/sql_query_form.lib.php';
-$upload_dir_error='';
-
-// I don't see the purpose of the first 2 conditions
-//if (!($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
+// we dont need to check booth variables each time
+if ( false == $cfg['QueryFrame'] ) {
+ $cfg['QueryFrameJS'] = false;
+}
-if (!(isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
- PMA_checkParameters(array('db','table','url_query'));
+if ( empty( $querydisplay_tab ) ) {
+ $querydisplay_tab = '';
}
-/**
- * Defines the query to be displayed in the query textarea
- */
-if (isset($show_query) && $show_query == '1') {
- // This script has been called by read_dump.php
- if (isset($sql_query_cpy)) {
- $query_to_display = $sql_query_cpy;
+// in case of javascript disabled in queryframe ...
+if ( $GLOBALS['cfg']['QueryFrame'] && ! $GLOBALS['cfg']['QueryFrameJS']
+ && $is_inside_querywindow ) {
+ // ... we redirect to appropriate query sql page
+ // works only full if $db and $table is also stored/grabbed from $_COOKIE
+ if ( ! empty( $table ) ) {
+ require 'tbl_properties.php';
+ }
+ elseif ( ! empty( $db ) ) {
+ require 'db_details.php';
}
- // Other cases
else {
- $query_to_display = $sql_query;
+ require 'server_sql.php';
}
-} else {
- $query_to_display = '';
-}
-unset($sql_query);
-
-/**
- * Get the list and number of fields
- */
-$fields_cnt = 0;
-if (isset($db) && isset($table) && $table != '' && $db != '') {
- // we do a try_query here, because we could be in the query window,
- // trying to synchonize and the table has not yet been created
- $result = PMA_DBI_try_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($db) . ';', NULL, PMA_DBI_QUERY_STORE);
- if ($result) {
- $fields_cnt = PMA_DBI_num_rows($result);
- while ($row = PMA_DBI_fetch_assoc($result)) {
- $fields_list[] = $row['Field'];
- } // end while
- PMA_DBI_free_result($result);
- } // end if
+ exit;
}
/**
- * Work on the table
+ * Defines the query to be displayed in the query textarea
*/
-
-if ($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full')) {
- $locking = 'onkeypress="document.sqlform.elements[\'LockFromUpdate\'].checked = true;"';
+if ( ! empty( $show_query ) ) {
+ $query_to_display = $sql_query;
} else {
- $locking = '';
+ $query_to_display = '';
}
+unset( $sql_query );
-$auto_sel = ($cfg['TextareaAutoSelect']
- // 2003-02-05 rabus: This causes big trouble with Opera 7 for
- // Windows, so let's disable it there...
- && !(PMA_USR_OS == 'Win' && PMA_USR_BROWSER_AGENT == 'OPERA' && PMA_USR_BROWSER_VER >= 7))
- ? "\n" . ' onfocus="if (typeof(document.layers) == \'undefined\' || typeof(textarea_selected) == \'undefined\') {textarea_selected = 1; document.sqlform.elements[\'sql_query\'].select();}"'
- : '';
-$auto_sel .= ' ' . $locking;
-
-// garvin: If non-JS query window is embedded, display a list of databases to choose from.
-// Apart from that, a non-js query window sucks badly.
-/**
- * Get the list and number of available databases.
- */
-if ($server > 0) {
- PMA_availableDatabases(); // this function is defined in "common.lib.php"
-} else {
- $num_dbs = 0;
-}
-if ($cfg['QueryFrame'] && (!$cfg['QueryFrameJS'] && !$db || ($cfg['QueryFrameJS'] && !$db))) {
- if ($num_dbs > 0) {
- $queryframe_db_list = '<select size=1 name="db" style="vertical-align: middle;">';
- for ($i = 0; $i < $num_dbs; $i++) {
- $t_db = $dblist[$i];
- $queryframe_db_list .= '<option value="' . htmlspecialchars($t_db) . '">' . htmlspecialchars($t_db) . '</option>';
- }
- $queryframe_db_list .= '</select>&nbsp;';
- $queryframe_thcolspan = ' colspan="2"';
- $queryframe_tdcolspan = '';
- } else {
- $queryframe_db_list = '';
- $queryframe_thcolspan = ' colspan="3"';
- $queryframe_tdcolspan = ' colspan="2"';
- }
-} else {
- $queryframe_db_list = '';
- if ($num_dbs > 0) {
- $queryframe_thcolspan = ' colspan="3"';
- $queryframe_tdcolspan = ' colspan="2"';
- } else {
- $queryframe_thcolspan = ' colspan="2"';
- $queryframe_tdcolspan = '';
- }
-}
-$form_items = 0;
-// ($is_upload defined in common.lib.php)
-
-if ($cfg['QueryFrame'] && $cfg['QueryFrameJS'] && isset($is_inside_querywindow) && $is_inside_querywindow) {
-?>
- <script type="text/javascript">
- <!--
- document.writeln('<form method="post" target="phpmain' + <?php echo ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) ? 'opener.' : '');?>parent.frames.queryframe.document.hashform.hash.value + '" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform">');
- //-->
- </script>
-<?php
- echo ' <noscript>' . "\n"
- . ' <form method="post" target="phpmain' . md5($cfg['PmaAbsoluteUri']) . '" ' . "\n"
- . ' action="read_dump.php"' . ($is_upload ? ' enctype="multipart/form-data"' : '' ) . ' name="sqlform">' . "\n"
- . ' </noscript>';
-} else {
-?>
- <form method="post" action="read_dump.php"<?php if ($is_upload) echo ' enctype="multipart/form-data"'; ?> onsubmit="return checkSqlQuery(this)" name="sqlform" style="padding: 0px; magin: 0px;">
-<?php
-}
-?>
- <table border="0" cellpadding="2" cellspacing="0" id="sqlcontainer" name="sqlcontainer">
-<?php
-// for better administration
-$querybox_hidden_fields = ' <input type="hidden" name="is_js_confirmed" value="0" />' . "\n"
- . ' ' . PMA_generate_common_hidden_inputs($db, $table) . "\n"
- . ' <input type="hidden" name="pos" value="0" />'. "\n"
- . ' <input type="hidden" name="goto" value="' . $goto . '" />'. "\n"
- . ' <input type="hidden" name="zero_rows" value="' . $strSuccess . '" />'. "\n"
- . ' <input type="hidden" name="prev_sql_query" value="' . ((!empty($query_to_display)) ? urlencode($query_to_display) : '') . '" />'. "\n";
-if (!isset($is_inside_querywindow) ||
- (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full'))) {
-?>
- <!-- Query box and bookmark support -->
-<?php
- if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
- $querybox_hidden_fields .= ' <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
- }
-?>
- <tr class="tblHeaders">
- <td nowrap="nowrap"<?php if ($queryframe_tdcolspan == '') { echo ' colspan="2"'; } ?>>
- <a name="querybox"></a>
- <?php echo sprintf($strRunSQLQuery, htmlspecialchars($db) . $queryframe_db_list) . PMA_showMySQLDocu('Reference', 'SELECT'); ?>
- </td>
- <?php
- if (isset($table) && $fields_cnt > 0) { ?>
- <td nowrap="nowrap">&nbsp;&nbsp;&nbsp;</td>
- <td nowrap="nowrap"><?php echo $strFields; ?>:&nbsp;</td>
- <?php
- }
- ?>
- </tr>
- <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td valign="top"<?php if ($queryframe_tdcolspan == '') { echo ' colspan="2"'; } ?>>
- <textarea name="sql_query" rows="<?php echo $cfg['TextareaRows']; ?>" cols="<?php echo ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && $queryframe_tdcolspan != '') ? ceil($cfg['TextareaCols'] * 1.25) : $cfg['TextareaCols'] * 2); ?>" dir="<?php echo $text_dir; ?>"<?php echo $auto_sel; ?>><?php
- if (!empty($query_to_display)) {
- echo htmlspecialchars($query_to_display);
- } elseif (isset($table) && !empty($table) && isset($fields_list)) {
- echo htmlspecialchars(
- str_replace('%d', PMA_backquote($db),
- str_replace('%t', PMA_backquote($table),
- str_replace('%f', implode(', ', PMA_backquote($fields_list)),
- $cfg['DefaultQueryTable']))));
- } else {
- echo htmlspecialchars(str_replace('%d', PMA_backquote($db), $cfg['DefaultQueryDatabase']));
- }
-?></textarea>
- </td>
-<?php
- if (isset($table) && $fields_cnt > 0) {
-?>
- <td valign="middle">
- <?php
- if ($cfg['PropertiesIconic']) {
- echo '<input type="button" name="insert" value="&lt;&lt;" onclick="insertValueQuery()" title="' . $strInsert. '" />';
- } else {
- echo '<input type="button" name="insert" value="' . $strInsert . '" onclick="insertValueQuery()" />';
- }
- ?>
- </td>
- <td valign="top">
- <select name="dummy" size="<?php echo $cfg['TextareaRows']; ?>" multiple="multiple" class="textfield">
-<?php
- echo "\n";
- for ($i = 0 ; $i < $fields_cnt; $i++) {
- echo ' '
- . '<option value="' . PMA_backquote(htmlspecialchars($fields_list[$i])) . '">' . htmlspecialchars($fields_list[$i]) . '</option>' . "\n";
- }
-?>
- </select>
- </td>
-<?php
- }
-?>
- </tr>
- <tr class="tblFooters">
- <td<?php if ($queryframe_tdcolspan != '') { echo ' colspan="2"'; } //echo $queryframe_tdcolspan; ?>>
- <input type="checkbox" name="show_query" value="1" id="checkbox_show_query" checked="checked" /><label for="checkbox_show_query"><?php echo $strShowThisQuery; ?></label>
-<?php
- if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
- ?>
- <br />
- <script type="text/javascript">
- document.writeln('<input type="checkbox" name="LockFromUpdate" value="1" id="checkbox_lock" /><label for="checkbox_lock"><?php echo $strQueryWindowLock; ?></label><br />');
- </script>
- <?php
- }
-
- $form_items++;
- ?>
- </td>
- <td align="right" valign="bottom"><input type="submit" name="SQL" value="<?php echo $strGo; ?>" /></td>
- </tr>
-<?php
-} else {
- $querybox_hidden_fields .= ' <input type="hidden" name="sql_query" value="" />' . "\n";
- $querybox_hidden_fields .= ' <input type="hidden" name="show_query" value="1" />' . "\n";
-}
-
-// loic1: displays import dump feature only if file upload available
-if ($is_upload && (!isset($is_inside_querywindow) ||
- (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')))) {
- $form_items++;
-?>
- <tr>
- <td<?php echo $queryframe_thcolspan; ?>><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" width="1" height="1" border="0" alt="" /></td>
- </tr>
- <tr>
- <td class="tblHeaders"<?php echo $queryframe_thcolspan; ?>>
-<?php
- echo ' '
- . ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && $querydisplay_tab == 'full') || !isset($is_inside_querywindow) ? '<i>' . $strOr . '</i>' : '')
- . ' ' . $strLocationTextfile . ':&nbsp;' . "\n";
-?>
- </td>
- </tr>
- <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td<?php echo $queryframe_thcolspan; ?>>
- &nbsp;&nbsp;<input type="file" name="sql_file" class="textfield" />&nbsp;<?php echo PMA_displayMaximumUploadSize($max_upload_size);?><br />
-<?php
- // some browsers should respect this :)
- echo ' ' . PMA_generateHiddenMaxFileSize($max_upload_size) . "\n";
-
- if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
- $querybox_hidden_fields .= ' <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
- }
-
- $is_gzip = ($cfg['GZipDump'] && @function_exists('gzopen'));
- $is_bzip = ($cfg['BZipDump'] && @function_exists('bzdecompress'));
- if ($is_bzip || $is_gzip) {
- echo ' </td>' . "\n"
- . ' </tr>' . "\n"
- . ' <tr bgcolor="' . $cfg['BgcolorOne'] .'">' . "\n"
- . ' <td' . $queryframe_thcolspan . '>' . "\n"
- . ' &nbsp;&nbsp;'. $strCompression . ':<br />&nbsp;&nbsp;' . "\n"
- . ' &nbsp;&nbsp;<input type="radio" id="radio_sql_file_compression_auto" name="sql_file_compression" value="" checked="checked" />'
- . '<label for="radio_sql_file_compression_auto">' . $strAutodetect . '</label>&nbsp;&nbsp;' . "\n"
- . ' <input type="radio" id="radio_sql_file_compression_plain" name="sql_file_compression" value="text/plain" />'
- . '<label for="radio_sql_file_compression_plain">' . $strNone . '</label>&nbsp;&nbsp;' . "\n";
- if ($is_gzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_gzip" name="sql_file_compression" value="application/x-gzip" />'
- . '<label for="radio_sql_file_compression_gzip">' . $strGzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- if ($is_bzip) {
- echo ' <input type="radio" id="radio_sql_file_compression_bzip" name="sql_file_compression" value="application/x-bzip" />'
- . '<label for="radio_sql_file_compression_bzip">' . $strBzip . '</label>&nbsp;&nbsp;' . "\n";
- }
- } else {
- $querybox_hidden_fields .= ' <input type="hidden" name="sql_file_compression" value="text/plain" />' . "\n";
- }
- ?>
- </td>
- </tr>
- <?php
-} // end if
-echo "\n";
-
-// web-server upload directory
-$is_upload_dir = false;
-if (!empty($cfg['UploadDir']) && !isset($is_inside_querywindow) ||
- (!empty($cfg['UploadDir']) && isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full'))) {
-
- if (substr($cfg['UploadDir'], -1) != '/') {
- $cfg['UploadDir'] .= '/';
- }
- if ($handle = @opendir($cfg['UploadDir'])) {
- if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
- $querybox_hidden_fields .= ' <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
- }
-
- $is_first = 0;
- while ($file = @readdir($handle)) {
- if (is_file($cfg['UploadDir'] . $file) && PMA_checkFileExtensions($file, '.sql')) {
- if ($is_first == 0) {
- $is_upload_dir = true;
- echo "\n";
- echo ' ' . "\n"
- . ' <tr bgcolor="' .$cfg['BgcolorTwo'].'"><td' . $queryframe_thcolspan . '>';
- echo ' <b>&nbsp;' . $strWebServerUploadDirectory . ':&nbsp;</b>' . "\n";
- echo ' </td></tr>' . "\n"
- . ' <tr bgcolor="' . $cfg['BgcolorOne'] . '"><td' . $queryframe_thcolspan . '>';
- // add 2004-05-08 by mkkeck
- // todo: building a php script for indexing files in UploadDir
- //if ($cfg['UploadDirIndex']) {
- // echo '&nbsp;&nbsp;<a href="' . $cfg['UploadDir'] . '" target="_blank">' . $cfg['UploadDir'] . '</a>&nbsp;';
- //}
- // end indexing
- echo ' &nbsp;&nbsp;<select size="1" name="sql_localfile">' . "\n";
- echo ' <option value="" selected="selected"></option>' . "\n";
- $form_items++;
- } // end if (is_first)
- echo ' <option value="' . htmlspecialchars($file) . '">' . htmlspecialchars($file) . '</option>' . "\n";
- $is_first++;
- } // end if (is_file)
- } // end while
- if ($is_first > 0) {
- echo ' </select>' . "\n"
- . ' </td></tr>' . "\n";
- } // end if (isfirst > 0)
- @closedir($handle);
- $upload_dir_error=''; // please see 'else {' below ;)
- }
- else {
- // modified by mkkeck 2004-05-08
- // showing UploadDir Error at the end of all option for SQL-Queries
- $upload_dir_error.= ' <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n"
- . ' <tr>' . "\n"
- . ' <th' . $queryframe_thcolspan . ' class="tblHeadError"><div class="errorhead">' . $strError . '</div></th>' . "\n"
- . ' </tr>' . "\n"
- . ' <tr>' . "\n"
- . ' <td' . $queryframe_thcolspan . ' class="tblError">' . wordwrap($strWebServerUploadDirectoryError,80,'<br />&nbsp;') . '</td>' . "\n"
- . ' </tr>' . "\n"
- . ' <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n";
- }
-} // end if (web-server upload directory)
-echo "\n";
-
-// Encoding setting form appended by Y.Kawada
-if (function_exists('PMA_set_enc_form')) {
- echo PMA_set_enc_form(' ');
- $form_items++;
-}
-
-// Charset conversion options and submit button
-if (($is_upload || $is_upload_dir) &&
- (!isset($is_inside_querywindow) ||
- (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')))
- // It's possible that $db is empty: no db was selected on the left
- // panel and the user wants to execute a .sql file to create one)
- // && isset($db) && $db != ''){
- ){
-/*
- if ($cfg['AllowAnywhereRecoding'] && $allow_recoding) {
- $form_items++;
- echo ' <div style="margin-bottom: 5px">' . "\n";
- $temp_charset = reset($cfg['AvailableCharsets']);
- echo $strCharsetOfFile . "\n"
- . ' <select name="charset_of_file" size="1">' . "\n"
- . ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- while ($temp_charset = next($cfg['AvailableCharsets'])) {
- echo ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- }
- echo ' </select><br />' . "\n" . ' ';
- echo ' </div>' . "\n";
- } // end if (recoding)
-*/
- echo ' <tr class="tblFooters"><td' . $queryframe_tdcolspan . '>' . "\n";
- if (PMA_MYSQL_INT_VERSION < 40100 && $cfg['AllowAnywhereRecoding'] && $allow_recoding) {
- $temp_charset = reset($cfg['AvailableCharsets']);
- echo '&nbsp;' . $strCharsetOfFile
- . '&nbsp;<select name="charset_of_file" size="1">' . "\n"
- . ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- while ($temp_charset = next($cfg['AvailableCharsets'])) {
- echo ' <option value="' . $temp_charset . '"';
- if ($temp_charset == $charset) {
- echo ' selected="selected"';
- }
- echo '>' . $temp_charset . '</option>' . "\n";
- }
- echo ' </select>' . "\n" . ' ';
- } // end if (recoding)
- else if (PMA_MYSQL_INT_VERSION >= 40100) {
- echo $strCharsetOfFile . "\n"
- . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', NULL, 'utf8', FALSE);
- }
- echo ' </td>' . "\n"
- . ' <td align="right"' . $queryframe_thcolspan . '><input type="submit" name="SQL" value="' . $strGo . '" /></td>' . "\n"
- . ' </tr>' . "\n\n";
-}
-
-// Bookmark Support
-$bookmark_go = FALSE;
-if (!isset($is_inside_querywindow) ||
- (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'history' || $querydisplay_tab == 'full'))) {
- if ($cfg['Bookmark']['db'] && $cfg['Bookmark']['table']) {
- if (($bookmark_list = PMA_listBookmarks($db, $cfg['Bookmark'])) && count($bookmark_list) > 0) {
- $form_items++;
- echo ' <tr><td' . $queryframe_thcolspan . '><img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png' . '" width="1" height="1" border="0" alt="" /></td></tr>' . "\n";
- echo ' <tr><td' . $queryframe_thcolspan . ' class="tblHeaders">' . "\n";
- echo " " . ((isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && $querydisplay_tab == 'full') || !isset($is_inside_querywindow) ? "<i>$strOr</i>" : '') . " $strBookmarkQuery:&nbsp;\n";
- echo ' </td></tr>' . "\n";
- if (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE) {
- $querybox_hidden_fields .= ' <input type="hidden" name="focus_querywindow" value="true" />' . "\n";
- }
-
- echo ' <tr bgcolor="' .$cfg['BgcolorOne'] . '"><td' . $queryframe_tdcolspan . '>' . "\n";
- echo ' <select name="id_bookmark" style="vertical-align: middle">' . "\n";
- echo ' <option value=""></option>' . "\n";
- foreach($bookmark_list AS $key => $value) {
- echo ' <option value="' . htmlspecialchars($key) . '">' . htmlspecialchars($value) . '</option>' . "\n";
- }
- echo ' </select>' . "&nbsp;&nbsp;&nbsp;\n";
- echo ' ' . $strVar;
- echo ' ' . $cfg['ReplaceHelpImg'] ? '<a href="./Documentation.html#faqbookmark" target="documentation"><img src="' . $pmaThemeImage . 'b_help.png" width="11" height="11" align="middle" alt="' . $strDocu . '" hspace="2" border="0" /></a>' : '(<a href="./Documentation.html#faqbookmark" target="documentation">' . $strDocu . '</a>)';
- echo ': <input type="text" name="bookmark_variable" class="textfield" size="10" style="vertical-align: middle" /><br />' . "\n";
- echo ' <input type="radio" name="action_bookmark" value="0" id="radio_bookmark0" checked="checked" style="vertical-align: middle" /><label for="radio_bookmark0">' . $strSubmit . '</label>' . "\n";
- echo ' &nbsp;<input type="radio" name="action_bookmark" value="1" id="radio_bookmark1" style="vertical-align: middle" /><label for="radio_bookmark1">' . $strBookmarkView . '</label>' . "\n";
- echo ' &nbsp;<input type="radio" name="action_bookmark" value="2" id="radio_bookmark2" style="vertical-align: middle" /><label for="radio_bookmark2">' . $strDelete . '</label>' . "\n";
- echo ' <br />' . "\n";
- echo ' </td>' . "\n";
- echo ' <td valign="bottom" align="right">' . "\n";
- echo ' <input type="submit" name="SQL" value="' . $strGo . '" />';
- echo ' </td></tr>' . "\n";
- $bookmark_go = TRUE;
- }
- }
-}
-
-if (!isset($is_inside_querywindow) || (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && (($querydisplay_tab == 'files') || $querydisplay_tab == 'sql' || $querydisplay_tab == 'full' || ($querydisplay_tab == 'history' && $bookmark_go)))) {
- if ($form_items > 0) {
- if ( $cfg['Bookmark']['db']
- && $cfg['Bookmark']['table']
- && (!isset($is_inside_querywindow)
- || ( isset($is_inside_querywindow)
- && $is_inside_querywindow == TRUE
- && isset($querydisplay_tab)
- //&& $querydisplay_tab != 'history'))) {
- && $querydisplay_tab == 'sql'))) {
-?>
- <tr><td<?php echo $queryframe_thcolspan; ?>><img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>" border="0" width="1" height="1" alt="" /></td></tr>
- <tr><th<?php echo $queryframe_thcolspan; ?> align="left"><?php echo $strBookmarkThis; ?>:</th></tr>
- <tr bgcolor="<?php echo $cfg['BgcolorTwo']; ?>">
- <td<?php echo $queryframe_thcolspan; ?>>
- <b><?php echo $strBookmarkOptions; ?>:</b>
- </td>
- </tr>
- <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td<?php echo $queryframe_thcolspan; ?>>
- &nbsp;&nbsp;<?php echo $strBookmarkLabel; ?>: <input type="text" name="bkm_label" value="" /><br />
- &nbsp;&nbsp;<input type="checkbox" name="bkm_all_users" id="id_bkm_all_users" value="true" /><label for="id_bkm_all_users"><?php echo $strBookmarkAllUsers; ?></label>
- </td>
- </tr>
- <tr bgcolor="<?php echo $cfg['BgcolorOne']; ?>">
- <td align="right"<?php echo $queryframe_thcolspan; ?>>
- <input type="submit" name="SQLbookmark" value="<?php echo $strGo . ' &amp; ' . $strBookmarkThis; ?>" onclick="if(document.forms['sqlform'].elements['bkm_label'].value==''){ alert('<?php echo addslashes($strInsertBookmarkTitle); ?>');forms['sqlform'].elements['bkm_label'].focus();return false; }"/>
- </td>
- </tr>
-<?php
- }
- } else {
- echo ' <tr><td' . $queryframe_thcolspan . '>' . "\n";
- // TODO: Add a more complete warning that no items (like for file import) where found.
- // (After 2.5.2 release!)
- echo $strWebServerUploadDirectoryError;
- echo ' </td></tr>' . "\n";
- }
-}
-echo ' <tr><td' . $queryframe_thcolspan . ' height="1">' . "\n";
-echo $querybox_hidden_fields;
-echo ' </td></tr>';
-if ($upload_dir_error!='') {
- echo $upload_dir_error;
-}
-?>
- </table>
- </form>
-
-<?php
-//if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "</li>\n";
-if (!isset($is_inside_querywindow) ||
- (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE && isset($querydisplay_tab) && ($querydisplay_tab == 'files' || $querydisplay_tab == 'full')) && isset($db) && $db != '') {
-
- // loic1: displays import dump feature only if file upload available
- $ldi_target = 'ldi_table.php?' . $url_query . (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '&amp;focus_querywindow=true' : '');
-
- if ($is_upload && isset($db) && isset($table)) {
- //if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "<li>\n";
- if ($cfg['PropertiesIconic']) {
- $imgInsertTextfiles = '<img src="' . $pmaThemeImage. 'b_tblimport.png" '
- . 'width="16" height="16" hspace="2" border="0" align="middle" alt="' . $strInsertTextfiles. '" />';
- }else{
- $imgInsertTextfiles = '';
- }
- ?>
- <!-- Insert a text file -->
- <?php
- if ($cfg['QueryFrame'] && $cfg['QueryFrameJS']) {
- ?>
-
- <script type="text/javascript">
- <!--
- document.writeln('<a href="<?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '#' : $ldi_target); ?>" <?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? 'onclick="opener.parent.frames.phpmain\' + opener.parent.frames.queryframe.document.hashform.hash.value + \'.location.href = \\\'' . $ldi_target . '\\\'; return false;"' : ''); ?>><?php echo addslashes($imgInsertTextfiles . $strInsertTextfiles); ?></a>');
- //-->
- </script>
-
- <?php
- } else {
- ?>
-
- <script type="text/javascript">
- <!--
- document.writeln('<a href="<?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? '#' : $ldi_target); ?>" <?php echo (isset($is_inside_querywindow) && $is_inside_querywindow == TRUE ? 'onclick="opener.parent.frames.phpmain' . md5($cfg['PmaAbsoluteUri']) . '.location.href = \\\'' . $ldi_target . '\\\'; return false;"' : ''); ?>><?php echo addslashes($imgInsertTextfiles . $strInsertTextfiles); ?></a>');
- //-->
- </script>
-
- <?php
- }
- ?>
-
- <noscript>
- <a href="<?php echo $ldi_target; ?>"><?php
- echo $imgInsertTextfiles . $strInsertTextfiles;
- ?></a>
- </noscript>
- <?php
- //if (!isset($is_inside_querywindow) || !$is_inside_querywindow) echo "</li>\n";
- }
-}
-echo "\n";
+PMA_sqlQueryForm( $query_to_display, $querydisplay_tab );
?>