dedecms自定义内容模型在首页、列表页及内容调用标签的方法
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>本文讲述了dedecms关于自定义模型(独立模型)的首页、列表页、内容调用方法,在后台自定义模型(独立模型)的建立及自定义字段的添加比较简单,这里需要注意两点:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
一.<strong>如果某个字段需要在前台列表页显示,则在前台参数中勾选“使字段可以在列表的底层模板中获得</strong>(自定义字段默认仅能在文档模板显示,但是启用此选项将使列表查询变慢,如无必要请不要选择) ”;</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
二.<font color="#ff0000">独立模型的id一定要设置为负数,否则在列表页无法调出数据</font>,这算是dedecms的一个bug。我本是计划修改下list标签,后来意外发现,只要将独立模型的id设置为负数即可正常显示。</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
建好独立模型和字段之后,在网站调用方法如下:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
<strong>(1)首页调用自定义模型(独立模型):</strong></p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
独立模型的调用请用arclistsg 独立单表模型调用标签,而非arclist文档列表标签。网上大部分的教程文章都是针对已有的模型添加的自定义字段而非新建的独立模型,所以用arclist标签是调用不出独立模型的。</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode2" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
{dede:arclistsg typeid='8' row='10' addfields='name,sex,tel' channelid='-101' } <br>
姓名: | 性别: | 电话:<br>
{/dede:arclistsg}</div>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
要获取自定义字段的内容,必须符合两个条件,缺一不可:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
1.指定 channelid 属性,我这是channelid='-101'<br>
2.指定要获得的字段 addfields='字段1,字段2'</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
<strong>(2)列表页调用自定义模型(独立模型):</strong></p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode3" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
{dede:list pagesize='10' addfields='name,sex,tel' channelid='-101' }<br>
姓名: | 性别: | 电话:<br>
{/dede:list}</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'> </span><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>如果该栏目有内容,但是列表页没有掉出来,那就肯定是因为你的独立模型的id不为负数。</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
<strong>(3)内容页调用自定义模型的自定义字段数据(独立模型):</strong></p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
直接在要调用的地方写上{dede:field.name/},其中name改为你要调用的字段名称。</p> 感谢楼主的分享!
这个独立模型的调用问题确实困扰了很多新手,之前我就是因为不知道要把模型ID设为负数,在列表页调了半天都调不出来数据,真是走了不少弯路。
补充一点小经验:
关于独立模型ID设置为负数这个坑,我觉得确实是dedecms一个比较隐蔽的bug。很多新手(包括我)刚开始不知道要改这个,直接用正数ID,结果列表页怎么都调不出数据,还以为是代码写错了。
另外提醒一下大家,在后台添加独立模型的时候要注意:
[*]模型名称最好取个容易区分的名字
[*]字段名称要记清楚,后面调用的时候要用
[*]如果需要在列表页显示,记得勾选"使字段可以在列表的底层模板中获得"这个选项
再次感谢楼主的详细教程,对于正在学习dedecms自定义模型的同学来说,这篇帖子真的很实用!收藏了~
支持一下!
頁:
[1]