Не используйте в коде, никаких прямых ссылок:
Пример неправильного варианта:
<a href="/">Главная страница</a>
А правильно будет так:
<a href="<?= \skeeks\cms\helpers\UrlHelper::home(); ?>">Главная страница</a>
Если у проекта, document root в настройках web server стоит по умолчанию, то главная страница сайта будет http://demo.ru/frontend/web (в базовом варианте)
И как раз этот момент UrlHelper сможет отследить.
SkeekS CMS предоставляет удобный \skeeks\cms\helpers\UrlHelper для работы с URL
Данный объект добавляет ряд удобных, часто используемых методов.
Как это работает?
Примеры:
- ссылка на главную страницу
<?php use \skeeks\cms\helpers\UrlHelper; UrlHelper::home();
- ссылка на контроллер controller модуля module действие action
<?php use \skeeks\cms\helpers\UrlHelper; UrlHelper::construct(["/module/controller/action"])->createUrl();
- ссылка на контроллер controller модуля module действие action с дополнительными параметрами
<?php use \skeeks\cms\helpers\UrlHelper; $url = UrlHelper::construct(["/module/controller/action"]); $url->param1 = "value1"; $url->param2 = "value2"; $url->merge([ "param3" => "value3" ]); $url ->set("param4", "value4") ->set("param5", "valu5"); print_r((string) $url); die; //Будет напечатано: /module/controller/action?param1=value1¶m2=value2¶m3=value3¶m4=value4¶m5=valu5
- Системные опции. Так же, SkeekS CMS предоставляет ряд системных опций. Для упрощения работы. Например, если мы хотим отправить пользователя на какое либо действие, и сообщить url возврата, можно сделать так.
<?php $url = UrlHelper::construct(["/module/controller/action"]); $url->setRef("/backUrl/"); print_r((string) $url); //echo: /module/controller/action?_sx%5Bref%5D=%2FbackUrl%2F $url->setRef(\Yii::$app->request->getUrl()); //Установить в реф параметр текущий адрес //или проще так $url->setCurrentRef();
- Вытащить служебные параметры из запроса.
<?php $url = UrlHelper::getCurrent(); //Из объекта \Yii::$app->request собирается объект UrlHelper $url->getSystem(); //получение массива служебных параметров $url->getSystem("ref", "значение по умолчанию, если нет параметра ref"); //проучение одного служебного параметра $url->getRef() //Функция заготовка
- Адрес на действие системы администрирования
<?php UrlHelper::construct(["/module/controller/action"])->enableAdmin();