我在Joomla文档中看到了在Joomla 2.5中创建模板时检测您是否在Frontpage中的方法。这是代码:
<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
echo 'This is the front page';
}
?>
当你在主页(或点击主菜单)时,这是有效的,但我在主页中有一个滑块,我在滑块中链接到一个文章,该文章不在应用程序的任何菜单项中。当我加载这篇文章时,上面的代码返回我在frontpage。我想如果我没有点击任何菜单项,$ menu-&gt; getActive()不会改变。
有什么建议吗? 提前谢谢。
答案 0 :(得分:2)
你可以做一件事来解决这个问题。创建一个隐藏的菜单,其中包含在滑块中链接的所有文章链接。通过创建隐藏菜单,链接将被初始化,$ menu-&gt; getActive()将适用于所有链接。希望它适用于您。< / p>
答案 1 :(得分:0)
我希望补充目前的答案,并提供一些澄清。
为了检测菜单选择,需要将页面分配给菜单项。如果这是一个隐藏的菜单,那么这个名为My Page的页面的链接将是:
/index.php/my-page - “my-page”是此商品的菜单标题别名
但是,如果想要在同一页面的面包屑中显示正确的层次结构,则必须在隐藏菜单中复制菜单层次结构。
例如,如果“我的页面”位于“我的文章”主菜单项下,则在隐藏菜单中,您应添加类型为“菜单项别名”的“我的文章”项目,该项目位于菜单类型字段的“系统”子菜单中。 “我的页面”项应该是“我的文章”的子菜单项。
隐藏菜单中的“我的文章”菜单项必须具有与主菜单中相同的菜单别名,因此“我的页面”的新链接将如下所示:
<强> /index.php/my-articles2/my-page 强>
要创建隐藏菜单,只需创建另一个菜单即可。无论是否为其创建模块都无关紧要,但如果有人创建模块,那么就不应该为该模块分配任何位置。