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

mewtwo

  • Новичок
  • 3
  • 0 / 0
У каждого пункта меню есть свой псевдоним (alias). В файле helper.php я могу вывести его в качестве имени стиля для ссылок
Код
switch ($tmp->browserNav)
   {
default:
case 0:
// _top
   $data = '<a class="'.$item->alias.'" href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
   break;

в 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 затем лучше распознать:
Код
<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 последнего пункта меню
« Последнее редактирование: 09.07.2010, 21:52:57 от mewtwo »
*

mewtwo

  • Новичок
  • 3
  • 0 / 0
В результате вышеперечисленных действий выводился в качестве стиля для <ul> псевдоним последнего пункта меню.
Может кто подскажет регулярное выражение, чтобы достать из строки название стиля menu1
Код
<a class="menu1" href="http://localhost/"><![CDATA[Главная страница]]></a>
« Последнее редактирование: 09.07.2010, 14:11:07 от mewtwo »
*

mewtwo

  • Новичок
  • 3
  • 0 / 0
Изучил регулярные выражения, оказалось все просто:
	
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>';
	
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление и выведение на нормальный вид верхнее меню

Автор ekaterina_rb

Ответов: 0
Просмотров: 1356
Последний ответ 24.04.2013, 10:35:39
от ekaterina_rb
mod_mainmenu добавить пару спанов

Автор NexWeb

Ответов: 1
Просмотров: 1486
Последний ответ 20.03.2013, 22:18:12
от NexWeb
Убрать ссылку с current в стандартном mod_mainmenu

Автор goga_pgasovav

Ответов: 1
Просмотров: 1381
Последний ответ 27.12.2012, 15:51:40
от Fedor Vlasenko
Автоматический вывод списка материалов в меню

Автор vladvz

Ответов: 5
Просмотров: 2462
Последний ответ 20.12.2012, 17:01:32
от tigra-uki
Как редактировать CSS главного меню ? (mod_mainmenu)

Автор Oggy

Ответов: 0
Просмотров: 1718
Последний ответ 31.05.2012, 13:00:03
от Oggy