織夢多語言站點,{dede:include filename=''/}引入問題


織夢模板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://blog.csdn.net/zhxh0376/article/details/8268222

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM