Вывод страницы в карте сайте с отключением вывода в меню
Материал из 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%)%
В итоге будут выводиться необходимые пункты меню, кроме указанных в массиве. Если необходимо в макрос добавить верстку, кавычки надо экранировать обратным слэшем т.е.: \"
