Очень часто, при разработке сайта на Джумле, дизайн главной страницы сайта отличается от внутренних страницах (пожалуй, почти всегда) и нам (разработчикам) надо показывать какие-то информационные блоки только на главной странице, при этом, не затронув все остальные. Безусловно, это можно сделать с помощью модулей, привязав их только к главной странице и соответственно только на ней и показывать их. Но что если такой вариант нам не подходит? В таком случае, мы можем воспользоваться условными конструкциями в теме, которые помогут показать определенный контент, только на главной странице сайта на Джумле.

Следует отметить, что эти условные операторы будут отличаться для разных версий Joomla.

Joomla 1.0

В Joomla! 1.0.x возможно определить главную страницу следующим кодом:

[php]

Этот блок виден только на главной странице.


[/php]

Joomla 1.5

Но в Joomla! 1.5.x компонент com_frontpage уже отсутствует, поэтому тот же результат получаеться с помощью следующего кода:

[php]
getActive() == $menu->getDefault()) :
?>

Этот блок виден только на главной странице.


[/php]

Этот код проверяет если текущий пункт меню является пунктом по умолчанию (то есть пунктом для главной страницы сайта на джумле).

Joomla 1.6, 1.7 and 2.5

Для версий джумлы 1.6/1.7/2.5 есть некоторые отличия, поэтому для них, в случае одноязычного сайта, следует использовать следующий код:

[php]
getMenu();
if ($menu->getActive() == $menu->getDefault()) :
?>

Этот блок виден только на главной странице.


[/php]

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

[php]
getMenu();
if ($menu->getActive() == $menu->getDefault( ‘en-GB’ )) :
?>

Этот блок виден только на главной странице.

getActive() == $menu->getDefault( ‘fr-FR’ )) :
?>

Этот блок виден только на главной странице.


[/php]

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

[php]
getMenu();
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())):
?>

Этот блок виден только на главной странице.


[/php]

На основе материалов с http://docs.joomla.org