阅读时间5分钟 (1060字)

使用隐藏菜单

Using Hidden Menus

您是否曾想在另一篇文章中添加链接到一篇文章,而不希望将该链接文章添加到您的网站主菜单中,但苦于无法使您喜欢的模块与文章一起显示?管理模块显示的答案在于使用隐藏菜单。(也称为不可见菜单。)

隐藏菜单

能够管理通过其他文章中的链接或通过自定义模块内容中的链接显示的文章的哪些前端模块显示,是许多客户期望的功能。使这一切工作的简单答案是创建一个不可见的菜单,其中包含一个指向文章的“单篇文章”链接的项目。这就是解锁魔法的所在。

这是一种简单的技术,它使得在一或多个模块的指定位置显示并管理它们成为可能,只需在隐藏菜单中设置一个菜单项即可,就像管理您通常的文章一样。它被称为隐藏菜单或不可见菜单,因为它被发布到一个在网站上任何地方都不会显示的模块位置。同样的技术也用于着陆页。

为什么要有隐藏的、不可见的菜单?

大多数Joomla! 2.5和3.x网站的管理员都安装并使用JCE或类似的编辑器。例如,JCE编辑器提供了通过JCE媒体框轻松添加相关内容链接的能力。

当您想在文章的文本中插入一个链接来显示另一篇文章或将文章链接添加到HTML自定义模块的内容中时,您可以使用JCE媒体框选择“文章内部链接”或“外部链接”。问题是当您点击链接在前端显示内容时,您期望看到的模块就消失了。使模块显示的解决方案是在隐藏菜单中添加一个显示文章的菜单项。

如何设置隐藏菜单

解决方案很简单,只需创建一个名为“不可见菜单”或“隐藏菜单”的额外菜单,这个菜单永远不会显示。

menu-invisible

然后在隐藏菜单中添加一个链接到相关文章的菜单项,然后使用该菜单项来管理与文章相关的模块的可见性。

那么,这是为什么能起作用呢?

当您通过菜单系统导航到一篇文章时,服务器知道您点击了哪个菜单项以及想要显示的内容,并且该菜单项指向组件(在文章的情况下是com_content),视图类型(单篇文章),文章ID以及与该视图相关的模块列表。简而言之,菜单项知道如何正确显示文章的所有答案。

当您将特定的文章作为链接的目标时,服务器从(非SEF)URL中知道您想要显示具有特定记录数的特定组件的内容,例如文章ID=123。仅基于这些信息,它知道从数据库中获取链接文章,但它不知道其上下文的其他任何信息——文章的类型、可能与它相关的其他内容以及与之相关的模块。因此,Joomla!有编程说明,当只知道文章ID时,就去搜索菜单项数据库,看看是否已经设置好了用于管理该文章ID显示的菜单项。如果找到了,就使用它,就像用户点击了菜单项而不是直接点击文章链接一样。但如果找不到菜单项,系统不知道还能做什么,这就是为什么您的模块没有显示出来的原因。

但是,我们的目的是我们不希望文章成为主菜单中的一个项目。它不应该出现在网站的任何导航中。通过在隐藏菜单中创建一个菜单项,成功搜索了具有文章ID的菜单项,因此文章与所有适当的模块一起显示,但是由于隐藏菜单不在任何渲染到网站的模块位置中,所以没有人会看到它。就是这样!

此技术还用于创建用于SEO目的和类似地不在网站主要导航菜单中显示的“着陆页”。这些页面是为显示针对使用社交媒体、其他网站或搜索引擎的链接的人设计的定向内容。

这里有一个例子

我们在一篇文章的内容中有3个链接(link1、link2;link3),这些链接指向没有与主导航中的菜单项相关联的相关文章。因此,我们在“隐藏菜单”菜单中为这些文章添加了菜单项(Link1、Link2、Link3)。

liens

通过编辑“隐藏菜单”中的菜单项“Link1、Link2、Link3”并管理该菜单项的模块可见性,为我们的三篇文章分配模块。通过设置,我们想要的模块将与内容一起显示,无论文章如何链接。在处理指向文章的链接时,Joomla!会查找是否有任何菜单项指向它所在的任何菜单,如果找到了,就使用该菜单项的设置来控制模块的显示。没有菜单项,就没有模块。

assigner-module-a-menu

为了测试这个想法,为您网站创建三个模块,并设置它们最初仅在主页上可见。通过编辑隐藏菜单中的菜单项并勾选可见性复选框,使它们对这三篇文章可见。

assigner-module-a-accueil

现在,当您在前端文章中点击“link1”时,模块将与文章一起显示,因为它们被分配到了“隐藏菜单”菜单中的“Link1、Link2、Link3”菜单项。

lien-affiche-modules

这是对Badreddine Azrar撰写的《Le Menu Invisible》一文的英文翻译和扩展,原文发表于2014年1月的《Joomla! 社区杂志》。

《Joomla! 社区杂志》上的一些文章代表了作者对特定主题的个人观点或经验,可能与 Joomla 项目官方立场不一致。

0
Joomla! CMS, Joomla! Framework, en Licenties
 

评论

已注册? 登录
尚未发表评论。成为第一个发表评论的人

通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部第三方提供的服务