节点中“模板选项”与“分页标签”的关系
一、基本概念介绍
我们以某一个网站栏目(节点)结构为例,如下图:
从图中可以看到,“大自然”这个节点有以下几个特点:
a、“大自然”节点下面含有多个子节点;
b、“大自然”节点本身含有内容信息;
c、“大自然”节点的模板选项设置了“栏目列表页模板”、“栏目首页模板”及“内容页模板”。
介绍一:节点的模板选项
a、“栏目列表页模板”是必填项,这里的作用是:分页或不分页的方式显示“大自然”节点内的信息列表。
b、“栏目首页模板”是可选填项,当某个节点既有子节点又有内容时,可以指定该模板用于生成一个封面页(即通常我们熟悉的频道首页,如上图中点击“大自然”或“湖泊”节点进入到的页面),但是该页面生成HTML的时候是不支持分页的。而像“森林”、“草原”、“海洋”、“冰川”这些节点下没有子节点,所以就不需要指定栏目首页模板。
c、“内容页模板”是必填项,选择对应的内容模型和内容页模板。
介绍二:分页
SiteFactory™ 中分页的效果是通过在模板中加入分页标签来实现的。分页又分页栏目分页和信息分页,文中所提到的分页是栏目分页和信息分页的总称,即所有分页效果。
介绍三:栏目模板与分页的关系
虽然SiteFactory™ 的标签是全站解析(通用)的,但是“栏目首页模板”不支持分页效果;“栏目列表页模板”支持分页效果。(下文将会举例说明)
上面几点概念性的介绍有助于你加深对下面案例的理解,SiteFactory™ 之所以设计为“栏目首页模板”不支持分页是为了与“栏目列表页模板”不混淆。如果对此不能理解的话,可以借助网易频道进行理解:
网易“新闻频道——国内新闻”栏目下包含:国内头条、两岸三地、希望农村、新闻贴图四个栏目。
网易“新闻频道——国内新闻”的栏目首页:
(不分页)
网易“新闻频道——国内新闻——国内头条”的栏目列表页:
(分页)
二、举例说明
(例一)——
由于SiteFactory™ 的标签是全站解析的,所以即使栏目首页不支持分页,但如果你设计的“栏目首页模板”里含有分页标签,系统依然会进行解析并在前台显示出来。那这样不是前后矛盾了?非也,我们就来看看下面这个“栏目首页模板”加入了分页标签的例子,到底会出现什么问题呢?
首先,设置“大自然”节点的模板选项,如下图所示:
注:这里选择的“默认文章首页模板.html”是加入了分页标签的,按每页4个栏目显示“大自然”节点下的子栏目。
其次,“生成选项”设置如下图所示,生成栏目列表页。
然后,浏览前台“大自然”栏目可以看到分页标签在“栏目首页”生效了,如下图所示:
最后,我们分析上图所示的“大自然”栏目首页的分页链接地址:
1)当我们选择生成HTML时:
(第一页)
(第二页)
通过分页地址链接的对比发现问题了吗?对,虽然分页标签在“栏目首页”解析了,但无论是第一页还是第二页都是指向同一个地址。
2)当我们不生成HTML(动态页面)时:
(第一页)
(第二页)
通过分页地址链接的对比发现,动态方式分页链接地址是正常的,但是这只是表面上看起来正常。这里必须清楚的是第一页调用的是“栏目首页模板”,而第二页调用的则是“栏目列表页模板”。当栏目首页模板和栏目列表页模板不一样的时候(通常都是不一样的),就会出现第一页与第二页显示效果不同的问题,也就是点“下一页”页面会乱跑到别的页面。
小结一:SiteFactory™ 的“栏目首页模板”强烈不要加入分页标签,“栏目首页模板”是不支持分页效果的。
(例二)
看了上面的(例一)或许你会提出这样的疑问:如果我需要栏目首页实现分页效果呢?那么请继续看下面的例子
首先,设置“大自然”节点的模板选项,如下图所示:
注:不选择“栏目首页模板”。
然后,“生成选项”设置如下图所示,生成栏目列表页。
最后,浏览前台可以看到,虽然没有设置“栏目首页模板”,但“大自然”栏目依然分页显示出了其子栏目,如下图所示:
我们分析上图所示的“大自然”栏目首页的分页链接地址:
1)当我们选择生成HTML时:
(第一页)
(第二页)
2)当我们不生成HTML(动态页)时:
(第一页)
(第二页)
通过分析发现:以上所有的分页链接地址均是正常的,第一、第二页都是正确调用了栏目列表页模板。
小结:
1)当某一栏目下含有子栏目且本身含有信息内容时,如果需要在此栏目首页实现分页效果,那么后台该栏目的“模板选项”中不能指定“栏目首页模板”,只需设置“栏目列表页模板”;
2)“栏目列表页模板”才能实现分页效果,“栏目首页模板”不能实现分页效果,因此在节点设置的“模板选项”中一定要根据实际需求选择模板。
通过举例和对比,到此很多人应该清楚文章开头部分那个问题的原因了吧?现在就来回答这个问题。
问:在动态页中分页可以正常显示,而在生成静态页后分页就不能正常显示了,为什么呢?
答:这是因为在节点设置的“模板选项”中指定了含有分页标签的“栏目首页模板”的原因;为了不与栏目列表页混淆,“栏目首页模板”是不支持分页效果的。但栏目首页需要分页效果,只需要指定含有分页标签的“栏目列表页模板”。
延伸阅读(一)——
既然“栏目首页模板”不支持分页效果,那直接使用“栏目列表页模板”就可以了,为什么还保留“栏目首页模板”呢?
因为仅仅是使用“栏目列表页模板”的话所有栏目列表页都只能是调用同样的模板,实现相同的样式。当你想让某个含有多级子栏目和内容的栏目显示相关信息聚合时,当你想为多级子栏目或者信息制作栏目首页或者封面页面时,就应该考虑使用“栏目首页模板”了(上文中提到的网易新闻频道的例子,展示的就是 “栏目首页模板”和“栏目列表页模板”的不同作用了)。通常来说指定的“栏目首页模板”和“栏目列表页模板”应该是不一样,否则只需指定“栏目列表页模板 ”就可以了。
延伸阅读(二)——
附默认雅蓝模板方案中各模板的使用说明: