织梦模板DEDECMS
首先看代码:文件目录为:
dede安装根目录/include/dedetag.class.php
/** * 引入文件 * * @access public * @param string $filename 文件名 * @param string $ismake 是否需要编译 * @return string */ function IncludeFile($filename, $ismake='no') { global $cfg_df_style; $restr = ''; if($filename=='') { return ''; } if( file_exists(DEDEROOT."/templets/".$filename) ) //默认的根目录为DEDEROOT."/templets/" { $okfile = DEDEROOT."/templets/".$filename; } else if(file_exists(DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename) ) //默认根目录为default下的路径即:DEDEROOT."/templets/default/" { $okfile = DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename; } else { return "无法在这个位置找到: $filename"; } //编译 if($ismake!="no") { require_once(DEDEINC."/channelunit.func.php"); $dtp = new DedeTagParse(); $dtp->LoadTemplet($okfile); MakeOneTag($dtp,$this->refObj); $restr = $dtp->GetResult(); } else { $fp = @fopen($okfile,"r"); while($line=fgets($fp,1024)) $restr.=$line; fclose($fp); } return $restr; } }
由以上代码可以得知:dede:include 判断两种路径:一种是以templets/下的路径;一种是系统默认模板的路径default。
如果设置路径非这两种路径,就显示无法在这个位置找到这个文件:解决方式有两种:一种是在这里再添加一种判断;另外一种是根据文件的规定,写出符合文件规定的路径方式就可以解决。