У каждого пункта меню есть свой псевдоним (alias). В файле helper.php я могу вывести его в качестве имени стиля для ссылок Код (PHP): switch ($tmp->browserNav) { default: case 0: // _top $data = '<a class="'.$item->alias.'" href="'.$tmp->url.'">'.$image.$tmp->name.'</a>'; break; в html получается следующее: Код (html): <ul class="menu"> <li><a class="menu1" href="index.php">Главная страница</a></li> <li><a class="menu2" href="#">Пункт 1</a> <ul> <li><a class="2010-07-04-18-12-52" href="#">П/пункт 1</a></li> <li><a class="2010-07-04-18-12-53" href="#">П/пункт 2</a></li> </ul> </li> <li><a class="menu3" href="#">Пункт 2</a> <ul> <li><a class="2010-07-04-18-12-54" href="#">П/пункт 1</a></li> <li><a class="2010-07-04-18-12-55" href="#">П/пункт 2</a></li> </ul> </li> </ul> как сделать так, чтобы выводился alias для тега <ul> подпункта меню и плюс буква (в моем случае я добавляю s), чтобы в css затем лучше распознать: Код (html): <ul class="menu"> <li><a class="menu1" href="index.php">Главная страница</a></li> <li><a class="menu2" href="#">Пункт 1</a> <ul class="smenu2"> <li><a class="2010-07-04-18-12-52" href="#">П/пункт 1</a></li> <li><a class="2010-07-04-18-12-53" href="#">П/пункт 2</a></li> </ul> <li><a class="menu3" href="#">Пункт 2</a> <ul class="smenu3"> <li><a class="2010-07-04-18-12-54" href="#">П/пункт 1</a></li> <li><a class="2010-07-04-18-12-55" href="#">П/пункт 2</a></li> </ul> </li> </li> </ul> в самом коде пробовал по аналогии с функцией function _getItemData(&$params, $item) передавать параметр $item в функцию function _getLevelXML($depth), но в итоге в названии стиля выводился alias последнего пункта меню.
В результате вышеперечисленных действий выводился в качестве стиля для <ul> псевдоним последнего пункта меню. Может кто подскажет регулярное выражение, чтобы достать из строки название стиля menu1 Код (html): <a class="menu1" href="http://localhost/"><![CDATA[Главная страница]]></a> И тогда у меня получится, что я задумал.
Изучил регулярные выражения, оказалось все просто Код (PHP): function _getLevelXML($depth) { $depth++; $link = $this->_current->link; preg_match("/<a class\=\"(.*)\" href/i", $link, $matches); // Start the item $rel = (!empty($this->_current->mid)) ? ' rel="'.$this->_current->mid.'"' : ''; $this->_buffer .= '<li access="'.$this->_current->access.'" level="'.$depth.'" id="'.$this->_current->id.'"'.$rel.'>'; // Append item data $this->_buffer .= $this->_current->link; // Recurse through item's children if they exist while ($this->_current->hasChildren()) { $this->_buffer .= '<ul class="s'.$matches[1].'">'; foreach ($this->_current->getChildren() as $child) { $this->_current = & $child; $this->_getLevelXML($depth); } $this->_buffer .= '</ul>'; } // Finish the item $this->_buffer .= '</li>'; }