diff --git a/index.php b/index.php index 1e64ada700..8dbf4c1f8a 100644 --- a/index.php +++ b/index.php @@ -271,6 +271,11 @@ if (isset($_GET['route']) || isset($_POST['route'])) { $routes->addRoute(['GET', 'POST'], '/version_check', function () { require_once ROOT_PATH . 'libraries/entry_points/version_check.php'; }); + $routes->addGroup('/view', function (RouteCollector $routes) { + $routes->addRoute(['GET', 'POST'], '/create', function () { + require_once ROOT_PATH . 'libraries/entry_points/view/create.php'; + }); + }); }); $routeInfo = $dispatcher->dispatch( $_SERVER['REQUEST_METHOD'], diff --git a/js/functions.js b/js/functions.js index aa953731aa..cf0f5eae8c 100644 --- a/js/functions.js +++ b/js/functions.js @@ -4564,7 +4564,7 @@ Functions.createViewDialog = function ($this) { codeMirrorEditor.save(); } $msg = Functions.ajaxShowMessage(); - $.post('view_create.php', $('#createViewDialog').find('form').serialize(), function (data) { + $.post('index.php?route=/view/create', $('#createViewDialog').find('form').serialize(), function (data) { Functions.ajaxRemoveMessage($msg); if (typeof data !== 'undefined' && data.success === true) { $('#createViewDialog').dialog('close'); diff --git a/libraries/classes/Controllers/Table/StructureController.php b/libraries/classes/Controllers/Table/StructureController.php index 9a3a8c5980..0588285376 100644 --- a/libraries/classes/Controllers/Table/StructureController.php +++ b/libraries/classes/Controllers/Table/StructureController.php @@ -1276,14 +1276,6 @@ class StructureController extends AbstractController 'DistinctValues' => Util::getIcon('b_browse', __('Distinct values')), ]; - $edit_view_url = ''; - if ($this->_tbl_is_view && ! $this->_db_is_system_schema) { - $edit_view_url = Url::getCommon([ - 'db' => $this->db, - 'table' => $this->table, - ]); - } - /** * Displays Space usage and row statistics */ @@ -1371,7 +1363,6 @@ class StructureController extends AbstractController 'tbl_storage_engine' => $this->_tbl_storage_engine, 'primary' => $primary_index, 'columns_with_unique_index' => $columns_with_unique_index, - 'edit_view_url' => $edit_view_url, 'columns_list' => $columns_list, 'table_stats' => isset($tablestats) ? $tablestats : null, 'fields' => $fields, diff --git a/libraries/classes/Display/Results.php b/libraries/classes/Display/Results.php index 7607e27a67..35272186d2 100644 --- a/libraries/classes/Display/Results.php +++ b/libraries/classes/Display/Results.php @@ -4768,8 +4768,8 @@ class Results /** * Generates HTML to display the Create view in span tag * - * @param array $analyzed_sql_results analyzed sql results - * @param string $url_query String with URL Parameters + * @param array $analyzed_sql_results analyzed sql results + * @param array $params Array with URL Parameters * * @return string * @@ -4777,13 +4777,13 @@ class Results * * @see _getResultsOperations() */ - private function _getLinkForCreateView(array $analyzed_sql_results, $url_query) + private function _getLinkForCreateView(array $analyzed_sql_results, array $params): string { $results_operations_html = ''; if (empty($analyzed_sql_results['procedure'])) { $results_operations_html .= '' . Util::linkOrButton( - 'view_create.php' . $url_query, + Url::getFromRoute('/view/create', $params), Util::getIcon( 'b_view_add', __('Create view'), @@ -4892,7 +4892,7 @@ class Results 'printview' => '1', 'sql_query' => $this->__get('sql_query'), ]; - $url_query = Url::getCommon($_url_params); + $params = $_url_params; if (! $header_shown) { $results_operations_html .= $header; @@ -4903,7 +4903,7 @@ class Results if ($only_view) { $results_operations_html .= $this->_getLinkForCreateView( $analyzed_sql_results, - $url_query + $params ); if ($header_shown) { @@ -5016,7 +5016,7 @@ class Results $results_operations_html .= $this->_getLinkForCreateView( $analyzed_sql_results, - $url_query + $params ); if ($header_shown) { diff --git a/libraries/classes/Navigation/Nodes/NodeViewContainer.php b/libraries/classes/Navigation/Nodes/NodeViewContainer.php index b69e1e9324..1e23c41f8e 100644 --- a/libraries/classes/Navigation/Nodes/NodeViewContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeViewContainer.php @@ -50,10 +50,12 @@ class NodeViewContainer extends NodeDatabaseChildContainer $new->isNew = true; $new->icon = Util::getImage('b_view_add', $newLabel); $new->links = [ - 'text' => 'view_create.php?server=' . $GLOBALS['server'] - . '&db=%2$s', - 'icon' => 'view_create.php?server=' . $GLOBALS['server'] - . '&db=%2$s', + 'text' => Url::getFromRoute('/view/create', [ + 'server' => $GLOBALS['server'], + ]) . '&db=%2$s', + 'icon' => Url::getFromRoute('/view/create', [ + 'server' => $GLOBALS['server'], + ]) . '&db=%2$s', ]; $new->classes = 'new_view italics'; $this->addChild($new); diff --git a/view_create.php b/libraries/entry_points/view/create.php similarity index 97% rename from view_create.php rename to libraries/entry_points/view/create.php index 4e2df9f112..2a4d12b15f 100644 --- a/view_create.php +++ b/libraries/entry_points/view/create.php @@ -17,13 +17,12 @@ use PhpMyAdmin\Template; use PhpMyAdmin\Url; use PhpMyAdmin\Util; -if (! defined('ROOT_PATH')) { - define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); +if (! defined('PHPMYADMIN')) { + exit; } global $containerBuilder, $text_dir; -require_once ROOT_PATH . 'libraries/common.inc.php'; require ROOT_PATH . 'libraries/db_common.inc.php'; /** @var Response $response */ @@ -33,7 +32,7 @@ $response = $containerBuilder->get(Response::class); $dbi = $containerBuilder->get(DatabaseInterface::class); $url_params['goto'] = Url::getFromRoute('/table/structure'); -$url_params['back'] = 'view_create.php'; +$url_params['back'] = Url::getFromRoute('/view/create'); /** @var Template $template */ $template = $containerBuilder->get('template'); diff --git a/templates/database/structure/structure_table_row.twig b/templates/database/structure/structure_table_row.twig index f440b167f8..2665f98044 100644 --- a/templates/database/structure/structure_table_row.twig +++ b/templates/database/structure/structure_table_row.twig @@ -62,10 +62,10 @@ {% if table_is_view %} - {{ titles['Edit']|raw }} + {{ titles['Edit']|raw }} {% else %} diff --git a/templates/table/structure/display_structure.twig b/templates/table/structure/display_structure.twig index dc6ee09e47..10fd49bf03 100644 --- a/templates/table/structure/display_structure.twig +++ b/templates/table/structure/display_structure.twig @@ -374,9 +374,8 @@ {# Work on the table #}