export = $export; $this->relation = $relation; } public function index(): void { global $db, $url_query, $url_params, $table, $export_page_title, $replaces; global $sql_query, $where_clause, $num_tables, $unlim_num_rows, $multi_values; PageSettings::showGroup('Export'); $header = $this->response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('export.js'); $cfgRelation = $this->relation->getRelationsParam(); // handling export template actions if (isset($_POST['templateAction']) && $cfgRelation['exporttemplateswork']) { $this->export->handleTemplateActions($cfgRelation); return; } /** * Gets tables information and displays top links */ Common::table(); $url_params = [ 'goto' => Url::getFromRoute('/table/export'), 'back' => Url::getFromRoute('/table/export'), ]; $url_query .= Url::getCommon($url_params, '&'); $export_page_title = __('View dump (schema) of table'); // When we have some query, we need to remove LIMIT from that and possibly // generate WHERE clause (if we are asked to export specific rows) if (! empty($sql_query)) { $parser = new Parser($sql_query); if (! empty($parser->statements[0]) && ($parser->statements[0] instanceof SelectStatement) ) { // Checking if the WHERE clause has to be replaced. if (! empty($where_clause) && is_array($where_clause)) { $replaces[] = [ 'WHERE', 'WHERE (' . implode(') OR (', $where_clause) . ')', ]; } // Preparing to remove the LIMIT clause. $replaces[] = [ 'LIMIT', '', ]; // Replacing the clauses. $sql_query = Query::replaceClauses( $parser->statements[0], $parser->list, $replaces ); } echo Generator::getMessage(Message::success()); } if (! isset($sql_query)) { $sql_query = ''; } if (! isset($num_tables)) { $num_tables = 0; } if (! isset($unlim_num_rows)) { $unlim_num_rows = 0; } if (! isset($multi_values)) { $multi_values = ''; } $this->response->addHTML($this->export->getDisplay( 'table', $db, $table, $sql_query, $num_tables, $unlim_num_rows, $multi_values )); } }