网站中发布的文章除了需要按时间、栏目分类、类别调用外,往往需要根据编辑的推荐进行不同的调用,那么CMS自然少不了推荐位功能。一般推荐位的设计都有首页头条、首页幻灯焦点、首页推荐、栏目页推荐、列表页推荐、内容页推荐等,基本可以满足站长朋友们基本的重点文章突出显示调用,但如果网站栏目分的多些,整站架构大些,可能需要更多的自定义推荐位来实现个性化调用,如一个栏目下可能需要自定义设置,栏目焦点图、栏目大头条,栏目小头条,甚至某些特定相关内容的手动推荐等。
本文中落叶就PHPCMS、帝国CMS及织梦CMS的推荐位处理的一些细节及扩展性作一一些分析。
织梦CMS
DEDECMS中推荐位体现在自定义文档属性,内置有8个文档属性,其中6个可以算上是推荐全属性,有图无图组合起来,基本可以实现一些常见的推荐功能。如果想实现一些自定义推荐位那貌似除了像此前落叶写的类别属性分析的文章中改数据库(在dede_attr数据表中手动插入几个自定义属性,然后修改dede_achives表中的flag字段,增加相应的属性)或者自定义一个字段(添加自定义radio字段或者select字段),没有更好的办法了。
调用方式直接使用arclist标签中指定flag即可,如:
{dede:arclist row="10' titlelen='24' orderby='pubdate' flag='h'}
[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/>
{/dede:arclist}
PHPCMS
PHPCMS中内置了8个推荐位,包含有首页推荐、首页焦点、首页头条、列表页推荐、内容页推荐、列表页小头条、列表页焦点图、栏目列表页推荐等,相对比较丰富些。
同时在系统设置->相关设置里给出了推荐位管理和添加的功能,并支持对推荐位进行权限设置,把不同的推荐权限分配给不同的角色。
PHPCMS中推荐位的调用实际为SQL联合查询,模板管理处的内置了一些调用推荐位内容的TAG标签,编辑标签可见实际为对 phpcms_content和phpcms_content_position的联接查询,效率似乎会低些,不过在后台可视化生成TAG标签,只需要选择推荐位,即可生成调用标签。如果希望使用GET标签来调用,则可复制TAG标签中的SQL语句,改下推荐位的ID即可实现调用。
帝国CMS
帝国CMS中大力宣称实现了九级头条和九级推荐,确实对初级用户而言,九级头和九级推荐,再加上相互组合,推荐功能已经很够用了,不过,作为开发者,我在想,也只是多增加了几个ID值,手动添加九个,为什么不直接开放给用户,让用户自己添加呢?用户添加时,还可以给推荐位自定义名称,像这样一级、二级推荐了也没法直观知道推荐到哪类页面去了。
帝国CMS中推荐和头条的调用,仍需要使用万能标签或灵动标签中添加附加字段条件来或SQL语句来实现调用,firsttitle=级别ID 来调用推荐, isgood=级别ID来调用推荐,如:
[e:loop={1,1,12,1,"firsttitle=1'}]
<a href="<?=$bqsr[titleurl]?>"><img src="<?=$bqr[titlepic]?>" border="0" alt=""/></a>
[/e:loop]
总体而言,帝国的省心,适合新手,细致够用,调用方面在标签生成向导中没有内置,需要了解字段信息后手动添加附加条件调用,DEDECMS中直接 flag调用,基本够用,PHPCMS中则显得专业些,推荐位自由设置,调用也可后台生成,并且实现了推荐位权限控制,不足之处是推荐位是多表联合查询,如果是动态页面,效率会低。