Невозможно правильно определить Frontpage в шаблонах Joomla 2.5

Я видел в документации Joomla способ определить, находитесь ли вы на главной странице при создании шаблона в Joomla 2.5. Это код:

<?php 
$app = JFactory::getApplication(); 
$menu = $app->getMenu(); 
if ($menu->getActive() == $menu->getDefault()) { 
    echo 'This is the front page'; 
} 
?>

Это работает, когда вы находитесь на домашней странице (или нажимаете на главное меню), но у меня есть слайдер на домашней странице, и я ссылаюсь на слайдер на статью, которой нет ни в одном пункте меню в приложении. Когда я загружаю эту статью, приведенный выше код возвращается, как если бы я был на главной странице. Я предполагаю, что если я не нажму ни на один пункт меню, $menu->getActive() не изменится.

Любое предложение? Заранее спасибо.


person jgonza73    schedule 28.05.2012    source источник
comment
Страница, которую вы нажимаете на ползунок, становится дочерней текущей (домашней) страницей, поскольку она не находится в меню.   -  person Shaz    schedule 28.05.2012


Ответы (2)


Вы можете сделать одну вещь, чтобы решить эту проблему. Создайте скрытое меню из всех ссылок на статьи, на которые есть ссылки в ползунках. При создании скрытого меню ссылка будет инициализирована, и $menu->getActive() будет работать для всех ссылок. Надеюсь, это сработает для вас.

person Pramod Kumar Sharma    schedule 28.05.2012
comment
Вам не нужно делать скрытый пункт меню для каждой статьи, только для родительской категории статей. Меньше скрытых пунктов меню для создания таким образом. - person Brent Friar; 28.05.2012
comment
Я делаю это на каждом сайте, который я создаю. Всегда есть страницы, для которых вам нужны хорошие URL-адреса, которые не обязательно должны быть в меню. Просто создайте меню под названием «Ссылки администратора» или что-то в этом роде. Не назначайте его никаким модулям. Добавьте все, что вам нужно, itemID или чистый URL. - person Brent Friar; 30.05.2012
comment
Оно работает! Я создал меню без какого-либо связанного модуля. Я выбираю категорию статьи, которую хочу использовать, и все. Спасибо! - person jgonza73; 30.05.2012
comment
Если это работает, вы можете принять ответ, чтобы сделать его полезным для всех пользователей..:) - person Pramod Kumar Sharma; 30.05.2012

Я хочу добавить к настоящему ответу и дать некоторые пояснения.

Чтобы выбор меню был обнаружен, страница должна быть назначена пункту меню. Если это скрытое меню, то ссылка на такую ​​страницу под названием «Моя страница» будет выглядеть так:

/index.php/my-page — «my-page» — это псевдоним заголовка меню для этого элемента.

Однако если нужно отобразить правильную иерархию в хлебных крошках для той же страницы, то иерархию меню необходимо воспроизвести в скрытом меню.

Например, если Моя страница находится под пунктом главного меню Мои статьи, то в скрытое меню следует добавить пункт «Мои статьи» типа: Псевдоним пункта меню, который находится в подменю Системы поля типа меню. Пункт «Моя страница» должен быть подменю «Мои статьи».

Пункт меню «Мои статьи» в скрытом меню должен иметь псевдоним меню, отличный от того же псевдонима в главном меню, поэтому новая ссылка на «Мою страницу» будет выглядеть так:

/index.php/my-articles2/моя-страница

Чтобы создать скрытое меню, нужно просто создать другое меню. Неважно, создается для него модуль или нет, но если он это делает, то просто не следует присваивать этому модулю какую-либо позицию.

person Lumis    schedule 10.06.2013