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

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!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пункт меню

Автор s120367

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

Автор Amakeeva

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

Автор selimoff

Ответов: 27
Просмотров: 3419
Последний ответ 02.01.2018, 15:24:44
от logan-19
как сделать пункт меню не кликабельным?

Автор qweqweqwe

Ответов: 13
Просмотров: 6273
Последний ответ 07.09.2017, 01:45:49
от forzi
Сдвинуть пункты меню в левое положение

Автор wectra

Ответов: 6
Просмотров: 619
Последний ответ 12.07.2017, 21:09:01
от wectra