以前一直用公司的一个JSP的CMS系统,用了好久,那个CMS又没经历大的更新,功能比较落后,最近有个小项目,工期不紧,于是自己换了个PHP的CMS(DEDECMS)来研究一下,脑中有点CMS的概念,所以上手DEDECMS还算比较顺利,但是遇到很多小问题,很困扰人,这个日志做些记录吧,方便以后使用。
DEDECMS功能确实比较强大,但是毕竟是个人作品,文档不是很完善,使用起来很多情况要靠自己摸索,加了些QQ的群,都是不说话的,好郁闷……
问题一:取全站点热门文章及最新文章的方法
默认模板里带的标签是这样的:
{dede:arclist row=10 orderby=pubdate titlelen=36}
<li><span class="date">[field:pubdate function="MyDate('m-d',@me)"/]</span><a href="[field:arcurl/]">[field:title/]…</a></li>
{/dede:arclist}
我想在列表页面也使用热门文章的时候就遇到一个问题,生成好HTML后,栏目页面里的热门文章只显示本栏目下。
解决方法:在标签里加上typeid='all'
typeid代表栏目ID,all这个属性我查文档的时候并没有查到,QQ群里,论坛里泡了好几天,才再一个问题贴里看到这个值,测试了一下,还真解决了问题,希望官方的文档能做的更完善一些。
问题二:修改友情链接标签的默认输出
系统标签是这样的:
{dede:flink row='24'/}
这种方式出来的效果,系统会自动根据底层模板里定义好的方式输出:<li><a>友情链接</a></li>
我要达到的效果是直接输出a,而不需要外层的Li。
解决方法:自己写标签的InnerHtml,覆盖底层模板的输出: {dede:flink row='24'}[field:link /]{/dede:flink}
经过了这个CASE,我也算是对DEDECMS模板机制有了一点了解了。
问题三:在首页调用自定义内容模型字段的值
自建的内容模型有字段:zbld,采用DEDE的arclist 无法直接调用到该字段的值;
解决方法:
{dede:arclist titlelen=30 row=1 typeid='59' channelid='17' addfields='zbld'}
<h2>
[field:zbld/]
</h2>
{/dede:arclist}在调用标签里添加channelid、addfields属性。channelid表示自定义内容模型的ID,addfields表示要添加的字段名称。
问题四:在首页调用指定栏目的相关信息
由于需要在首页里调用指定栏目的信息,研究过官方的手册,发现使用channel标签或使用channelartlist都无法获取到,在设置了typeid后情况依旧;
解决方法:使用channelartlist标签,在设置typeid的时候,后面添加一个固定参数“1”:谢谢这篇文章的作者:http://www.webjx.com/web/cms-11050.html。
{dede:channelartlist typeid='89,1'}
{dede:field.content/}
{/dede:channelartlist}
待续……