dedecms织梦问答等模块支持arclist标签,实现随机调用其他栏目文章
就是让模块模板文件支持调用主站的模板,因为调用主站下的/templets/default/模板,也就实现了支持调用所有标签和标签属性。下面是解决方法:不少朋友需要在DedeCms的问答系统、留言本、会员空间导航里调用系统标签,但默认是不支持系统标签调用的,需要对系统文件进行简单的修改。
第一步:打开"/include/common.func.php",该文件5.7,5.6版本默认存在,5.5的不存在自己建一个。
然后在该文件中加入一个函数,代码如下:
function pasterTempletDiy($path)
{
require_once(DEDEINC."/arc.partview.class.php");
global $cfg_basedir,$cfg_templets_dir;
$tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path;//模版文件的路径
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
}
加上上面的函数之后,也就可以调用主站下的/templets/default/所有模板文件,比如要在问答模块的主页调用主站的随机文章,你可以在主站模板/templets/default/下新建一个suiji.htm文件,然后在suiji.htm里面加入你需要的标签和标签属性:
{dede:arclist titlelen='100' row='15' orderby='rand'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}
最后在问答模块首页的模板里面加入:
<?php
pasterTempletDiy("default/suiji.htm");
?>
这样就实现了真正意义的随机文章,因为ask模块是动态页所以每刷新页面文章就会变化,还可以通过修改:系统--系统基本参数--性能选项--arclist标签调用缓存的值来控制随机文章的更新频率。
这种方法还有很多扩展应用,比如让其他模块共用主站下的footer.htm,head.htm等文件。
那片海工作室:http://www.hnmnh.cn http://www.hainanmr.com