Translation update done using Pootle.
[phpmyadmin/crack.git] / querywindow.php
blob7b2b08d1bd52c9e069cee8100e83af62d7528158
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * this file is register_globals safe
6 * @todo move JavaScript out of here into .js files
7 * @uses $cfg['QueryWindowDefTab']
8 * @uses $cfg['PropertiesIconic']
9 * @uses $cfg['QueryHistoryDB']
10 * @uses $cfg['Server']['user']
11 * @uses $cfg['AllowUserDropDatabase']
12 * @uses $cfg['Confirm']
13 * @uses $GLOBALS['db']
14 * @uses $GLOBALS['table']
15 * @uses PMA_isSuperuser()
16 * @uses PMA_outBufferPre()
17 * @uses PMA_getRelationsParam()
18 * @uses PMA_isValid()
19 * @uses PMA_ifSetOr()
20 * @uses PMA_getHistory()
21 * @uses PMA_generate_common_url()
22 * @uses PMA_generate_common_hidden_inputs()
23 * @uses PMA_escapeJsString()
24 * @uses PMA_generate_html_tabs()
25 * @uses PMA_sqlQueryForm()
26 * @uses PMA_jsFormat()
27 * @uses in_array()
28 * @uses strlen()
29 * @uses preg_replace()
30 * @uses htmlspecialchars()
31 * @package phpMyAdmin
34 /**
37 require_once './libraries/common.inc.php';
39 $is_superuser = PMA_isSuperuser();
41 /**
42 * Gets a core script and starts output buffering work
44 require_once './libraries/sql_query_form.lib.php';
46 /**
47 * starts output buffering if requested and supported
49 require_once './libraries/ob.lib.php';
50 PMA_outBufferPre();
52 /**
53 * load relations
55 require_once './libraries/relation.lib.php';
56 $cfgRelation = PMA_getRelationsParam();
58 /**
59 * load bookmark support
61 require_once './libraries/bookmark.lib.php';
63 $querydisplay_tabs = array(
64 'sql',
65 'files',
66 'history',
67 'full',
70 if (isset($_REQUEST['querydisplay_tab'])
71 && in_array($_REQUEST['querydisplay_tab'], $querydisplay_tabs)) {
72 $querydisplay_tab = $_REQUEST['querydisplay_tab'];
73 } else {
74 $querydisplay_tab = $GLOBALS['cfg']['QueryWindowDefTab'];
77 /**
78 * $_REQUEST['no_js'] is set if open new window by JavaScript failed
79 * so this page is loaded in main frame
81 $no_js = PMA_ifSetOr($_REQUEST['no_js'], false);
83 if ($no_js) {
84 $querydisplay_tab = 'full';
85 $tabs = false;
86 } else {
87 $tabs = array();
88 $tabs['sql']['icon'] = 'b_sql.png';
89 $tabs['sql']['text'] = __('SQL');
90 $tabs['sql']['fragment'] = '#';
91 $tabs['sql']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'sql\');return false;"';
92 $tabs['sql']['active'] = (bool) ($querydisplay_tab == 'sql');
93 $tabs['import']['icon'] = 'b_import.png';
94 $tabs['import']['text'] = __('Import files');
95 $tabs['import']['fragment'] = '#';
96 $tabs['import']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'files\');return false;"';
97 $tabs['import']['active'] = (bool) ($querydisplay_tab == 'files');
98 $tabs['history']['icon'] = 'b_bookmark.png';
99 $tabs['history']['text'] = __('SQL history');
100 $tabs['history']['fragment'] = '#';
101 $tabs['history']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'history\');return false;"';
102 $tabs['history']['active'] = (bool) ($querydisplay_tab == 'history');
104 if ($GLOBALS['cfg']['QueryWindowDefTab'] == 'full') {
105 $tabs['all']['text'] = __('All');
106 $tabs['all']['fragment'] = '#';
107 $tabs['all']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'full\');return false;"';
108 $tabs['all']['active'] = (bool) ($querydisplay_tab == 'full');
112 if ($GLOBALS['cfg']['PropertiesIconic']) {
113 $titles['Change'] =
114 '<img class="icon" width="16" height="16" src="' . $pmaThemeImage
115 . 'b_edit.png" alt="' . __('Change') . '" title="' . __('Change')
116 . '" />';
118 if ('both' === $GLOBALS['cfg']['PropertiesIconic']) {
119 $titles['Change'] .= __('Change');
121 } else {
122 $titles['Change'] = __('Change');
125 $url_query = PMA_generate_common_url($db, $table);
127 if (! empty($sql_query)) {
128 $show_query = 1;
131 if ($no_js) {
132 // ... we redirect to appropriate query sql page
133 // works only full if $db and $table is also stored/grabbed from $_COOKIE
134 if (strlen($table)) {
135 require './tbl_sql.php';
136 } elseif (strlen($db)) {
137 require './db_sql.php';
138 } else {
139 require './server_sql.php';
141 exit;
145 * Defines the query to be displayed in the query textarea
147 if (! empty($show_query)) {
148 $query_to_display = $sql_query;
149 } else {
150 $query_to_display = '';
152 $sql_query = '';
155 * prepare JavaScript functionality
157 $js_include[] = 'common.js';
158 $js_include[] = 'functions.js';
159 $js_include[] = 'querywindow.js';
161 if (PMA_isValid($_REQUEST['auto_commit'], 'identical', 'true')) {
162 $js_events[] = array(
163 'event' => 'load',
164 'function' => 'PMA_queryAutoCommit',
167 if (PMA_isValid($_REQUEST['init'])) {
168 $js_events[] = array(
169 'event' => 'load',
170 'function' => 'PMA_querywindowResize',
173 // always set focus to the textarea
174 if ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full') {
175 $js_events[] = array(
176 'event' => 'load',
177 'function' => 'PMA_querywindowSetFocus',
182 * start HTTP/HTML output
184 require_once './libraries/header_http.inc.php';
185 require_once './libraries/header_meta_style.inc.php';
186 require_once './libraries/header_scripts.inc.php';
188 </head>
190 <body id="bodyquerywindow">
191 <div id="querywindowcontainer">
192 <?php
194 if ($tabs) {
195 echo PMA_generate_html_tabs($tabs, array());
196 unset($tabs);
199 PMA_sqlQueryForm($query_to_display, $querydisplay_tab);
201 // Hidden forms and query frame interaction stuff
203 $_sql_history = PMA_getHistory($GLOBALS['cfg']['Server']['user']);
204 if (! empty($_sql_history)
205 && ($querydisplay_tab == 'history' || $querydisplay_tab == 'full')) {
206 $tab = $querydisplay_tab != 'full' ? 'sql' : 'full';
207 echo __('SQL history') . ':<br />'
208 . '<ul>';
209 foreach ($_sql_history as $query) {
210 echo '<li>' . "\n";
212 // edit link
213 $url_params = array(
214 'querydisplay_tab' => $tab,
215 'sql_query' => $query['sqlquery'],
216 'db' => $query['db'],
217 'table' => $query['table'],
219 echo '<a href="querywindow.php' . PMA_generate_common_url($url_params)
220 . '">' . $titles['Change'] . '</a>';
222 // execute link
223 $url_params['auto_commit'] = 'true';
224 echo '<a href="import.php' . PMA_generate_common_url($url_params) . '"'
225 . ' target="frame_content">';
227 if (! empty($query['db'])) {
228 echo '[';
229 echo htmlspecialchars(PMA_backquote($query['db']));
230 if (! empty($query['table'])) {
231 echo '.' . htmlspecialchars(PMA_backquote($query['table']));
233 echo '] ';
235 if (strlen($query['sqlquery']) > 120) {
236 echo '<span title="' . htmlspecialchars($query['sqlquery']) . '">';
237 echo htmlspecialchars(substr($query['sqlquery'], 0, 50)) . ' [...] ';
238 echo htmlspecialchars(substr($query['sqlquery'], -50));
239 echo '</span>';
240 } else {
241 echo htmlspecialchars($query['sqlquery']);
243 echo '</a>' . "\n";
244 echo '</li>' . "\n";
246 unset($tab, $_sql_history, $query);
247 echo '</ul>' . "\n";
250 <form action="querywindow.php" method="post" name="hiddenqueryform"
251 id="hiddenqueryform">
252 <?php echo PMA_generate_common_hidden_inputs('', ''); ?>
253 <input type="hidden" name="db" value="<?php echo htmlspecialchars($db); ?>" />
254 <input type="hidden" name="table" value="<?php echo htmlspecialchars($table); ?>" />
255 <input type="hidden" name="sql_query" value="" />
256 <input type="hidden" name="querydisplay_tab" value="<?php echo $querydisplay_tab; ?>" />
257 </form>
258 </div>
259 </body>
260 </html>