Верх страницы
Обложка к записи 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 'Это не главная страница';
}

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

14 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Денис
12 лет назад

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

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

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

mraak
mraak
10 лет назад

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

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

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

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

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

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

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

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

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

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

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

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

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

Vlad_Is_Lav
8 лет назад

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

Uliana Zeleniuk
6 лет назад

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

Предыдущая запись

Давайте дружить
в Telegram

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