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

Tamplier

  • Новичок
  • 5
  • 0 / 0
Где в Joomla хранится номер текущего уровня в меню - в какой переменной?
Задача состоит в том чтобы отображать некий модуль в зависиости от уровня текущего пункта в меню.
Я использую компонент Advanced Module Manager http://extensions.joomla.org/extensions/10307 и в нем есть опция отображения в зависимости от PHP выражения.
Так вот в поле сравнения этой опции нужно вписать что-то вроде
return ($MenuLevel > 1 && $MenuLevel < 5);
где $MenuLevel -  текущий уровень в меню. Приведенный пример будет отображать модуль только в тех пунктах меню которые находятся во 2-4 уровнях этого меню.
Теперь собственно вопрос: Что вписать вместо $MenuLevel? Какая переменная хранит текущий уровень текущего меню?
« Последнее редактирование: 05.12.2010, 22:06:33 от Tamplier »
*

Tamplier

  • Новичок
  • 5
  • 0 / 0
Неужели никто не знает? :( Подскажите хотя-бы в каком направлении копать.
*

DSergeev™

  • Захожу иногда
  • 64
  • 1 / 0
  • Не возжелай себе рейтинга другого блоггера
отключаем SEF и смотрим на урл

/index.php?option=com_content&view=section&layout=blog&id=2&Itemid=4

Панель администратора Joomla -> Все меню -> Главное меню -> Самая правая колонка под названием Itemid

для меню отличных от главного, делать по аналогии
*

Tamplier

  • Новичок
  • 5
  • 0 / 0
Спасибо DSergeev™. Но это немного не то, что требовалось.
Я обратился напрямую к разработчику Advanced Module Manager. И вот что он мне ответил:
Цитировать
Hmm, I think this in the php field could do the trick. I know, a little complex:
Код
$showonlevel = '2,3';

$getMenuParent = create_function( '$id',
 '$db =& JFactory::getDBO();
 $query = "SELECT parent FROM #__menu WHERE id = ".(int) $id." LIMIT 1";
 $db->setQuery( $query );
 return $db->loadResult();
');
$level = 0;
$menuid = JRequest::getInt( 'Itemid' );
while ( $menuid ) {
 $level++;
 $menuid = $getMenuParent( $menuid );
}
return ( in_array( $level, explode( ',', $showonlevel ) ) );
You can set the first variable to what you want. level 1 would be the top level. level 2 would be a sub level, level 3 a sub-sublevel, etc.
So in above code, the module would show on level 2 and 3 (sub and sub-sub menu items).
Для тех кто использует Advanced Module Manager, такой финт ушами будет интересен!  yes!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает привязка пункта меню

Автор gashek

Ответов: 0
Просмотров: 151
Последний ответ 05.02.2019, 13:09:10
от gashek
Как сделать закрепленное меню?

Автор Alex50

Ответов: 0
Просмотров: 170
Последний ответ 02.12.2018, 13:59:32
от Alex50
Пункт меню

Автор s120367

Ответов: 0
Просмотров: 373
Последний ответ 03.06.2018, 13:02:55
от s120367
Большое меню Joomla

Автор Amakeeva

Ответов: 1
Просмотров: 507
Последний ответ 22.01.2018, 13:17:45
от effrit
Как можно отображать имя пользователя в название меню?

Автор selimoff

Ответов: 27
Просмотров: 3870
Последний ответ 02.01.2018, 15:24:44
от logan-19