Translated using Weblate (Estonian)
[phpmyadmin.git] / view_operations.php
blob7b6be6e43006a74d5ef2e6f9fb0ca3e156dcbbac
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * View manipulations
6 * @package PhpMyAdmin
7 */
8 declare(strict_types=1);
10 use PhpMyAdmin\DatabaseInterface;
11 use PhpMyAdmin\Message;
12 use PhpMyAdmin\Operations;
13 use PhpMyAdmin\Relation;
14 use PhpMyAdmin\Response;
15 use PhpMyAdmin\Table;
16 use PhpMyAdmin\Template;
17 use PhpMyAdmin\Url;
18 use PhpMyAdmin\Util;
20 if (! defined('ROOT_PATH')) {
21 define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
24 global $sql_query, $url_query;
26 require_once ROOT_PATH . 'libraries/common.inc.php';
28 /** @var Response $response */
29 $response = $containerBuilder->get(Response::class);
31 /** @var DatabaseInterface $dbi */
32 $dbi = $containerBuilder->get(DatabaseInterface::class);
34 $pma_table = new Table($GLOBALS['table'], $GLOBALS['db']);
36 $header = $response->getHeader();
37 $scripts = $header->getScripts();
38 $scripts->addFile('table/operations.js');
40 /** @var Template $template */
41 $template = $containerBuilder->get('template');
43 /**
44 * Runs common work
46 require ROOT_PATH . 'libraries/tbl_common.inc.php';
47 $url_query .= '&amp;goto=view_operations.php&amp;back=view_operations.php';
48 $url_params['goto'] = $url_params['back'] = 'view_operations.php';
50 /** @var Relation $relation */
51 $relation = $containerBuilder->get('relation');
52 $operations = new Operations($dbi, $relation);
54 /**
55 * Updates if required
57 $_message = new Message();
58 $_type = 'success';
59 if (isset($_POST['submitoptions'])) {
60 if (isset($_POST['new_name'])) {
61 if ($pma_table->rename($_POST['new_name'])) {
62 $_message->addText($pma_table->getLastMessage());
63 $result = true;
64 $GLOBALS['table'] = $pma_table->getName();
65 /* Force reread after rename */
66 $pma_table->getStatusInfo(null, true);
67 $reload = true;
68 } else {
69 $_message->addText($pma_table->getLastError());
70 $result = false;
74 $warning_messages = $operations->getWarningMessagesArray();
77 if (isset($result)) {
78 // set to success by default, because result set could be empty
79 // (for example, a table rename)
80 if (empty($_message->getString())) {
81 if ($result) {
82 $_message->addText(
83 __('Your SQL query has been executed successfully.')
85 } else {
86 $_message->addText(__('Error'));
88 // $result should exist, regardless of $_message
89 $_type = $result ? 'success' : 'error';
91 if (! empty($warning_messages)) {
92 $_message->addMessagesString($warning_messages);
93 $_message->isError(true);
94 unset($warning_messages);
96 echo Util::getMessage(
97 $_message,
98 $sql_query,
99 $_type
102 unset($_message, $_type);
104 $url_params['goto'] = 'view_operations.php';
105 $url_params['back'] = 'view_operations.php';
107 $drop_view_url_params = array_merge(
108 $url_params,
110 'sql_query' => 'DROP VIEW ' . Util::backquote($GLOBALS['table']),
111 'goto' => Url::getFromRoute('/table/structure'),
112 'reload' => '1',
113 'purge' => '1',
114 'message_to_show' => sprintf(
115 __('View %s has been dropped.'),
116 $GLOBALS['table']
118 'table' => $GLOBALS['table'],
122 echo $template->render('table/operations/view', [
123 'db' => $GLOBALS['db'],
124 'table' => $GLOBALS['table'],
125 'delete_data_or_table_link' => $operations->getDeleteDataOrTablelink(
126 $drop_view_url_params,
127 'DROP VIEW',
128 __('Delete the view (DROP)'),
129 'drop_view_anchor'