织梦CMS让模块支持调用主站的模板

dedecms 织梦问答等模块支持arclist标签,实现随机调用其他栏目文章
就是让模块模板文件支持调用主站的模板,因为调用主站下的/templets/default/模板,也就实现了支持调用所有标签和标签属性。下面是解决方法:
不少朋友需要在DedeCms的问答系统、留言本、会员空间导航里调用系统标签,但默认是不支持系统标签调用的,需要对系统文件进行简单的修改。
第一步:打开"/include/common.func.php",该文件5.7,5.6版本默认存在,5.5的不存在自己建一个。
然后在该文件中加入一个函数,代码如下:
1
2
3
4
5
6
7
8
9
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里面加入你需要的标签和标签属性:
1
2
3
{dede:arclist titlelen= '100'   row= '15'   orderby= 'rand' }
<li><a href= "[field:arcurl/]"   title= "[field:title/]" >[field:title/]</a></li>
{/dede:arclist}

最后在问答模块首页的模板里面加入:
1
2
3
<?php
pasterTempletDiy( "default/suiji.htm" );
?>

这样就实现了真正意义的随机文章,因为ask模块是动态页所以每刷新页面文章就会变化,还可以通过修改:系统--系统基本参数--性能选项--arclist标签调用缓存的值来控制随机文章的更新频率。
这种方法还有很多扩展应用,比如让其他模块共用主站下的footer.htm,head.htm等文件。

你可能感兴趣的:(cms)