本文主要探讨了Dedecms中自定义模型(独立模型)的首页、列表页以及内容页的调用方法。在后台创建自定义模型(独立模型)并添加自定义字段的过程相对简单,但在实际操作中有两点需要特别注意:
一.
如果某个字段需要在前台列表页显示,则必须在前台参数中勾选“使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,但是启用此选项将使列表查询变慢,如无必要请不要选择)”。
二.
独立模型的ID一定要设置为负数,否则在列表页无法正常调用数据。这可以视为Dedecms的一个小Bug。最初我计划通过修改list标签来解决这个问题,但后来发现,只要将独立模型的ID设置为负数即可实现正常显示。
完成独立模型和字段的创建后,网站调用的具体方法如下:
(1)首页调用自定义模型(独立模型):
对于独立模型的调用,请使用arclistsg独立单表模型调用标签,而非arclist文档列表标签。网上大部分教程针对的是已有模型添加的自定义字段,而非新建的独立模型,因此使用arclist标签无法调用独立模型。
{dede:arclistsg typeid='8' row='10' addfields='name,sex,tel' channelid='-101' }
[field:title/] 姓名:[field:name/] | 性别:[field:sex/] | 电话:[field:tel/]
{/dede:arclistsg}
要获取自定义字段的内容,必须满足以下两个条件:
1.
指定channelid属性,例如这里的channelid='-101'
2.
指定要获取的字段,例如addfields='字段1,字段2'
(2)列表页调用自定义模型(独立模型):
{dede:list pagesize='10' addfields='name,sex,tel' channelid='-101' }
[field:title/] 姓名:[field:name/] | 性别:[field:sex/] | 电话:[field:tel/]
{/dede:list}
如果该栏目有内容,但列表页未能显示出来,那么问题很可能出在独立模型的ID未设置为负数。
(3)内容页调用自定义模型的自定义字段数据(独立模型):
直接在需要调用的地方写上{dede:field.name/},其中name替换为你需要调用的字段名称。
通过以上方法,您可以轻松实现Dedecms中自定义模型(独立模型)的首页、列表页及内容页的数据调用。