节点中“模板选项”与“分页标签”的关系

作者:动易网络 来源:本站原创 点击数: 发布时间:2008年07月17日
    最近回复论坛网友提问时注意到这么一个问题: 在动态页中分页可以正常显示,而在生成静态页后分页就不能正常显示了?为什么动态页和静态页的分页效果会显示不正常?很多人认为是系统bugs的问题,这其实是没有理解节点设置中“模板选项”和“分页标签”之间的关系。因此,在回答这个问题前,我们有必要详细介绍下节点模板与分页标签的关系,以进一步加深对这个问题的理解和处理。

    一、基本概念介绍

    我们以某一个网站栏目(节点)结构为例,如下图:

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

  从图中可以看到,“大自然”这个节点有以下几个特点:
  a、“大自然”节点下面含有多个子节点;
  b、“大自然”节点本身含有内容信息;
  c、“大自然”节点的模板选项设置了“栏目列表页模板”、“栏目首页模板”及“内容页模板”。

  介绍一:节点的模板选项

图片点击可在新窗口打开查看

  a、“栏目列表页模板”是必填项,这里的作用是:分页或不分页的方式显示“大自然”节点内的信息列表。
  b、“栏目首页模板”是可选填项,当某个节点既有子节点又有内容时,可以指定该模板用于生成一个封面页(即通常我们熟悉的频道首页,如上图中点击“大自然”或“湖泊”节点进入到的页面),但是该页面生成HTML的时候是不支持分页的。而像“森林”、“草原”、“海洋”、“冰川”这些节点下没有子节点,所以就不需要指定栏目首页模板。
  c、“内容页模板”是必填项,选择对应的内容模型和内容页模板。

  介绍二:分页

  SiteFactory™ 中分页的效果是通过在模板中加入分页标签来实现的。分页又分页栏目分页和信息分页,文中所提到的分页是栏目分页和信息分页的总称,即所有分页效果。

  介绍三:栏目模板与分页的关系

  虽然SiteFactory™ 的标签是全站解析(通用)的,但是“栏目首页模板”不支持分页效果;“栏目列表页模板”支持分页效果。(下文将会举例说明)

  上面几点概念性的介绍有助于你加深对下面案例的理解,SiteFactory™ 之所以设计为“栏目首页模板”不支持分页是为了与“栏目列表页模板”不混淆。如果对此不能理解的话,可以借助网易频道进行理解:

  网易“新闻频道——国内新闻”栏目下包含:国内头条、两岸三地、希望农村、新闻贴图四个栏目。
  网易“新闻频道——国内新闻”的栏目首页:
   (不分页)
  网易“新闻频道——国内新闻——国内头条”的栏目列表页:
   (分页)

  二、举例说明

  (例一)——
  由于SiteFactory™ 的标签是全站解析的,所以即使栏目首页不支持分页,但如果你设计的“栏目首页模板”里含有分页标签,系统依然会进行解析并在前台显示出来。那这样不是前后矛盾了?非也,我们就来看看下面这个“栏目首页模板”加入了分页标签的例子,到底会出现什么问题呢?

  首先,设置“大自然”节点的模板选项,如下图所示:

图片点击可在新窗口打开查看

  注:这里选择的“默认文章首页模板.html”是加入了分页标签的,按每页4个栏目显示“大自然”节点下的子栏目。

  其次,“生成选项”设置如下图所示,生成栏目列表页。

图片点击可在新窗口打开查看

  然后,浏览前台“大自然”栏目可以看到分页标签在“栏目首页”生效了,如下图所示:

图片点击可在新窗口打开查看

  最后,我们分析上图所示的“大自然”栏目首页的分页链接地址:

  1)当我们选择生成HTML时:
  (第一页)
  (第二页)

  通过分页地址链接的对比发现问题了吗?对,虽然分页标签在“栏目首页”解析了,但无论是第一页还是第二页都是指向同一个地址。

  2)当我们不生成HTML(动态页面)时:
  (第一页)
  (第二页)

  通过分页地址链接的对比发现,动态方式分页链接地址是正常的,但是这只是表面上看起来正常。这里必须清楚的是第一页调用的是“栏目首页模板”,而第二页调用的则是“栏目列表页模板”。当栏目首页模板和栏目列表页模板不一样的时候(通常都是不一样的),就会出现第一页与第二页显示效果不同的问题,也就是点“下一页”页面会乱跑到别的页面。

  小结一:SiteFactory™ 的“栏目首页模板”强烈不要加入分页标签,“栏目首页模板”是不支持分页效果的。

  (例二)
  看了上面的(例一)或许你会提出这样的疑问:如果我需要栏目首页实现分页效果呢?那么请继续看下面的例子 图片点击可在新窗口打开查看

  首先,设置“大自然”节点的模板选项,如下图所示:

图片点击可在新窗口打开查看

  注:不选择“栏目首页模板”。

  然后,“生成选项”设置如下图所示,生成栏目列表页。

图片点击可在新窗口打开查看

  最后,浏览前台可以看到,虽然没有设置“栏目首页模板”,但“大自然”栏目依然分页显示出了其子栏目,如下图所示:

图片点击可在新窗口打开查看

  我们分析上图所示的“大自然”栏目首页的分页链接地址:

  1)当我们选择生成HTML时:
  (第一页)
  (第二页)

  2)当我们不生成HTML(动态页)时:
  (第一页)
  (第二页)

  通过分析发现:以上所有的分页链接地址均是正常的,第一、第二页都是正确调用了栏目列表页模板。

  小结:
  1)当某一栏目下含有子栏目且本身含有信息内容时,如果需要在此栏目首页实现分页效果,那么后台该栏目的“模板选项”中不能指定“栏目首页模板”,只需设置“栏目列表页模板”;

  2)“栏目列表页模板”才能实现分页效果,“栏目首页模板”不能实现分页效果,因此在节点设置的“模板选项”中一定要根据实际需求选择模板。

  通过举例和对比,到此很多人应该清楚文章开头部分那个问题的原因了吧?现在就来回答这个问题。图片点击可在新窗口打开查看

  问:在动态页中分页可以正常显示,而在生成静态页后分页就不能正常显示了,为什么呢?

  答:这是因为在节点设置的“模板选项”中指定了含有分页标签的“栏目首页模板”的原因;为了不与栏目列表页混淆,“栏目首页模板”是不支持分页效果的。但栏目首页需要分页效果,只需要指定含有分页标签的“栏目列表页模板”。

延伸阅读(一)——
  既然“栏目首页模板”不支持分页效果,那直接使用“栏目列表页模板”就可以了,为什么还保留“栏目首页模板”呢?

  因为仅仅是使用“栏目列表页模板”的话所有栏目列表页都只能是调用同样的模板,实现相同的样式。当你想让某个含有多级子栏目和内容的栏目显示相关信息聚合时,当你想为多级子栏目或者信息制作栏目首页或者封面页面时,就应该考虑使用“栏目首页模板”了(上文中提到的网易新闻频道的例子,展示的就是 “栏目首页模板”和“栏目列表页模板”的不同作用了)。通常来说指定的“栏目首页模板”和“栏目列表页模板”应该是不一样,否则只需指定“栏目列表页模板 ”就可以了。

延伸阅读(二)——
附默认雅蓝模板方案中各模板的使用说明:

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看