dedecms模板明明存在,还是报错:说模板不存在
各种错误的可能
1.我的模板现在是htm结尾。没有错
2.我的模板中,存在这个文件,而且动态预览的时候,都是正常的。
但为什么还是,模板文件不存在,无法解析文档!
关于我自己的,文章更新模板不存在的方法
WWWW/include/arc.archives.class.php文件
关于文章的模板不存在找到这个函数,我是把其中的_m注释掉了。不知道为什么,现在加载的都是_m的手机模板
/**
* 载入模板
*
* @access public
* @return void
*/
function LoadTemplet($m=0)
{
if($m){
$pathinfo = pathinfo($this->GetTempletFile());
// $tempfile = $pathinfo[dirname].'/'.basename($pathinfo[basename],'.htm').'_m.htm';
$tempfile = $pathinfo[dirname].'/'.basename($pathinfo[basename],'.htm').'.htm';
if(!file_exists($tempfile) || !is_file($tempfile))
{
echo "文档ID:{$this->Fields['id']} - {$this->TypeLink->TypeInfos['typename']} - {$this->Fields['title']}<br />";
// echo "模板文件不存在,无法解析文档!";
echo $this->TypeLink->TypeInfos["temparticle"]."模板文件不存在,无法解析文档!".$m;
exit();
}
$this->dtp->LoadTemplate($tempfile);
$this->TempSource = $this->dtp->SourceString;
}else{
if($this->TempSource=='')
{
$tempfile = $this->GetTempletFile();
if(!file_exists($tempfile) || !is_file($tempfile))
{
echo "文档ID:{$this->Fields['id']} - {$this->TypeLink->TypeInfos['typename']} - {$this->Fields['title']}<br />";
echo "模板文件不存在,无法解析文档!";
exit();
}
$this->dtp->LoadTemplate($tempfile);
$this->TempSource = $this->dtp->SourceString;
}
else
{
$this->dtp->LoadSource($this->TempSource);
}
}
}
关于栏目模板不存在的解决方法
关于栏目的设置,就算是封面栏目,只用到封面的模板,列表的模板如果错了。也会报错。
所以,这里的设置中,所有的模板,都要存在才行
为什么呢?因为在include\arc.listview.class.php文件中,会初始化模板,好像会统计所有的模板吧
//初始化列表模板,并统计页面总数
$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$this->TypeLink->TypeInfos['templist'];
$tempfile = str_replace("{tid}", $this->TypeID, $tempfile);
$tempfile = str_replace("{cid}", $this->ChannelUnit->ChannelInfos['nid'], $tempfile);
if ( defined('DEDEMOB') )
{
$tempfile =str_replace('.htm','.htm',$tempfile);
}
if(!file_exists($tempfile))
{
$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/list_default.htm";
if ( defined('DEDEMOB') )
{
$tempfile =str_replace('.htm','.htm',$tempfile);
}
}
if(!file_exists($tempfile)||!is_file($tempfile))
{
echo "模板文件不存在,无法解析文档!$tempfile";
exit();
}