Couch 有一个名为 pages 的强大标签,可用于列出属于模板的所有页面。
例如-
<cms:pages masterpage='blog.php'>
<!-- 此可克隆页面的所有变量都可以在此处调用出来 -->
<cms:show k_page_title />
</cms:pages>
- 上面给出的片段将获取从 blog.php 模板克隆的所有页面。
masterpage 参数代表模板的名称。如果省略此参数,则将使用当前模板的名称(即放置此代码段的模板)。
此标记会遍历每个提取的网页,并将与该网页关联的所有数据作为变量提供。这些变量与通过其 URL(即在其页面视图中)离散访问页面时可用的变量完全相同。
Pages 标记支持许多参数,这些参数可用于微调获取的实际页面。
有关完整列表,请参阅参数部分。
列表视图中的列表页面(主页视图、文件夹视图和存档视图)
如上一章所示,对于可克隆模板,Couch 将某些 URL 视为用于列出从正在访问的模板中克隆出来的页面的 URL。
例如:
http:// www.mysite.com/blog/_
- 被视为主视图,并且应在此视图中显示从_blog.php克隆的所有页面的列表。
http:// www.mysite.com/blog/hobbies/_
- 被视为文件夹视图,并且应在此视图中显示从_blog.php克隆出的所有属于“爱好”子文件夹的页面的列表。
http:// www.mysite.com/blog/2010/05/_
- 被视为存档视图,并且应在此视图中显示从 _blog.php 中克隆出的 2010 年 <> 月发布的所有页面的列表。
当使用上述 URL 访问模板时,Couch 会识别视图并设置某些变量,您可以使用这些变量来列出特定视图预期的页面。
请参见:视图中可用的变量。
最终取决于您是否选择以预期的方式列出页面。
处理主视图
k_is_home 变量可用于识别此视图,然后 pages 标记可用于列出从正在访问的模板克隆的所有页面。
<cms:if k_is_home >
<cms:pages>
<!-- 此可克隆页面的所有变量都可以在此处调用出来 -->
</cms:pages>
</cms:if>
处理文件夹视图
k_is_folder变量可用于识别此视图。然后,Couch 在此视图中提供的 k_folder_name 变量可以用作 pages 标签的参数,以列出属于该文件夹的页面 -
<cms:if k_is_folder >
<cms:pages folder=k_folder_name include_subfolders='1' >
<!-- 此可克隆页面的所有变量都可以在此处调用出来 -->
</cms:pages>
</cms:if>
处理存档视图
k_is_archive可用于识别此视图。在此视图中,Couch 提供了表示存档周期边界的 k_archive_date 和 k_next_archive_date 变量。然后,这两个变量可以用作 pages 标签的参数,以列出属于该时间段的页面 -
<cms:if k_is_archive >
<cms:pages start_on=k_archive_date stop_before=k_next_archive_date >
<!-- 属于此存档期的每个页面的所有变量都可以在这里获得 -->
</cms:pages>
</cms:if>
处理所有列表视图的统一方式
如果页面及其内容的显示方式在视图之间不同,则可以单独处理这三个列表视图。但是,如果列表的显示方式没有区别,则以下是同时处理所有三个列表视图的首选方法:
<cms:if k_is_list >
<cms:pages folder=k_folder_name include_subfolders='1' start_on=k_archive_date stop_before=k_next_archive_date >
<!-- 属于此存档期的每个页面的所有变量都可以在这里获得 -->
</cms:pages>
</cms:if>