Difference between revisions of "How to determine if the user is viewing the front page"

From Joomla! Documentation

(Marked this version for translation)
 
Line 32: Line 32:
 
<translate>== {{JVer/multi|2.5,3.x}} Joomla! 2.5 and 3.x series == <!--T:4--></translate>
 
<translate>== {{JVer/multi|2.5,3.x}} Joomla! 2.5 and 3.x series == <!--T:4--></translate>
  
T<translate><!--T:5-->
+
<translate><!--T:5-->
here are some differences in 1.6/1.7/2.5 to avoid Strict Standards errors.  Use the following code for a site where all content is in the same language:</translate>
+
There are some differences in 1.6/1.7/2.5 to avoid Strict Standards errors.  Use the following code for a site where all content is in the same language:</translate>
  
 
<source lang="php">
 
<source lang="php">

Latest revision as of 04:42, 23 July 2015

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

Joomla 1.0 Joomla! 1.0

In Joomla! 1.0.x it was possible to determine if the user was viewing the front page by using code like this:

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

Joomla 1.5 Joomla! 1.5[edit]

But in Joomla! 1.5.x the com_frontpage component is no longer present. This is how to achieve the same result in Joomla! 1.5.x

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

This works by checking to see if the current active menu item is the default one.

 Joomla 2.5 Joomla 3.x Joomla! 2.5 and 3.x series[edit]

There are some differences in 1.6/1.7/2.5 to avoid Strict Standards errors. Use the following code for a site where all content is in the same language:

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

For multi-lingual sites the front page is dependent on the currently selected language, so you will need to use code like this:

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

For multi-lingual sites, it could also be necessary to display a specific code/html for all Default Home pages.

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