Viewing file: ExportController.php (2.55 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Server;
use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Export\Options; use PhpMyAdmin\Message; use PhpMyAdmin\Plugins; use PhpMyAdmin\Response; use PhpMyAdmin\Template; use PhpMyAdmin\Url; use function array_merge;
final class ExportController extends AbstractController { /** @var Options */ private $export;
/** @var DatabaseInterface */ private $dbi;
/** * @param Response $response * @param DatabaseInterface $dbi */ public function __construct($response, Template $template, Options $export, $dbi) { parent::__construct($response, $template); $this->export = $export; $this->dbi = $dbi; }
public function index(): void { global $db, $table, $sql_query, $num_tables, $unlim_num_rows; global $tmp_select, $select_item, $err_url;
$err_url = Url::getFromRoute('/');
if ($this->dbi->isSuperUser()) { $this->dbi->selectDb('mysql'); }
$pageSettings = new PageSettings('Export'); $pageSettingsErrorHtml = $pageSettings->getErrorHTML(); $pageSettingsHtml = $pageSettings->getHTML();
$this->addScriptFiles(['export.js']);
$select_item = $tmp_select ?? ''; $databases = $this->export->getDatabasesForSelectOptions($select_item);
if (! isset($sql_query)) { $sql_query = ''; } if (! isset($num_tables)) { $num_tables = 0; } if (! isset($unlim_num_rows)) { $unlim_num_rows = 0; }
$GLOBALS['single_table'] = $_POST['single_table'] ?? $_GET['single_table'] ?? $GLOBALS['single_table'] ?? null;
$exportList = Plugins::getExport('server', isset($GLOBALS['single_table']));
if (empty($exportList)) { $this->response->addHTML(Message::error( __('Could not load export plugins, please check your installation!') )->getDisplay());
return; }
$options = $this->export->getOptions( 'server', $db, $table, $sql_query, $num_tables, $unlim_num_rows, $exportList );
$this->render('server/export/index', array_merge($options, [ 'page_settings_error_html' => $pageSettingsErrorHtml, 'page_settings_html' => $pageSettingsHtml, 'databases' => $databases, ])); } }
|