經過老長一段時間的奮戰,終於六安志願者的站點用dede配置的差不多了。其實這不是我做dede的第一個站,不過這個是我比較滿意的一個站,因為中間我解決了很多問題,這是我很欣慰的。
在這個項目中,首先一點,我解決了如何在同一個后台下做兩個站點,這是我起初沒有理解的地方,可是使用頻道封面的方式建立頂級欄目,然后將該站點的頂級欄目在這里用子欄目的形式來體現,更加靈活的運用使得dede的擴展性和延伸性更好了;
其次,在站點配置中遇到一個新問題,就是默認模板文件和該欄目下的模板文件的沖突問題,導致不能在"temp/模板文件夾"中使用"{dede:include filename=''}"來實現模板文件的引入,其實可是考慮使用dede自帶的plus的模板文件夾來解決這個問題;
下面將提供解決辦法:
織夢模板include插入非模板目錄文件出現“無法在這個位置找到”錯誤的解決辦法:
include 引入一個文件,形式為:
{dede:include file='文件名稱' ismake='是否為dede板塊模板(yes/no)'/}
對文件的搜索路徑為順序為:絕對路徑、include文件夾,CMS安裝目錄,CMS主模板目錄。
其實根本不是這個樣子的,如果你要引用一個其它目錄的東西如:
{dede:include filename="/haixiait/template/default/inc_head.htm"/}
那么就會返回為空字符串,很顯然,並沒有對文件進行引用.下面經過改造就可以引用各個目錄的文件了.(很簡單,
1 else if(file_exists(DEDEROOT.$filename) ) 2 { 3 $okfile = DEDEROOT.$filename; 4 }
為修改部分)
文件目錄為:dede安裝根目錄/include/dedetag.class.php
1 //引入文件 2 function IncludeFile($filename,$ismake='no') 3 { 4 global $cfg_df_style; 5 $restr = ''; 6 if($filename=='') 7 { 8 return ''; 9 } 10 if( file_exists(DEDEROOT."/templets/".$filename) ) 11 { 12 $okfile = DEDEROOT."/templets/".$filename; 13 } 14 else if(file_exists(DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename) ) 15 { 16 $okfile = DEDEROOT.'/templets/'.$cfg_df_style.'/'.$filename; 17 } 18 else if(file_exists(DEDEROOT.$filename) ) 19 { 20 $okfile = DEDEROOT.$filename; 21 } 22 else 23 { 24 return "無法在這個位置找到: $filename"; 25 } 26 27 //編譯 28 if($ismake!="no") 29 { 30 require_once(DEDEINC."/channelunit.func.php"); 31 $dtp = new DedeTagParse(); 32 $dtp->LoadTemplet($okfile); 33 MakeOneTag($dtp,$this->refObj); 34 $restr = $dtp->GetResult(); 35 } 36 else 37 { 38 $fp = @fopen($okfile,"r"); 39 while($line=fgets($fp,1024)) $restr.=$line; 40 fclose($fp); 41 } 42 return $restr; 43 }
最后解決的問題,就是軟件下載的問題,我記得之前做的那兩個站我就沒搞軟件下載,當時我認為是和留言簿啊什么的沒什么區別,最后發現還是留言簿比較麻煩一點,軟件下載我發現只需要在原來的基礎上調用下標簽和修改下模板文件就行,沒有大的改動的。
至此,我的第一個我 比較滿意的dede小站就搞定了,對了,這里不得不提的就是css的代碼控制問題,以前做css總是沒什么規划,其實在css控制上還是有很多學問的,要加強下,多嘗試。就像我之前說的——無論你犯了多少錯,或者你進步得有多慢,你都走在了那些不曾嘗試的人的前面。