如果你在Joomla的主页上怎么测试?

时间:2009-11-18 20:28:48

标签: php joomla

我正在使用Joomla网站,我需要首页看起来与其他页面略有不同,但不足以保证使用两个主题(更新两个样式表和每次我想做一个小改动时都有两组图像。

我的想法是在模板的index.php中进行一些测试:如果我们在主页上,服务X,否则,服务Y.但是,我不完全确定如何测试它。我不能只使用URL,因为url.com/和url.com/index.php以及url.com/index.php?等等都是有效的。

有没有人知道如何做我想做的事情?就像一个$ _JOOMLA ['page']变量或类似的东西?

谢谢! --Mala

10 个答案:

答案 0 :(得分:9)

if(JRequest::getVar('view') == "frontpage" ) {
    //You are in!
}
else {
    //You are out!
}

答案 1 :(得分:7)

要确保客户端在主页上,您应该测试“当前页面(Itemid)选择作为默认菜单项”,就像这个代码一样(对于Joomla 1.6,1.7和2.5):

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

要查找Joomla 1.5的代码,请查看http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

答案 2 :(得分:5)

这对我有用,我在使用任何其他方式时遇到了麻烦

$app = JFactory::getApplication();
if ($app->getMenu()->getActive()->home) {
    $homepage=true;
}

答案 3 :(得分:3)

对于Joomla 2.5和3.x,对于使用单一语言的网站,请使用以下代码:

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

对于多语言网站,检测主页(首页)取决于当前选择的语言,因此您需要使用以下内容:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) {
    echo 'This is English homepage';
}
elseif ($menu->getActive() == $menu->getDefault( 'it-IT' )) {
    echo 'This is Italian homepage';
}
?>

对于多语言网站,您还可以使用以下代码:

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

希望它有所帮助!

答案 4 :(得分:2)

对于Joomla 1.6和1.7,它将如下:

if(JRequest::getVar('view') == "featured" ) {
    //You are in!
}
else {
    //You are out!
}

答案 5 :(得分:1)

对于Joomla .6,除了this之外别无其他:

答案 6 :(得分:1)

你也可以定义每一页:

<?php 
$active = JFactory::getApplication()->getMenu()->getActive();
?>
 <body class="<?php echo $active->alias; ?> ">

答案 7 :(得分:0)

使用这个

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

答案 8 :(得分:0)

在Joomla 3.x中仅在首页上显示一些内容您可以使用

<?php $menu = JSite::getMenu();
    if ($menu->getActive() == $menu->getDefault()) : ?>
Some code here to show only on front page
<?php endif ?>

除了首页之外,除了首页之外,还要展示一些东西!=

<?php $menu = JSite::getMenu();
    if ($menu->getActive() != $menu->getDefault()) : ?>
    Some code here to show everywhere except frontpage
<?php endif ?>

答案 9 :(得分:0)

正如R.B.已经指出的那样,检查菜单项的语言也是明智的,以防万一有多个主页&#39;因为他们在多语种网站。

<?php // Determine if we are on the homepage
$lang = JFactory::getLanguage();
$langTag = $lang ? JFactory::getLanguage()->getTag() : null;

$isHomepage = $langTag ? ($menu->getActive() == $menu->getDefault($langTag)) : ($menu->getActive() == $menu->getDefault()); ?>

然后您想要仅限主页的内容:

<?php if ($isHomepage) : ?>
     <div class="homepage-markup">

     </div>
<?php endif; ?>