无法在这个位置找到: {dede:include filename=

温馨提示:DedeCMS用户请及时前往织梦官网处理官方版权事宜。

织梦模板include插入非模板目录文件出现“无法在这个位置找到”错误的解决办法

以下是dede V55_UTF8

查dede include标签手册

(3) include 引入一个文件,形式为:
{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}
对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录

其实根本不是这个样子的,如果你要引用一个其它目录的东西如:
{dede:include filename="/haixiait/template/default/inc_head.htm"/}

那么就会返回为空字符串,很显然,并没有对文件进行引用.下面经过改造就可以引用各个目录的文件了.(很简单,下面加粗蓝色字体为修改部分)

文件目录为:dede安装根目录/include/dedetag.class.php

//引入文件
 function IncludeFile($filename,$ismake='no')
 {
  global $cfg_df_style;
  $restr = '';
  if($filename=='')
  {
   return '';
  }
  if( file_exists(DEDEROOT."/templets/".$filename) )
  {
   $okfile = DEDEROOT."/templets/".$filename;
  }
  else if(file_exists(DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename) )
  {
   $okfile = DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename;
  }
  else if(file_exists(DEDEROOT.$filename) )
  {
   $okfile = DEDEROOT.$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;
 }

本文属原创,转载请注明原文:http://www.zhimatong.com/jiaocheng/276.html

为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。

内容有用

相关阅读
关键词:

    联系
    顾问

    在线
    客服
    购物车
    账号登录

    没有账号?立即注册

    忘记密码

    登录即同意用户协议没有账号? 立即注册
    账号注册
    我已阅读并同意用户协议
    立即注册
    注册即同意用户协议已有账号? 立即登录
    找回密码

    操作步骤:邮箱验证->设置新密码

    注册即同意用户协议已有账号? 立即登录