在使用DedeCMS构建网站时,数据调用是核心功能之一。通常情况下,我们可以利用 {dede:arclist/} 标签或 {dede:list/} 标签来实现数据的调用。
这些标签各有特点:前者灵活但无法分页,后者支持分页却只能调用当前栏目下的数据。为了解决这一局限性,DedeCMS 提供了自由列表功能,能够完美地结合两者的优点。

自由列表是一种独特的数据调用方式,与 arclist 等标签不同的是,它支持分页功能。这意味着我们可以通过指定模板,按照自定义规则生成不同顺序的列表,从而实现文档的统一化管理。

        
[field:imglink/] [field:title/]
[field:info/]……

此外,自由列表可以独立编译,不会与其他模板混杂在一起,因此不会影响系统生成 HTML 和访问速度。接下来,我们将详细介绍如何使用 DedeCMS 的自由列表功能。

1. 首先,点击“核心 - 频道模型 - 自由列表管理”,然后在右侧点击“增加列表”。
列表HTML存放目录应设置为 {cmspath}/freelist/,即根目录下的 freelist 文件夹。建议将 /freelist/ 删除,直接存放在根目录中。
不要勾选“不使用目录默认主页”,否则更新后系统不会自动复制列表第一页作为首页。
命名规则可改为 {listdir}/index_{page}.html,这样生成的页面将是 index_1.html、index_2.html 等。
列表模板保持默认值 {style}/list_free.htm 即可,但需要确保模板目录下存在 list_free.htm 文件。

2. 在第二步中,选择你需要的选项并完成设置。关键在于样式部分,这里需要根据你的模板需求进行调整。以下是一个示例:

        {dede:freelist/}
    

保存后,在模板目录下的 list_free.htm 文件中加入以下代码以调用样式:

        {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="1"/}
    

你可以在此基础上添加其他元素,例如分隔线等。以下是完整的代码示例:

        
{dede:freelist/}
——分隔线 —————————-
    {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="1"/}

3. 设置完成后,点击“更新”按钮跳转到“更新自由列表HTML”页面,并点击“开始生成HTML”按钮即可完成更新。

4. 如果发现一些小问题,如“不使用目录默认主页”被勾选,可以打开 dede\\\\templets \\\\freelist_add.htm 和 dede\\\\templets \\\\freelist_edit.htm 文件,分别找到 113 行和 89 行,将 value="1" 改为 value="0",以避免此问题。

5. 最后,如果文章列表中的缩略图尺寸过小,可以打开 include\\\\arc.freelist.class.php 文件,将 421 和 422 行中的 80 改为你想要的大小(如 120),保存后重新生成列表即可。