Шаблон Joomla - есть на домашней странице - PullRequest
0 голосов
/ 01 июня 2018

Я хочу создать шаблон joomla 3.x, который отображает другой интерфейс на домашней странице, чем на всех страницах oder.

Это прекрасно работает со следующим кодом:

$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
$isHomePage = $menu->getActive() == $menu->getDefault($lang->getTag());

Когда я нажимаю на элемент меню, $ isHomePage имеет значение «false», и я могу показать другой макет.

Но когда я открываю статью из списка избранных статей на моей домашней странице, элемент менювсе еще домашняя страница, но пользователь видит статью.

Как получить информацию, если пользователь действительно находится на главной странице?

1 Ответ

0 голосов
/ 01 июня 2018

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

Есть несколько альтернатив, которые я могу предложить -

1) Проверка URL-адреса - Проверьте, равен ли текущий URL-адрес URL-адресу страницы сайта..

$uri = JUri::getInstance(); 
$currentUrl = trim($uri->toString(),'/');
$homeUrl = trim(JUri::root(),'/');
$isHomePage = $currentUrl == $homeUrl;

2) Проверьте параметр домашней страницы с параметрами внутренних страниц.Например, если ваша домашняя страница содержит статью и имеет идентификатор X, проверьте параметры запроса option и id param до com_content и id == X.

Надеюсь, это может быть полезно.

...