2012-08-24记一个自己做的比较不错的dede小站
经过老长一段时间的奋战,终于六安志愿者的站点用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控制上还是有很多学问的,要加强下,多尝试。就像我之前说的——无论你犯了多少错,或者你进步得有多慢,你都走在了那些不曾尝试的人的前面。