2012-05-28 4 views
3

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

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

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

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

+1

Страница, которую вы нажимаете на ползунок, становится дочерним элементом текущей (домашней) страницы, поскольку она не находится в меню. – Shaz

ответ

2

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

+1

Вам не нужно делать скрытый пункт меню для каждой статьи, только для родительской категории статей. Меньше скрытых элементов меню, чтобы создать этот путь. –

+0

Вы пробовали это ... ???? –

+0

Я делаю это на каждом сайте, который я создаю. Всегда есть страницы, для которых вам нужны хорошие URL-адреса, для которых не обязательно находиться в меню. Просто создайте меню под названием «Ссылки администратора» или что-то в этом роде. Не назначайте его никаким модулям. Добавьте все, что вам нужно, чтобы указать идентификатор элемента или чистый URL. –

0

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

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

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

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

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

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

/index.php/ my-articles2/my-page

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