dede:include filename="" 路径的问题:无法在这个位置找到路径

织梦模板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。

如果设置路径非这两种路径,就显示无法在这个位置找到这个文件:解决方式有两种:一种是在这里再添加一种判断;另外一种是根据文件的规定,写出符合文件规定的路径方式就可以解决。

参考网页:http://blog.sina.com.cn/s/blog_66a0738b0100l7lu.html




你可能感兴趣的:(DEDECMS)