Joomla教程:文章页面中显示指定的模块


通常,你可以通过模块设置中的“菜单分配(Menu Assignment)”将模块分配给某些菜单项,以在它们对应的页面里显示。但有时你想将模块分配给某个单篇文章页面,而该目标页面并没有其直接对应的菜单项。下面来看两种具体的情况。

1.通过某篇文章中的链接才可以到达的目标文章页面

第一种情况就是只有通过某一篇文章的中链接才可以到达目标文章页面(目标文章页面本身并没有其直接对应的菜单项);你无法直接在模块设置中为其分配模块

这种情况下,你仍然可以通过手动为URL分配菜单项id的方式来控制在文章页面显示某些模块。例如,你有5个单篇文章页面,每一个页面中都需要显示不同的模块组合。你可以这样做:

  1. 创建一个新的菜单,命名为“hidden”,然后为你的5个页面分别创建一个菜单项,将类型设置为“Article Layout”.
    • 在所需模块的设置中的“菜单分配(Menu Assignment)”,将模块分配给这5个菜单项。
    • 不需要为“hidden”菜单创建其自身的模块,因为“hidden”菜单并不会实际显示出来。
  2. 在菜单项管理(Menu Item Manager)中,找到并记下之前创建的5个菜单项的id数字。
  3. 为5个目标页面创建链接;可以使用下面3种方式中的任意一种:
    • 手动拷贝一个已存在的文章页面的链接,格式应该为index.php?option=com_content& amp;view=article&id=xx&Itemid=yy,其中xx代表文章的id数字,yy代表其对应的菜单项的id数字。 我们需要把xx替换为目标文章页面的文章id(在文章管理中可以找到),把yy替换为之前为目标文章页面创建的菜单项的id(在“hidden”菜单的菜 单项管理中可以找到)。
    • 使用JCE editor或Linkr扩展来在编辑器中创建链接;这里仍需手动为链接添加Itemid=yy.
    • 使用SEF组件,例如sh404SEFJoomSEF等,你可以通过它们创建自定义URL。

将这些创建好的链接按照你希望的位置放入来源文章中,点击进入这些目标文章页面后,id为yy的模块就会按照我们的需求显示在id为xx的目标文章页面中了。

2.通过某模块中的链接才可以到达的目标文章页面

上面的示例是基于你对目标URL有控制权的状况。然而有时,URL是自动生成的,你无法手动修改它里面的Itemid。例如最新文章(Latest News)和热门文章(Most Popular)这两个模块中的文章链接。这种情况下你仍然可以控制在不同的文章中显示指定的模块。这里有三种可行的方法:

  1. 第一种方式最为简单直接,就是将需求模块分配给所有的菜单项,这样在所有的页面中它都会显示出来,只要你觉得这样做是可以的。
  2. 第二种方式是创建一个名为“hidden”的菜单,并为其创建一个类型为Section Layout或Category Layout的菜单项,然后将需求模块分配给该菜单项。如果我们的目标文章页面属于这个section或category,那么需求模块就会在目标文章页 面中显示出来。需要注意的是,如果你使用了面包屑(Breadcrumbs)模块,那么之前创建的"hidden"菜单中的菜单项名称会在面包屑中显示出 来。这意味着用户可以通过点击这个菜单项进入到该菜单项对应的页面中(例如一个section列表页面)。
  3. 最为精准(工作量也是最大的)的方法就是为每个目标文章页面单独创建一个菜单项。这样就可以通过需求模块的设置将该模块精准的分配给每个目标文章页面对应的菜单项,进而在目标页面中显示出来了。

« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3