织梦DedeCMS根据栏目不同调用不同的模板的实现方法

很多站长朋友使用织梦DedeCMS建站,在建站过程中可能会有各种各样的要求,最近就有人需要实现在不同的栏目调用不同的底部或者头部等公共区域的模板,那么应该怎么实现呢?

我们可以看到织梦默认的模板调用公共头部或者底部模板是用的include标签,虽然我们可以给每个栏目指定不同的模板然后用include标签引用不同的头部或者底部模板,

但是如果有很多个栏目,而且栏目模板又一样,这样去一个一个修改栏目模板就会显得比较麻烦,改那么多模板真是不容易,现在就给大家提供一个更简单一点的方法实现这个功能:

首先找到在include文件夹下面找到并打开extend.func.php文件,在最下面添加如下代码:
 

/**
 *  加载自定义模板
 *
 * @access    public
 * @param     string  $path  模板文件名
 */
function pasterTempletDiy($path)
{
	require_once(DEDEINC."/arc.partview.class.php");
	global $cfg_basedir,$cfg_templets_dir,$cfg_df_style;
	$tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$cfg_df_style.'/'.$path.'.htm';
	$dtp = new PartView();
	$dtp->SetTemplet($tmpfile);
	return $dtp->GetResult();
}

然后在栏目列表模板需要引用公共模板的地方加入如下代码就可以调用了:
{dede:field name=typeid function=pasterTempletDiy(@me)/}

这样就可以通过栏目的ID来调用该栏目的头部或者底部模板了,比如某个栏目的ID是12,那么我们在模板文件夹下面添加一个名为12.htm的模板文件,就可以直接在该栏目显示了。大家可以试一下!