10
Okay... So I thought about it a little more and here's some code that will work - most of the time. Just place this code at the top of your theme (or include it) and then you can reference the <{$ishome}> smarty variable to figure out if you're on the home page.
<{php}>
global $xoopsConfig;
$xbase = basename(XOOPS_URL);
$myloc = $_SERVER['PHP_SELF'];
$xdir = strtolower(DIRECTORY_SEPARATOR . $xbase);
if ($xdir != DIRECTORY_SEPARATOR) {
$pattern = "'/".$xbase."/'";
$myloc = preg_replace($pattern,'',$myloc);
}
$startloc= (!empty($xoopsConfig ['startpage'])) ? 'modules'.DIRECTORY_SEPARATOR.$xoopsConfig['startpage'].DIRECTORY_SEPARATOR.'index.php' : 'index.php' ;
if ( ($myloc == $startloc) && (empty($_SERVER['argv'])) ) {
$this->assign('ishome',true);
}else{
$this->assign('ishome',false);
}
<{/php}>
The code at the beginning, while strange, checks to see if XOOPS is installed in a subdirectory off the site's root. So this will work even if XOOPS is installed in
http://yoursite.com/xoops instead of in
http://yoursite.comThere's an instance where if you post variables to the module's index page then it will still tell you it's a home page, even though technically it's not the "home" page. The code in the bug report that nachenko referenced above suffers from the same limitation.
EDIT:Fixed DIRECTORY_SEPARATOR for both WIN and *nix - again