在许多CMS中,有一个头条效果。。今天我来做一个头条效果的
教程。希望大家通过这
个教程,可以更加深刻的理解表,表与表之间,表与字段之间,以及动态标签的
设计方法
。
一、建立模型字段
我们看了无名竹的《主表与从表》
http://bbs.zoomla.cn/showtopic-4830.aspx的关系这一教程,会明白文章内容模型有两个
表,一个是commonmodel,另一个是
系统默认文章模型表名为ZL_C_Article。在文章模型中,
有许多系统级别为系统的字段,这些字段是
自动建好的。存放在commonmodel表中,而我们
要建一个头条的字段。
方法如下:点击系统配置——内容模型管理——文章模型,点击字段
列表,点击添加字
段,字段名设为topline,其他设置如图。我用的是单选项,其他字段类型没测试过。这里
必须明确的是,这个字段被建在了ZL_C_Article中。
二、设计动态标签
点击系统配置——标签管理——添加动态标签,写好名称和分类。我取名为:调用头
条文章
主表选为commonmodel,查询字段选择以下字段:
从表选为ZL_C_Article,查询字段,选择以下字段:
约束字段,我的理解就是两个表的关联的意思。设置如下:leftjoin itemid=id
itemid是相应表的记录ID。ID的数值与itemid在COMMONMODEL表中的数值是一样的。所
以他们可以关联。
查询字段: CreateTime,GeneralID,ItemID,NodeID,Title
ID,topline
添加查询参数:如图
查询条件:由于头条文章可能是在任何一个级别的节点上,所以查询首先加上一个包
含当前节点和子节点的查询语句:nodeid in(select nodeid from zl_node
where
parentid=@nodeid or
nodeid=@nodeid or parentid in (select nodeid from
zl_node where
parentid=@nodeid) or parentid in (select nodeid from zl_node
where parentid in (select nodeid from zl_node where
parentid=@nodeid))
) and status=99 其次再加个and topline=1
文章模型就是一个表来理解。一个二维表,二维表中有很多的栏目,我们就查询
当前栏目节点及子栏节点topline=1这个条件的数据。。。。
完整的查询条件就是nodeid in(select nodeid from zl_node
where
parentid=@nodeid or
nodeid=@nodeid or parentid in (select nodeid from zl_node where
parentid=@nodeid) or parentid in (select nodeid from zl_node
where parentid in (select nodeid from zl_node where
parentid=@nodeid))
) and status=99 and topline=1
查询出来以后,还有一个排序的问题,所以我们在字段排序上选为按CreateTime 降序
排序。这样的作用是第一条始终是最新的一条头条数据。
数据数目:加个参数 @shownum
标签内容:加上<a href="[ERR:GetInfoUrl内容ID参数必须是数字])/}">[ERR:(CutText
)不可识别的扩展函数标签],@titellang,)/}</a>(这个标签内容的写法可以观看无名竹标签的设
计思路这一教程)
保存。。。。。
三、插入
模板。
找到你所需要插入头条的盒子。找到<调用头条文章>这个标签。调用条数为1,标题长
度为20.
在模板的最上方插入数据字段<节点栏目信息数据源标签>,将调用<调用头条文章>标签中的
nodeid的默认值改为节点栏目信息源标签中的{SField FD="NodeID"/}标签。。
保存模板
四、测试标签
打开所在栏目节点的页面