【问题标题】:Cannot detect Frontpage properly in Joomla 2.5 templates无法在 Joomla 2.5 模板中正确检测 Frontpage
【发布时间】:2012-06-02 15:54:00
【问题描述】:

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

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

这在您位于主页(或单击主页菜单)时有效,但我在主页中有一个滑块,并且我在滑块中链接到不在应用程序任何菜单项中的文章。当我加载这篇文章时,上面的代码会像我在首页一样返回。我猜如果我不点击任何菜单项, $menu->getActive() 不会改变。

有什么建议吗? 提前致谢。

【问题讨论】:

  • 您点击滑块的页面成为当前(主页)页面的子页面,因为它不在菜单中。

标签: joomla-template joomla2.5 frontpage


【解决方案1】:

我希望对目前的答案进行补充并提供一些说明。

为了检测菜单选择,需要将页面分配给菜单项。如果这是一个隐藏菜单,那么指向名为“我的页面”的此类页面的链接将是:

/index.php/my-page - “my-page”是此项的菜单标题别名

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

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

隐藏菜单中的“我的文章”菜单项必须与主菜单中的相同菜单项具有不同的菜单别名,因此指向“我的页面”的新链接如下所示:

/index.php/my-articles2/my-page

要创建隐藏菜单,只需创建另一个菜单。是否为它创建模块无关紧要,但如果创建了,则不应为该模块分配任何位置。

【讨论】:

    【解决方案2】:

    你可以做一件事来解决这个问题。为滑块中链接的所有文章链接创建一个隐藏菜单。通过创建隐藏菜单,链接将被初始化,并且 $menu->getActive() 将对所有链接起作用。希望它对你有用。

    【讨论】:

    • 您不必为每篇文章创建一个隐藏的菜单项,而只需为文章的父类别创建一个隐藏菜单项。以这种方式创建的隐藏菜单项更少。
    • 我在我建立的每个网站上都这样做。总有一些页面需要漂亮的 URL,而不需要在菜单中。只需创建一个名为 Admin links 或类似的菜单。不要将其分配给任何模块。添加任何您需要的 itemID 或干净的 URL。
    • 有效!我创建了一个没有链接任何模块的菜单。我选择我想使用的文章类别,仅此而已。谢谢!
    • 如果它有效,那么您可以接受答案以使其对所有用户有用..:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2013-07-23
    • 2012-06-30
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多