Выбор макроса по содержанию url

Материал из Umicms

Перейти к: навигация, поиск


Задача:
Необходимо выводить с использованием стандартного макроса, но формировать от конкретного раздела, в зависимости от страницы, на которой находится посетитель.

Решение:
Добавим макрос, который будет принимать единственное значение - режим работы. Это добавит некоторую универсальность.
Как подключать кастомные макросы Вы можете почитать в другой статье http://wiki.umisoft.ru/Подключение_кастомных_макросов_и_событий_для_модулей

Пример: Пусть наш макрос будет называться select Тогда его вызов примет вид %custom select(menu)%

 public function select($element) { 
 
    //$url = getServer('QUERY_STRING');
    $url = $_SERVER['QUERY_STRING']; 
    switch ($element)  {
 
     case 'menu':     
      if (strpos($url, 'my_page1/') && strpos($url, 'page11/page12')==false )     {
        $res = "%content menu('default', 2, ''id_страницы'')%";  
      }
      elseif (strpos($url, 'my_page2/') && strpos($url, 'page21/page22')==false )     {
        $res = "%content menu('default', 2, ''id_страницы'')%";
      }
      else     {
      $res = "%content menu('default', 2)%";
      }
      break;

Эта функция анализирует url и, если находит соответствующее совпадение, выводит меню с использованием макроса, который указан. Аналогичны образом можно выводить стили css, контент и многое другое, при этом, избегая создание новых шаблонов-дизайна.

Личные инструменты