Cómo determinar si el usuario está viendo la página principal

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

En Joomla! 1.0.x era posible determinar si el usuario estaba viendo la primera página mediante el uso de un código como este:

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

Joomla 1.5 Joomla! 1.5

Pero en Joomla! 1.5.x el componente com_frontpage no está presente. Esta es la forma de lograr el mismo resultado en Joomla! 1.5.x

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

Esto funciona mediante la comprobación para ver si el elemento del menú activo actual es el predeterminado.

 Joomla 2.5 Joomla 3.x series Joomla! 2.5 and 3.x

Hay algunas diferencias en 1.6/1.7/2.5 para evitar errores Strict Standards. Utiliza el siguiente código para un sitio donde todo el contenido está en el mismo idioma:

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

Para sitios multi-idioma la página principal depende del idioma seleccionado, por lo que tendrás que utilizar un código como este:

<?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';
}
?>

Para sitios multi-idioma, también podría ser necesario mostrar un código/html específico a todos en la página de Inicio predeterminada.

<?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';
}
?>