Joomla: определение главной страницы

Чтобы в Joomla вывести какие-либо данные только на главной странице сайта (например, рекламу Sape), надо эту главную как-то определить программно. Порывшись на просторах интернета, я нашел такой кусок кода:

$menu = JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
    echo 'Главная страница';
} else { 
    echo 'Это не главная страница';
}

Этот код функционирует, но с ошибками. Если несколько пунктов меню ссылаются на главную, то, соответственно, работать не будет. Так что этот код использовать не рекомендуется!

Правильным является такой подход:

if(JRequest::getVar('view') == "frontpage" ) {
    echo 'Главная страница';
}
else {
    echo 'Это не главная страница';
}

Если у вас главная страница — это, допустим, список материалов или список товаров, тогда попробуйте так (в 2.5 работает точно):

if (JUri::base() === JUri::current()) {
    echo 'Главная страница';
} else {
    echo 'Это не главная страница';
}

Источник: https://www.kobzarev.com/programming/joomla-get-frontpage/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: