2012-05-28 34 views
3

我在Joomla文档中看到了如何在Joomla 2.5中创建模板时检测您是否在Frontpage中的方法。这是代码:在Joomla 2.5模板中无法正确检测Frontpage

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

这个当你在主页(或单击主菜单上)的作品,但我在主页上的一个滑块,我在滑块链接到一篇文章是不是应用程序中的任何菜单项。当我加载这篇文章时,上面的代码会返回,因为我在frontpage上。我猜如果我不点击任何菜单项,$ menu-> getActive()不会改变。

有什么建议吗? 在此先感谢。

+1

您在滑块上单击的页面由于不在菜单中而成为当前(主页)页面的子项。 – Shaz

回答

2

你可以做一件事来解决这个问题。创建一个隐藏的菜单链接在滑块链接的所有文章。通过创建隐藏菜单的链接将被初始化和$ menu-> getActive()将适用于所有的链接..希望它适用于你。

+1

您不必为每篇文章制作隐藏的菜单项目,仅限于文章的父类别。减少隐藏的菜单项以创建这种方式。 –

+0

你有没有试过...? –

+0

我在构建的每个网站上都会这样做。总是有些页面需要漂亮的URL,因此不需要在菜单中。只需创建一个名为Admin链接或类似的菜单。不要将其分配给任何模块。添加任何你需要的itemID或干净的URL。 –

0

我想补充一下目前的答案并提供一些说明。

为了检测菜单选择,需要将页面分配给菜单项。如果这是一个隐藏的菜单比链接进入页面调用我的页面是:

/index.php/my-page - “我的页面”是这个项目

菜单标题别名

但是,如果想要在同一页面上显示面包屑中的正确层次结构,则必须在隐藏菜单中复制菜单层次结构。

例如,如果“我的页面”位于“我的文章”主菜单项下,则应在隐藏菜单中添加菜单类型字段的“系统”子菜单中的“我的文章” 。 “我的页面”项目应该是“我的文章”的子菜单项。

在隐藏菜单中的“我的文章”菜单项,必须具有比在主菜单的同一个不同的菜单别名因此新的链接到我的网页看起来像:

/index.php/我的文章2 /我的页面

要创建隐藏菜单,只需创建另一个菜单。无论是否为它创建一个模块都没有关系,但是如果有人做了,那么就不应该为该模块分配任何位置。