在网站建设领域,Dedecms 系统因其强大功能和易用性,深受广大用户喜爱。而其中,“include”这一功能更是备受关注。Dedecms include究竟是什么?它有什么作用?如何正确使用?今天,我们就来聊聊这个热门话题。
一、Dedecms include是什么?
我们要明确什么是Dedecms include。简单来说,它是一种服务器端包含文件的功能,允许我们在一个PHP文件中嵌入另一个PHP文件的内容。这样,我们就可以在多个页面中复用相同的内容,提高开发效率。
二、Dedecms include的作用
1. 提高代码复用性:通过include,我们可以将一些重复的代码块封装成独立的文件,然后在需要的地方调用,从而减少代码冗余。
2. 增强页面性能:使用include可以减少服务器响应时间,因为服务器只需编译一次include文件。
3. 便于维护:当需要修改某个功能时,只需修改include文件即可,无需逐个修改涉及到的页面。
三、Dedecms include的常见用法
以下是一些Dedecms include的常见用法:
1. 调用公共头部文件:将网站公共头部(如导航栏、logo等)封装成一个include文件,然后在每个页面中调用。
“`php
include_once ‘header.php’;
>
“`
2. 调用公共尾部文件:将网站公共尾部(如版权信息、联系方式等)封装成一个include文件,然后在每个页面中调用。
“`php
include_once ‘footer.php’;
>
“`
3. 调用模板文件:将页面主体内容封装成一个include文件,然后在每个页面中调用。
“`php
include_once ‘template.php’;
>
“`
4. 调用插件:将插件功能封装成一个include文件,然后在需要的地方调用。
“`php
include_once ‘plugin.php’;
>
“`
四、Dedecms include的注意事项
1. 避免include无限循环:在编写include文件时,要确保不会出现include自身的情况,否则会导致程序无法正常运行。
2. 避免文件路径错误:在使用include时,要确保文件路径正确,否则会导致找不到文件。
3. 注意文件权限:include的文件需要有可读权限,否则会导致无法正常加载。
4. 避免过度使用:虽然include可以提高开发效率,但过度使用也会导致代码难以维护。因此,在使用include时,要适度。
五、总结
Dedecms include作为一种强大的服务器端包含文件功能,在网站开发中有着广泛的应用。通过了解其作用、用法和注意事项,我们可以更好地利用这个功能,提高开发效率,提升网站性能。希望本文能帮助大家更好地掌握Dedecms include的使用方法。
| 序号 | 包含文件内容 | 调用方式 |
|---|---|---|
| 1 | 公共头部 | include_once’header.php’; |
| 2 | 公共尾部 | include_once’footer.php’; |
| 3 | 页面主体 | include_once’template.php’; |
| 4 | 插件功能 | include_once’plugin.php’; |
dedecms5.7伪静态怎么设置
dede5.7伪静态设置方法。
dede5.7伪静态设置七步法:
第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;
注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静
态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载
Rewrite组件,然后配置httpd.ini文件。
第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:
将所有文档设置为“仅动态浏览”:
update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”:
update dede_arctype set isdefault=-1
第三步、列表页、文章页伪静态修改
打开/include/helpers/channelunit.helper.php。
(1)查找:
//动态文章
if($cfg_rewrite=='Y')
{
return$GLOBALS[“cfg_plus_dir”].”/view-“.$aid.'-1.html';
}
替换为
//动态文章
if($cfg_rewrite=='Y')
{
return”/DedeCMS/DedeCMS5.7-“.$aid.'-1.html';
}
意思是:将默认的/plus/view-1-1.html文章链接格式改为/DedeCMS/DedeCMS5.7-1-1.html。
(2)查找:
//动态
$reurl=$GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;
替换为
//动态
$reurl=”/category/list-“.$typeid.”.html”;
意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为/dedecms/list-1.html形式。
第四步、列表分页伪静态修改
打开/include/arc.listview.class.php
查找:
$plist= str_replace('.php?tid=','-',$plist);
替换为
$plist= str_replace('plus/list.php?tid=',‘DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/list.php?tid=替换成RMB/list-;
意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html。
第五步、文章分页伪静态
打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:
查找:
$PageList= str_replace(“plus/view.php?tid=”,”DedeCMS/DedeCMS5.7-“,$PageList);
替换为
$plist= str_replace('plus/view.php?tid=',’DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/view.php?tid=替换成RMB/huilv-;
意思是:将默认的文章分页链接格式plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html
第六步、TAG标签伪静态
DedeCms默认的TAG标签URL,形如/tags.php?/dedecms模板/,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板/,是不是好看多了。
下面我们来改一下,打开/include/taglib/tag.lib.php:
查找:
$row['link']=$cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
替换为
$row['link']=$cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;
这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!
第七步、httpd.ini伪静态规则:
[ISAPI_Rewrite]
# 3600= 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/RMB/list-([0-9]+)\.html$1/plus/list\.php\?tid=$2 [I]
RewriteRule ^(.*)/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^(.*)/RMB/huilv-([0-9]+)-([0-9]+)\.html$1/plus/view\.php\?arcID=$2&pageno=$3 [I]
RewriteRule ^(.*)/(.*)_(.*)_([0-9]+)\.html$1/huilv/?from=$2&to=$3&num=$4 [I]
RewriteRule ^(.*)/tags\.html$1/tags\.php [I]
RewriteRule ^(.*)/tags/(.*)(?:(\?.*))*$1/tags\.php\?\/$2 [I]
RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))*$1/tags\.php\?\/$2\/ [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))*$1/tags\.php\?\/$2\/$3 [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))*$1/tags\.php\?\/$2\/$3\/ [I]
将上面代码保存为:httpd.ini上传到网站的根目录。
如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。
如何防止织梦模板(DedeCms)被盗及安全设置
注:本篇模板防盗安全设置,针对的是dedecms程序本身,不涉及其他安全设置。
下面跟大家说下常见的方式,这些方法对技术有限的人来说,可以起到模板防盗作用,对真正的高手来说,大多数网站都是仿不了的,这个大家都需要知道。
方法一:修改系统默认模板文件夹名字,最简单,也很实用
步骤:后台->系统->系统基本参数->站点设置->模板默认风格->default
把default改成你自己取的名字,然后进FTP,打开templets文件夹,把default名字改成一致,这样别人就不知道你网站模板文件夹名字了。方法二:把系统默认的.htm模板文件名改一改。
大家都知道默认的模板文件的名字,如index.htm(),list_article.htm(文章列表页),article_article.htm(文章内容页)等等,直接就给扒下来。
所以,我们把这些默认的名字改一改,然后去栏目管理处,重新指定一下模板文件就可以增加一下模板的安全了。
1、认识一下默认模板文件的名字及作用
首页模板:/templets/default/index.html
文章频道首页:/templets/default/index_article.htm
文章列表页:/templets/default/list_article.htm
文章内容页:/templets/default/article_article.htm
图集频道首页:/templets/default/index_image.htm
具体模板名介绍:
2、不同栏目各自指定不同的模板
步骤:核心->常用操作->网站栏目管理->点击右侧对应栏目的“更改”链接->高级选项->手动指定模板
详细操作方法:
3、完成以上2步,生成更新一下栏目就行了。方法三:这个方法是上2个的结合,说起来也简单,
1、后台不修改默认模板风格default的名字,在templets文件夹里面新建一个文件夹,自己取名。
2、把用到的模板文件上传到这个文件夹里面;
这里需要有一个注意,因为后台没有修改默认的模板风格位置,所有,首页、列表、内容等模板文件引用的通用页头(head.html)、页尾(footer.htm),就需要修改一下,不然就不显示了页头页尾,方法如下:
{dede:include
filename=”123456/head.htm”/}
如果你自己建立的模板文件夹名字是123456,调用代码里就写123456。
搜索页面、tag页面,都放在默认的default里面,如果放在自己建的文件夹里面,系统不认。
3、按照方法二的步骤,手动指定各个栏目的模板。
方法四:修改CSS、图片、JS等调用路径。
这个很重要,最好把CSS、图片、JS等放到网站根目录再调用。
不然的话,即使你修改了默认的风格目录,在查看网页源代码的时候,还是照样可以看到模板目录的!
好多新手在用dedecms建站的时候,没有重视这个,等模板被盗了,才发现,很让人生气,所以,我们要提前做好这些防盗的准备,提高模板的安全性。
写的比较啰嗦,主要是为了让大家能够容易理解。
dedecms 列表点击加载更多读取数据库内容怎么实现
使用方法:
1、加载是用AJAX,需要先引用jQuery
2、模板在arcajax.php第二十八行请自行按需修改
3、arcajax.php放到plus目录下
HTML和js代码:
<divid=”loading27″>加载中</div>
<ahref=”javascript:;”id=”getMore”pnum=”2″class=”index-morebgwmt15″>浏览更多案例……</a>
<scripttype=”text/javascript”>
$(“#getMore”).click(function(){
var_this=$(this),
pnum=_this.attr(“pnum”),//分页码
typeid=1;//栏目ID
if(pnum==0){
returnfalse;
}
$(“#loading27”).show();
$.ajax({
url:'/plus/arcajax.php',
data:{typeid:typeid,pnum:pnum},
success:function(data){
if(data!=''){
$(“.index-list”).append(data);//数据显示到页面
_this.attr(“pnum”,Number(pnum)+1);//分页+1
}else{
_this.text(“没有更多的数据”);
_this.attr(“pnum”,0)
}
$(“#loading27”).hide();
}
})
returnfalse;
})
</script>
PHP代码(arcajax.php):
<?php
require_once(dirname(__FILE__).”/../include/common.inc.php”);
require_once(DEDEINC.'/channelunit.class.php');
require_once(DEDEINC.'/taglib/arcpagelist.lib.php');
$pnum=empty($pnum)?0:intval(preg_replace(“/[^\d]/”,'',$pnum));
$typeid=empty($typeid)?0:intval(preg_replace(“/[^\d]/”,'',$typeid));
if($typeid==0||$pnum==0)die(“RequestError!”);
if($typeid>0)
{
$titlelen=AttDef($titlelen,30);
$infolen=AttDef($infolen,160);
$imgwidth=AttDef($imgwidth,120);
$imgheight=AttDef($imgheight,120);
$listtype=AttDef($listtype,'all');
$arcid=AttDef($arcid,0);
$channelid=AttDef($channelid,0);
$orderby=AttDef($orderby,'default');
$orderWay=AttDef($order,'desc');
$subday=AttDef($subday,0);
$line=$row;
$artlist='';
//通过页面及总数解析当前页面数据范围
$strnum=($pnum-1)*12;
$limitsql=”LIMIT$strnum,12″;
$innertext='<li[field:globalname=”autoindex”runphp=”yes”]if(@me%3==0)@me=\'class=”mrnone”\';else@me=””;[/field:global]>
<div><ahref=”[field:arcurl/]”title=”[field:title/]”><imgsrc=”[field:litpic/]”width=”278″height=”245″></a></div>
<h3><ahref=”[field:arcurl/]”title=”[field:title/]”>[field:title/]</a></h3>
<p>[field:descriptionfunction=”cn_substr(@me,150)”/]</p>
<spanclass=”more”><ahref=”[field:arcurl/]”>浏览案例</a></span>
</li>';//模板
//处理列表内容项
$query=”SELECTarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,
tp.moresite,tp.siteurl,tp.sitepathFROM`#@__archives`arcLEFTJOIN`#@__arctype`tpONarc.typeid=tp.id
WHEREarc.typeidIN(“.GetSonIds($typeid).”)ORDERBYarc.sortrankdesc$limitsql”;
$dsql->SetQuery($query);
$dsql->Execute('al');
$dtp2=newDedeTagParse();
$dtp2->SetNameSpace('field','[',']');
$dtp2->LoadString($innertext);
$GLOBALS['autoindex']=0;
$ids=array();
for($i=0;$i<12;$i++)
{
for($j=0;$j<1;$j++)
{
if($row=$dsql->GetArray(“al”))
{
$ids[]=$row['id'];
//处理一些特殊字段
$row['info']=$row['infos']=cn_substr($row['description'],$infolen);
$row['id']=$row['id'];
if($row['corank']>0&&$row['arcrank']==0)
{
$row['arcrank']=$row['corank'];
}
$row['filename']=$row['arcurl']=GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
$row['typeurl']=GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],
$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
if($row['litpic']=='-'||$row['litpic']=='')
{
$row['litpic']=$GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
}
if(!preg_match(“#^http:\/\/#”,$row['litpic'])&&$GLOBALS['cfg_multi_site']=='Y')
{
$row['litpic']=$GLOBALS['cfg_mainsite'].$row['litpic'];
}
$row['picname']=$row['litpic'];
$row['stime']=GetDateMK($row['pubdate']);
$row['typelink']=”<ahref='”.$row['typeurl'].”'>”.$row['typename'].”</a>”;
$row['image']=”<imgsrc='”.$row['picname'].”'border='0'width='$imgwidth'height='$imgheight'alt='”.preg_replace(“#['><]#”,””,$row['title']).”'>”;
$row['imglink']=”<ahref='”.$row['filename'].”'>”.$row['image'].”</a>”;
$row['fulltitle']=$row['title'];
$row['title']=cn_substr($row['title'],$titlelen);
if($row['color']!='')$row['title']=”<fontcolor='”.$row['color'].”'>”.$row['title'].”</font>”;
if(preg_match('#b#',$row['flag']))$row['title']=”<strong>”.$row['title'].”</strong>”;
//$row['title']=”<b>”.$row['title'].”</b>”;
$row['textlink']=”<ahref='”.$row['filename'].”'>”.$row['title'].”</a>”;
$row['plusurl']=$row['phpurl']=$GLOBALS['cfg_phpurl'];
$row['memberurl']=$GLOBALS['cfg_memberurl'];
$row['templeturl']=$GLOBALS['cfg_templeturl'];
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTagsas$k=>$ctag)
{
if($ctag->GetName()=='array')
{
//传递整个数组,在runphp模式中有特殊作用
$dtp2->Assign($k,$row);
}else{
if(isset($row[$ctag->GetName()]))$dtp2->Assign($k,$row[$ctag->GetName()]);
else$dtp2->Assign($k,'');
}
}
$GLOBALS['autoindex']++;
}
$artlist.=$dtp2->GetResult().”
“;
}//ifhasRow
else{
$artlist.='';
}
}//LoopCol
}//loopline
$dsql->FreeResult(“al”);
}else
{
die(“RequestError!”);
}
AjaxHead();
echo$artlist;
exit();




