mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-12 16:26:07 +01:00
Merge pull request #371 from getgrav/feature/handle-hide_home_in_urls
Fix for change in 3eb2a5664a
This commit is contained in:
@@ -1071,13 +1071,30 @@ class AdminController
|
||||
if ($this->view == 'pages') {
|
||||
/** @var Page\Pages $pages */
|
||||
$pages = $this->grav['pages'];
|
||||
$config = $this->grav['config'];
|
||||
|
||||
// Find new parent page in order to build the path.
|
||||
$route = !isset($data['route']) ? dirname($this->admin->route) : $data['route'];
|
||||
$parent = $route && $route != '/' ? $pages->dispatch($route, true) : $pages->root();
|
||||
|
||||
$obj = $this->admin->page(true);
|
||||
|
||||
//Handle system.home.hide_in_urls
|
||||
$hide_home_route = $config->get('system.home.hide_in_urls', false);
|
||||
if ($hide_home_route) {
|
||||
$home_route = $config->get('system.home.alias');
|
||||
$topParent = $obj->topParent();
|
||||
if (isset($topParent)) {
|
||||
if ($topParent->route() == $home_route) {
|
||||
$baseRoute = (string) $topParent->route();
|
||||
if ($obj->parent() != $topParent) {
|
||||
$baseRoute .= $obj->parent()->route();
|
||||
}
|
||||
}
|
||||
}
|
||||
$route = isset($baseRoute) ? $baseRoute : null;
|
||||
}
|
||||
|
||||
$parent = $route && $route != '/' ? $pages->dispatch($route, true) : $pages->root();
|
||||
|
||||
$original_slug = $obj->slug();
|
||||
$original_order = intval(trim($obj->order(), '.'));
|
||||
|
||||
@@ -1145,7 +1162,21 @@ class AdminController
|
||||
}
|
||||
}
|
||||
$admin_route = $this->grav['config']->get('plugins.admin.route');
|
||||
$redirect_url = '/' . ($multilang ? ($obj->language()) : '') . $admin_route . '/' . $this->view . $obj->route();
|
||||
|
||||
//Handle system.home.hide_in_urls
|
||||
$route = $obj->route();
|
||||
$hide_home_route = $config->get('system.home.hide_in_urls', false);
|
||||
if ($hide_home_route) {
|
||||
$home_route = $config->get('system.home.alias');
|
||||
$topParent = $obj->topParent();
|
||||
if (isset($topParent)) {
|
||||
if ($topParent->route() == $home_route) {
|
||||
$route = (string) $topParent->route() . $route;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$redirect_url = '/' . ($multilang ? ($obj->language()) : '') . $admin_route . '/' . $this->view . $route;
|
||||
|
||||
$this->setRedirect($redirect_url);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user