Comment déterminer si l'utilisateur consulte la page d'accueil ?
From Joomla! Documentation
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
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 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';
}
?>