Верх страницы
Логотип Telegram
@Злой_Полицейский — авторский канал вашего покорного слуги в Telegram, где я пишу заметки о веб-разработке, программировании, PHP, инструментах и WordPress.
Обложка к записи Joomla: определение главной страницы
Время для прочтения: 0 мин. 0 сек.

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 'Это не главная страница';
}

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

Суровый русский разработчик. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все.

Ведет блог о разработке, дайджест в телеграмме и в ВК.

Комментарии
Подписаться
Уведомить о
guest

14 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Денис
9 лет назад

Щас редко что то вешается только на главную страницу. Сейчас все блоки сквозные.

Максим
Максим
9 лет назад

Спасибо. про метатеги напиши. например как автогенерировать их из текста, если нет прописанных тегов для статьи

mraak
mraak
7 лет назад

if($_SERVER[‘REQUEST_URI’]==’/’ || $_SERVER[‘REQUEST_URI’]==’/index.php’){ echo «Это полюбому главная страница»; }

mihdan
7 лет назад
Ответить на  mraak

Кто вам сказал, что joomla может быть только в корне проекта? Может же быть в каталоге, например, site.ru/joomla/

mraak
mraak
7 лет назад
Ответить на  mihdan

А что вам мешает добавить соответстующие строки в данную конструкцию?

mihdan
7 лет назад
Ответить на  mraak

Смысл ставить костыли, когда в API все уже предусмотрено?

mraak
mraak
7 лет назад
Ответить на  mihdan

Смысл напрягать API, тратя дополнительные ресурсы и память, ради простейшей операции?

mihdan
7 лет назад
Ответить на  mraak

У нас с вами разные взгляды на жизнь, делайте как вам удобно, никто не запрещает, я всегда следую API

mraak
mraak
7 лет назад
Ответить на  mihdan

Вы совершенно правы, я стараюсь никогда не следовать чужому API, именно из за взглядов на жизнь. Особенно, я категорически отказываюсь следовать API Joomla, ибо считаю что лишний раз пинать этого «слона» с монстроподобной архитектурой из роутеров, контроллеров, валидаторов и т.д. ради определения главной страницы это как минимум не профессионально. Когда у вас будет 500+ проектов на жумле под присмотром, вы то-же начнёте обращать внимание на подобные мелочи. Особенно когда они все на одном VDS. Что вы знаете о этих методах JRequest::getVar или JUri::base() ? Сколько происходит лишних обращений к БД, сколько происходит лишних операций i/o на диск? Сколько выделяется дополнительно памяти для свойств этих классов? Вот например про суперглобальную переменную $_SERVER всё известно, она и так уже существует в любом случае…

Vlad_Is_Lav
5 лет назад

На мультиязычном сайте код не работает.

Uliana Zeleniuk
3 лет назад

На мультиязічном сайте не один из вариантов не работает корректно

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

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, фильмы и сериалы