aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/tbl_export.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/tbl_export.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/tbl_export.php')
-rw-r--r--srcs/phpmyadmin/tbl_export.php117
1 files changed, 117 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/tbl_export.php b/srcs/phpmyadmin/tbl_export.php
new file mode 100644
index 0000000..3269f63
--- /dev/null
+++ b/srcs/phpmyadmin/tbl_export.php
@@ -0,0 +1,117 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Table export
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+use PhpMyAdmin\Config\PageSettings;
+use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Display\Export;
+use PhpMyAdmin\Relation;
+use PhpMyAdmin\Response;
+
+if (! defined('ROOT_PATH')) {
+ define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
+}
+
+global $containerBuilder, $db, $table, $url_query;
+
+require_once ROOT_PATH . 'libraries/common.inc.php';
+
+/** @var Response $response */
+$response = $containerBuilder->get(Response::class);
+
+/** @var DatabaseInterface $dbi */
+$dbi = $containerBuilder->get(DatabaseInterface::class);
+
+PageSettings::showGroup('Export');
+
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('export.js');
+
+// Get the relation settings
+/** @var Relation $relation */
+$relation = $containerBuilder->get('relation');
+$cfgRelation = $relation->getRelationsParam();
+
+/** @var Export $displayExport */
+$displayExport = $containerBuilder->get('display_export');
+
+// handling export template actions
+if (isset($_POST['templateAction']) && $cfgRelation['exporttemplateswork']) {
+ $displayExport->handleTemplateActions($cfgRelation);
+ exit;
+}
+
+/**
+ * Gets tables information and displays top links
+ */
+require_once ROOT_PATH . 'libraries/tbl_common.inc.php';
+$url_query .= '&amp;goto=tbl_export.php&amp;back=tbl_export.php';
+
+// Dump of a table
+
+$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 PhpMyAdmin\SqlParser\Parser($sql_query);
+
+ if (! empty($parser->statements[0])
+ && ($parser->statements[0] instanceof PhpMyAdmin\SqlParser\Statements\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 = PhpMyAdmin\SqlParser\Utils\Query::replaceClauses(
+ $parser->statements[0],
+ $parser->list,
+ $replaces
+ );
+ }
+
+ echo PhpMyAdmin\Util::getMessage(PhpMyAdmin\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 = '';
+}
+$response = Response::getInstance();
+$response->addHTML(
+ $displayExport->getDisplay(
+ 'table',
+ $db,
+ $table,
+ $sql_query,
+ $num_tables,
+ $unlim_num_rows,
+ $multi_values
+ )
+);