Вывод страницы в карте сайте с отключением вывода в меню

Материал из Umicms

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

Система построена так, что чтобы страница попала в карту сайта, в ее настройках должна стоять галка: Показывать в меню. Может возникнуть ситуацию, когда данная страница не должна попасть в меню вместе с другими страницами, находящимися на том же уровне вложенности, но попала в карту сайта. Есть вариант исключить некоторые страницы используя кастомный макрос. Используем кастомный макрос, который пропишем в ~classes/modules/custom.php, после слов: //TODO: Write your own macroses here

public function ifmenu($id){
if($path = umiHierarchy::getInstance()->getPathById($id)){
$name = umiHierarchy::getInstance()->getElement($id)->getName();
$ifs = array(213, 214, 215, 216);
if (in_array($id, $ifs)) {
    return "";
}
return "<a href=".$path." umi:element-id=".$id."umi:field-name=\"name\">".$name."</a>";
}
return "";}

в массиве $ifs, указываем через запятую те id страниц, которые не надо выводить в меню. В шаблоне макроса content menu, в блоке menu_line_level1, вместо того что присутствует ставим такой макрос: %custom ifmenu(%id%)%

В итоге будут выводиться необходимые пункты меню, кроме указанных в массиве. Если необходимо в макрос добавить верстку, кавычки надо экранировать обратным слэшем т.е.: \"

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