diff --git a/init.php b/init.php index 97c03cd0..b6530a46 100644 --- a/init.php +++ b/init.php @@ -42,7 +42,7 @@ spl_autoload_register('_autoloader'); if (!file_exists($root_path . 'config.php')) { $root_path .= '..' . DIRECTORY_SEPARATOR; if (!file_exists($root_path . 'config.php')) { - r2('install'); + r2(getUrl('install')); } } @@ -196,7 +196,7 @@ function _auth($login = true) return true; } else { if ($login) { - r2(U . 'login'); + r2(getUrl('login')); } else { return false; } @@ -209,7 +209,7 @@ function _admin($login = true) return true; } else { if ($login) { - r2(U . 'login'); + r2(getUrl('login')); } else { return false; } @@ -261,6 +261,13 @@ function showResult($success, $message = '', $result = [], $meta = []) die(); } +/** + * make url canonical or standar + */ +function getUrl($url) +{ + Text::url($url); +} function generateUniqueNumericVouchers($totalVouchers, $length = 8) { @@ -333,10 +340,10 @@ function _alert($text, $type = 'success', $url = "home", $time = 3) if (!isset($ui)) return; if (strlen($url) > 4) { if (substr($url, 0, 4) != "http") { - $url = U . $url; + $url = getUrl($url); } } else { - $url = U . $url; + $url = getUrl($url); } $ui->assign('text', $text); $ui->assign('type', $type); diff --git a/system/autoload/Package.php b/system/autoload/Package.php index 2d30465d..cc8d464b 100644 --- a/system/autoload/Package.php +++ b/system/autoload/Package.php @@ -74,10 +74,10 @@ class Package if (!$p['enabled']) { if (!isset($admin) || !isset($admin['id']) || empty($admin['id'])) { - r2(U . 'home', 'e', Lang::T('Plan Not found')); + r2(getUrl('home'), 'e', Lang::T('Plan Not found')); } if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - r2(U . 'dashboard', 'e', Lang::T('You do not have permission to access this page')); + r2(getUrl('dashboard'), 'e', Lang::T('You do not have permission to access this page')); } } diff --git a/system/autoload/Paginator.php b/system/autoload/Paginator.php index 3d8b9014..4b6dbc43 100644 --- a/system/autoload/Paginator.php +++ b/system/autoload/Paginator.php @@ -14,7 +14,7 @@ class Paginator $adjacents = "2"; $page = _get('p', 1); $page = (empty($page) ? 1 : $page); - $url = U . implode('/', $routes); + $url = getUrl(implode('/', $routes)); if (count($search) > 0) { $url .= '&' . http_build_query($search); } @@ -83,7 +83,7 @@ class Paginator { global $routes; global $_L; - $url = U . implode('/', $routes); + $url = getUrl(implode('/', $routes)); $query = urlencode($query); $adjacents = "2"; $page = (int)(empty(_get('p')) ? 1 : _get('p')); @@ -169,7 +169,7 @@ class Paginator { global $routes; global $_L; - $url = U . $routes['0'] . '/' . $routes['1'] . '/'; + $url = getUrl($routes['0'] . '/' . $routes['1'] . '/'); $adjacents = "2"; $page = (int)(!isset($routes['2']) ? 1 : $routes['2']); $pagination = ""; @@ -277,7 +277,7 @@ class Paginator { global $routes; global $_L; - $url = U . $routes['0'] . '/' . $routes['1'] . '/'; + $url = getUrl($routes['0'] . '/' . $routes['1'] . '/'); $adjacents = "2"; $page = (int)(!isset($routes['2']) ? 1 : $routes['2']); $pagination = ""; diff --git a/system/autoload/Text.php b/system/autoload/Text.php index 821e7aad..573690b7 100644 --- a/system/autoload/Text.php +++ b/system/autoload/Text.php @@ -109,4 +109,20 @@ class Text } return $result; } + + public static function url(...$data){ + global $config; + $url = implode("", $data); + if ($config['url_canonical'] != 'Yes') { + $u = str_replace('?_route=', '', U); + $pos = strpos($url, '&'); + if ($pos === false) { + return $u . $url; + } else { + return $u . substr($url, 0, $pos) . '?' . substr($url, $pos + 1); + } + } else { + return U . $url; + } + } } diff --git a/system/autoload/User.php b/system/autoload/User.php index 3db62a66..2a3e3cfe 100644 --- a/system/autoload/User.php +++ b/system/autoload/User.php @@ -206,7 +206,7 @@ class User global $config; if ($config['maintenance_mode'] == true) { if ($config['maintenance_mode_logout'] == true) { - r2(U . 'logout', 'd', ''); + r2(getUrl('logout'), 'd', ''); } else { displayMaintenanceMessage(); } @@ -226,7 +226,7 @@ class User global $config; if ($config['maintenance_mode'] == true) { if ($config['maintenance_mode_logout'] == true) { - r2(U . 'logout', 'd', ''); + r2(getUrl('logout'), 'd', ''); } else { displayMaintenanceMessage(); } diff --git a/system/boot.php b/system/boot.php index 43ac9166..c887288e 100644 --- a/system/boot.php +++ b/system/boot.php @@ -96,7 +96,7 @@ try { foreach ($menu_registered as $menu) { if ($menu['admin'] && _admin(false)) { if (count($menu['auth']) == 0 || in_array($admin['user_type'], $menu['auth'])) { - $menus[$menu['position']] .= '