[[Wayfinder? &startId=`0` &level=`1` &outerTpl=`menuTable` &rowTpl=`menuTd` &hereTpl=`menuActive` &activeParentRowTpl=`menuActive`]]
[[Wayfinder? &startId=`21` &level=`2` &outerTpl=`leftMenuUl` &rowTpl=`leftMenuLi` &hereTpl=`leftMenuActive`]]
А кто сказал, что нужно править сниппет? Просто делая собственные шаблоны, надо следовать правилам данного сниппета.
В моем случае использование стандартных шаблонов не представляется возможным.
Неужели нет более простого решения, чем правка сниппета?
'bgColor' => isset($bgColor) ? $bgColor: FALSE
$id_temp = $modx->getParent($modx->documentIdentifier); if ($phArray[8] == $id_temp['id']) { $phArray[12] = 'style=\'background-color:#000000;vertical-align:middle\''; }
$phArray = array($useSub,$useClass,$classNames,$resource['link'],$resource['title'],$resource['linktext'],$useId,$resource['link_attributes'],$resource['id'],$resource['introtext'],$resource['description'],$numChildren,'');
var $placeHolders = array( 'rowLevel' => array('[+wf.wrapper+]','[+wf.classes+]','[+wf.classnames+]','[+wf.link+]','[+wf.title+]','[+wf.linktext+]','[+wf.id+]','[+wf.attributes+]','[+wf.docid+]','[+wf.introtext+]','[+wf.description+]','[+wf.subitemcount+]','[+wf.bgColor+]'), 'wrapperLevel' => array('[+wf.wrapper+]','[+wf.classes+]','[+wf.classnames+]'), 'tvs' => array(), );
Если кто-то подумает, что ему это может пригодиться, то тому надо еще подумать. Всего-то и надо было в нужном месте шаблона поставить [+wf.classes+] и задать при вызове параметр &hereClass. А в более сложных случаях можно создать свой шаблон activeParentRowTpl, но менять код сниппета в любом случае вряд ли нужно.
Подправил сниппет. Может кому пригодится..
Я был бы рад прописать стили в &hereClass и подобных параметрах, однако в моем случае меню требует создания своих шаблонов для корректного отображения, при этом параметр &activeParentRowTpl в моей ситуации не работает. Это вынудило меня прибегнуть к изменению кода сниппета, которое не дает никаких последствий относительно работы стандартных вызовов.
Quote from: LightSight at Nov 11, 2009, 10:42 PMЕсли кто-то подумает, что ему это может пригодиться, то тому надо еще подумать. Всего-то и надо было в нужном месте шаблона поставить [+wf.classes+] и задать при вызове параметр &hereClass. А в более сложных случаях можно создать свой шаблон activeParentRowTpl, но менять код сниппета в любом случае вряд ли нужно.
Подправил сниппет. Может кому пригодится..
} elseif ($resource['isfolder'] && $this->_templates['activeParentRowTpl'] && ($resource['level'] < $this->_config['level'] || $this->_config['level'] == 0) && $this->isHere($resource['id'])) {
} elseif ($resource['isfolder'] && $this->_templates['activeParentRowTpl'] && $resource['id'] != $modx->documentObject['id'] && $this->isHere($resource['id'])) {
А это точно баг? Если рассматривать с точки зрения меню (а не сайта), если нет вложенных документов (а их нет, так как ограничен уровень вложенности), то шаблон для папок не следует использовать. А для решения проблем активности вложенных документов, не отображающихся в меню, должно хватать &hereClass. Так что, как мне кажется, это было сделано специально.
Это старый баг Wayfinder