Comment déterminer si l'utilisateur consulte la page d'accueil ?

From Joomla! Documentation

This page is a translated version of the page How to determine if the user is viewing the front page and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎Nederlands

Joomla 1.0 Joomla! 1.0

Dans Joomla! 1.0.x, il était possible de déterminer si l'utilisateur était en train de consulter la page d'accueil en utilisant le code ci-dessous :

<?php
if ($option == 'com_frontpage' || $option == '') {
	echo 'This is the front page';
}
?>

Joomla 1.5 Joomla! 1.5

Depuis Joomla! 1.5.x, le composant com_frontpage n'existe plus. Ainsi, il convenait de procéder de la façon suivante :

<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
	echo 'This is the front page';
}
?>

Cela fonctionne en vérifiant si l'élément de menu en cours est bien celui défini par défaut.

 Joomla 2.5 Joomla 3.x Joomla! 2.5 et 3.x

Voici quelques différences dans les versions 1.6/1.7/2.5 permettant d'éviter certaines erreurs standards strictes. Utilisez le code suivant pour un site dont l'ensemble du contenu est dans la même langue :

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
	echo 'This is the front page';
}
?>

Pour les sites multilingues, la page d'accueil dépend de la langue sélectionnée. Vous aurez alors besoin d'utiliser un code comme ceci :

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) {
	echo 'This is the front page';
}
elseif ($menu->getActive() == $menu->getDefault( 'fr-FR' )) {
	echo 'Accueil';
}
?>

Pour les sites multilingues, il pourrait également être nécessaire d'afficher un code spécifique/html pour toutes les pages d'accueil par défaut.

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
	echo 'This is the front page';
}
else {
	echo 'Accueil';
}
?>