Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

cybermax

  • *
  • 16
  • +1/-0
    • Просмотр профиля
Не получается определить активный раздел каталога, делал во так.
Добавил в _custom.php
public function is_active($page_id, $mode = 'tpl'){
  $currentPageId = cmsController::getInstance()->getCurrentElementId();
  if($currentPageId){
    static $allParentsIds = null;
    if(is_null($allParentsIds)) {
      $allParentsIds = umiHierarchy::getInstance()->getAllParents($currentPageId, true);
    }
    $page_id = (int) $page_id;
    $result = in_array($page_id, $allParentsIds) ? true : false;
  }else $result = false;
 
  switch ($mode){
    case 'tpl':
      if($result) return 'active';
      break;
 
    case 'xslt':
      if($result) return 1;
      else return 0;
      break;
  }
}

В шаблоне пытаюсь получить значение, но получаю пустую страницу на выходе.
<xsl:variable name="is_active" select="document(concat('udata://custom/is_active/', @id, '/xslt'))/udata" />

Помогите пожалуйста, в какую сторону смотреть?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
попробовал, у меня возвращает и 1 и 0 в зависимости от активности, копай в самом шаблоне, может где синтаксис выдает ошибки, режим debug включен?

*

cybermax

  • *
  • 16
  • +1/-0
    • Просмотр профиля
Спасибо, у меня дебаг выключен был(
я метод вставил за закрывающей скобкой.