帝国、PHPCMS及织梦对比:联动类别属性

在使用CMS套站时进行栏目结构规划时常遇到这样一种情况:每个栏目下想再细分一些类别,如果以栏目的形式添加,很多栏目下都会有这些重复的类别,这样一来就导致很多重复和栏目。所以需要考虑直接在字段属性类别的方式来添加,发文章时直接选择类别来给文章归

在使用CMS套站时进行栏目结构规划时常遇到这样一种情况:每个栏目下想再细分一些类别,如果以栏目的形式添加,很多栏目下都会有这些重复的类别,这样一来就导致很多重复和栏目。所以需要考虑直接在字段属性类别的方式来添加,发文章时直接选择类别来给文章归类。不知道站长朋友们实际处理过程中有没有遇到这样的问题,但落叶确实感受挺深了,在涉及医疗性质的站点时,每个疾病病种下面有多个子病种,然后子病种的文章类型又分为病因、症状、诊断、治疗、预防、科普、建议等等,每个栏目的文章基本都需要分这些类别,如果以子栏目的形式添加,50个子病种就要多添加300多个子栏目,这样不管是对网站结构还是 SEO来讲都是灾难,所以这个时候“类别”字段显得比较重要。

不同的CMS基本都有内置或者提供类别设置的功能,只是表现形式不同,设计细节不同,扩展灵活性也不同,本文中落叶拟对PHPCMS、帝国CMS及织梦CMS中的类别这点作一些细节性对比。

织梦CMS:

DEDE中没有很明确的类别功能,可以变相实现的体现方式是”自定义属性”,在自定义属性中多添加几个属性,发布文章时,勾选这些属性,然后调用时按照这个属性分类进行调用即可。

类似下图的最后一项:

帝国、PHPCMS及织梦对比:<a href="/tag/liandong_7262_1.html" target="_blank">联动</a>类别属性_跟版网

想法貌似不错,于是找DEDE添加自定义属性的地方,然而结果似乎不是那么顺利。

帝国、PHPCMS及织梦对比:<a href="/tag/liandong_7262_1.html" target="_blank">联动</a>类别属性_跟版网

一句“为了数据安全起见不允许用户增加其它类型”,那么对于普通用户,如果非要实现,那只有修改DEDE内置的属性名称来变相实现了,如把“头条” 改为“病因”,“推荐”改为“症状”,但这样的结果是失去了原有的“头条”和推荐功能。自定义文档属性结果发现是没办法自定义的。不好意思,遇上落叶这样死钻的人还真不相信你所说的安全问题,事实上增加一个自定义属性,也没有什么安全的,直接在数据库中修改吧。

DEDECMS的自定义属性记录在dede_arcatt数据表中的,直接在PHPMYADMIN中可视化插入几个自定义属性:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

这样似乎就够了,但实际,DEDECMS中文章表中调用自定义属性的字段类型采用的是set类型,那里采用了白明单,限制了允许使用的att属性,所以仍需要修改文章表dede_archives中的flag字段,按格式增加刚刚添加的三个属性的att值,即如下:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

这样,在发布文章的表单处自定义属性一栏就显示出了刚添加的一些属性,发布文章时勾选,前台调用,使用flag=”m”即可调用症状类别的文章了。

{dede:arclist row="10' titlelen='24' orderby='pubdate' flag=’m’}

[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])

{/dede:arclist}

这里需要注意的是,因为DEDE的flag标签解析后是采用like查询,上图中添加的by其实是不正确的,可以使用多字母,但是首字母不要有重复,如上图中所示的,使用flag=’b’来调用加精的文章时,by类别的文章也会被调用出来。

当然DEDECMS中也可以自定义一个选项自段来实现,通过添加“使用radio选项卡”或“Checkbox多选框”,然后在默认值处填写被选择的项目来实现亦可,只是因为这里DEDE自定义字段只能添加在副表中,调用时需要关联查询,效率会低些,一般不建议这样做。

自定义字段设置:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

内容发布表单界面显示的自定义类别字段:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

这样可以变相实现,只是在调用时,不方便把附加字段作为调用条件,需要使用DEDE的SQL标签联合查询才行,效率稍低,也不太方便。

PHPCMS:

PHPCMS模板中内置了字段类型,文章模型中默认没有开启,在系统设置->模型管理中的字段管理中开启类别字段。

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

然后在系统管理->相关设置->类别设置中添加类别:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

添加文章里即可在使用类别选项来对文章归类了:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

前台调用使用TAG标签或GET标签调用即可。如果使用TAG标签则只需要在后台模板管理处可视化选择类别类型生成TAG标签即可方便实现调用。

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

如果是GET标签,则直接在SQL语句中加下typeid=’类别ID数字’可也。

帝国CMS:

帝国CMS默认没有类别字段,不过亦可以通过自定义字段的形式添加,帝国的优点在于自定义字段可以添加在主表中,这一点非常不错,在新闻数据表模板中添加一个typeid字段:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

选择添加在主表中,然后在“管理系统模型”中修改系统模板开启,在录入项中显示该字段即可在文章发布表单中显示了:

帝国、PHPCMS及织梦对比:联动类别属性_跟版网

前台数据调用则需要使用万能标签或灵动标签中写SQL语句来调用了,条件为typeid=”病因”,条件中需要写汉字,这点不太爽。

总体分析来看,类别功能不是什么大功能,只是增加一个关联自段,方便数据分类,不同CMS中都可以变相实现,但总体来看还是PHPCMS默认设置了该字段,无论是类别自定义添加还是前台调用都方便些。从普通用户来讲,同是需要使用SQL来调用,帝国则比织梦稍方便些,因为他自定义的字段显示在主表中了。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

dedecms织梦默认的TAG标签不是很灵活。有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag=c,h),这样全站调用的时候更灵活。 全站调用TAG标签方法一般是: {dede:tag row='100' sort='new' getall='1'}a target="_blank
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。 方法一 打
我们都知道DEDECMS生成的文件夹是按天生成的,只要传了图片就会自动建立个年月日的文件,centos系统下,都是随便排序的,很难找到对应文件夹,如果要按顺序排列,要怎么操作呢? 一、文件管理器: 修改 /dede/templets/file_manage_main.html $dh = dir($inp
我们有时候需要对织梦文档的点击量进行批量维护,比如采集来的文章,点击量都为0,需要批量修改,可以用到如下方法1。 1、在数据库里运行下面的代码就可以了,文章的点击量变得随机从500到1000 UPDATE dede_archives SET click=FLOOR(500 + (RAND() * 1000))
用过dedecms的朋友都知道,织梦cms后台系统基本参数里是无法直接上传图片的,我们更换logo图只能到ftp里替换,非常的不方便,我们如果想直接在系统基本参数里上传,要怎么处理呢?在这里需要对代码进行修改,具体流程如下: 实现方法,打开/dede/templets/sy
dedecms要想调用所有子栏目是没有这个标签的,要调用只可用sql标签,reid表示子栏目,channeltype=6表示模型为商品,sortrank表示按排序升序.小的放前面 {dede:sql sql=Select * from `dede_arctype` where reid0 and channeltype=6 ORDER BY sortrank limit 15}