diff --git a/application/libraries/Ilch/Design/Base.php b/application/libraries/Ilch/Design/Base.php index 11d1992fb..712248fa2 100644 --- a/application/libraries/Ilch/Design/Base.php +++ b/application/libraries/Ilch/Design/Base.php @@ -492,12 +492,11 @@ public function getUrl($url = [], ?string $route = null, bool $secure = false): { $locale = ''; $config = \Ilch\Registry::get('config'); - if ($config->get('multilingual_acp') && $this->layout->getTranslator()->getLocale() != $config->get('content_language')) { + if ($config !== null && $config->get('multilingual_acp') && $this->layout->getTranslator()->getLocale() != $config->get('content_language')) { $locale = $this->layout->getTranslator()->getLocale(); } if ($this->modRewrite === null) { - $config = \Ilch\Registry::get('config'); if ($config !== null) { $this->modRewrite = (bool) $config->get('mod_rewrite'); } else { diff --git a/application/libraries/Ilch/Redirect.php b/application/libraries/Ilch/Redirect.php index aaeb2df98..2a1771188 100644 --- a/application/libraries/Ilch/Redirect.php +++ b/application/libraries/Ilch/Redirect.php @@ -173,13 +173,16 @@ protected function perform(string $destination = '/', int $status = 302, array $ public function getUrl($url = [], ?string $route = null): string { $config = Registry::get('config'); - $locale = ''; - if ($config->get('multilingual_acp') && $this->translator->getLocale() != $config->get('content_language')) { - $locale = $this->translator->getLocale(); - } + $modRewrite = false; + + if ($config !== null) { + $modRewrite = (bool)$config->get('mod_rewrite'); - $modRewrite = (bool)$config->get('mod_rewrite'); + if ($config->get('multilingual_acp') && $this->translator->getLocale() != $config->get('content_language')) { + $locale = $this->translator->getLocale(); + } + } if (empty($url)) { return BASE_URL; diff --git a/application/modules/admin/plugins/AfterDatabaseLoad.php b/application/modules/admin/plugins/AfterDatabaseLoad.php index 8bc681d45..706effdb2 100644 --- a/application/modules/admin/plugins/AfterDatabaseLoad.php +++ b/application/modules/admin/plugins/AfterDatabaseLoad.php @@ -30,8 +30,8 @@ public function __construct(array $pluginData) $request->setParam('locale', $permas[$urlParts[0]]['locale']); } unset($urlParts[0]); - if ($urlParts[1] === 'locale') { - unset($urlParts[1]); + if (isset($urlParts[0]) && $urlParts[0] === 'locale') { + unset($urlParts[0]); } $result = $router->convertParamStringIntoArray(implode('/', $urlParts)); diff --git a/application/modules/article/plugins/AfterDatabaseLoad.php b/application/modules/article/plugins/AfterDatabaseLoad.php index 86c53b39a..24e5e5c55 100644 --- a/application/modules/article/plugins/AfterDatabaseLoad.php +++ b/application/modules/article/plugins/AfterDatabaseLoad.php @@ -30,8 +30,8 @@ public function __construct(array $pluginData) $request->setParam('locale', $permas[$urlParts[0]]['locale']); } unset($urlParts[0]); - if ($urlParts[1] === 'locale') { - unset($urlParts[1]); + if (isset($urlParts[0]) && $urlParts[0] === 'locale') { + unset($urlParts[0]); } $result = $router->convertParamStringIntoArray(implode('/', $urlParts));