dedecms hack集锦
Dedecms实现每5条新闻显示1条分割线----
<STYLE>
.xian {
BORDER-TOP: #333 1px dotted; MARGIN-TOP: 3px; FONT-SIZE: 0px; OVERFLOW: hidden; LINE-HEIGHT: 0; HEIGHT: 3px
}
.bg {
BORDER-TOP: #ffffff 0px dotted; MARGIN-TOP: 0px; FONT-SIZE: 0px; OVERFLOW: hidden; LINE-HEIGHT: 0; HEIGHT: 0px
}
</style>
{dede:arclist titlelen=80}
<li>
<span class=cgray></span> <a href=""></a></li>
$a="<li class='bg'>";
$b="</li>";
$c="<li class='xian'>";
if ((@me % 5) == 0) @me = $c.@me.$b;
else @me = $a.@me.$b;
{/dede:arclist}
红色部分 除5倍数,隔5条显示 割线, 可以随意改 10 8 6 都可以随自己喜欢
dedecms文件结构分析,有利于更好的二次开发
1.dede----------------这个主要是后台功能的文件夹2.freelist--------------这个说实话,我也一直没有用到,做什么的我也不太清楚,大家就记住用不到就行了
3.html-----------------生成html的地方,当然也可以选择不生成在这里
4.include-------------这个是dedecms这个程序的核心功能文件所在,稍后会重点讲解里面的文件
5.member-----------会员管理功能的文件夹
6.plus--------------顾名思义,外挂吧,虽然不太贴切。呵呵,这里存放了一些起辅助作用的功能文件
7.setup------------这个就是安装文件了,对我们的作用不大
8.special----------专题,这个我用到的也不多,所以没怎么看过
9.templets----------存放模板的文件夹,稍后会讲解
10.upimg------------存放图片的文件夹
11.base.css---------基本样式表
12.index.php--------动态显示网站首页的程序文件
13.robots.txt---------告诉各大搜索引擎的蜘蛛,哪些目录是不允许它抓取的
dedecms这个程序的核心就是它的模板类include/pub_dedetag.php,其他所有的组成部分,都是围绕着它来做工作的。
可以说,大家研究透了这个文件的功能,基本上就把dede吃透了。我是这样觉得的,呵呵。
1.config_base.php----------------------------------系统配置文件一,数据库的链接信息和一些系统变量的设置
2.config_hand.php----------------------------------系统配置文件二,一些系统变量的设置
3.config_hand_bak.php----------------------------系统配置文件二的备份
4.inc_archives_view.php---------------------------生成文档html的
5.inc_arclist_view.php------------------------------生成栏目文档列表html的
6.inc_arcpart_view.php----------------------------生成栏目首页的,包括网站首页和频道页,不包括列表页
7.pub_collection.php-----------------------------------采集程序的主文件
8.pub_db_mysql.php-------------------------------数据库二次封装的类
9.pub_dedetag.php--------------------------------dede的模板类,是重点,要想二次开发,必须对这个的原理搞清楚
UID21 帖子83 精华0 积分10 阅读权限100 在线时间3 小时 注册时间2008-3-18 最后登录2008-8-27 查看详细资料
TOP
关于使用DEDECMS后台模板管理出错的解决办法
无意中发现dede的后台模板管理不能用了,网了查了半天资料,结果一个解决的都没有发现,经过本人仔细的查找,发现,其实是一个很简单的问题,而产生问题的原因,刚是没有安装到站点的根目录中
如果你也出现如下情况:
Fatal error: Call to a member function read() on a non-object in X:\root\dede\templets\file_manage_main.htm on line 29
手工解决办法:,在管理目录找到index_top.php,找开在96行找到如下代码:
<li id='d10'><a href="javascript:OpenMenu(10,'','file_manage_main.php?activepath=/templets',10)">模板管理</a></li>
改为:
<li id='d10'><a href="javascript:OpenMenu(10,'','file_manage_main.php?activepath=<? echo $cfg_cmspath?>/templets',10)">模板管理</a></li>
,当然,也可以在标记处直接写上实际地址.
呵呵,刷新页面,问题解决!
http://www.itsic.cn/article.asp?id=240
DEDECMS列表伪静态修改-DEDECMS教程
打开inc_arclist_view.php查找
//---------------------------------
//获取动态的分页列表
//---------------------------------
对比以下代码修改
function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno")
{
$prepage="";
$nextpage="";
$prepagenum = $this->PageNo-1;
$nextpagenum = $this->PageNo+1;
if($list_len==""||ereg("[^0-9]",$list_len)) $list_len=3;
$totalpage = ceil($this->TotalResult/$this->PageSize);
if($totalpage<=1 && $this->TotalResult>0) return "共1页/".$this->TotalResult."条记录";
if($this->TotalResult == 0) return "共0页".$this->TotalResult."条记录";
$maininfo = "共{$totalpage}页/".$this->TotalResult."条记录";
$purl = $this->GetCurUrl();
$geturl = "typeid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
$gettypeid =$this->TypeID."-";
//$hidenform = "<input type='hidden' name='typeid' value='".$this->TypeID."'>\r\n";
//$hidenform .= "<input type='hidden' name='TotalResult' value='".$this->TotalResult."'>\r\n";
$purl .= "?".$geturl;
//获得上一页和下一页的链接
if($this->PageNo != 1){
$prepage.="<a href='list-".$gettypeid."$prepagenum.html'>上一页</a>";
$indexpage="<a href='list-".$gettypeid."1.html'>首页</a>";
}
else{
$indexpage="首页";
}
if($this->PageNo!=$totalpage && $totalpage>1){
$nextpage.="<a href='list-".$gettypeid."$nextpagenum.html'>下一页</a>";
$endpage="<a href='list-".$gettypeid."$totalpage.html'>末页</a>";
}
else{
$endpage="末页";
}
//获得数字链接
$listdd="";
$total_list = $list_len * 2 + 1;
if($this->PageNo >= $total_list) {
$j = $this->PageNo-$list_len; www.MB5U_COM
$total_list = $this->PageNo+$list_len;
if($total_list>$totalpage) $total_list=$totalpage;
}else{
$j=1;
if($total_list>$totalpage) $total_list=$totalpage;
}
for($j;$j<=$total_list;$j++){
$listdd.="<a href='list-".$gettypeid."$j.html'>".$j."</a>";
}
$plist .= $maininfo.$indexpage.$prepage.$listdd.$nextpage.$endpage;
return $plist;
}
打开inc_channel_unit_functions.php
查找
$reurl = $GLOBALS["cfg_plus_dir"]."/list.php?tid=".$typeid;
改成
//$reurl = $GLOBALS["cfg_plus_dir"]."/list.php?tid=".$typeid;
$reurl = "/list-".$typeid.".html";
增加.htaccess文件
内容为
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)list-(+)\.html$ $1/plus/list.php?tid=$2
RewriteRule ^(.*)list-(+)-(+)\.html$ $1/plus/list.php?typeid=$2&PageNo=$3
</IfModule>
给dedecms文章列表加上序号效果
作者:木许css代码部分
<style type="text/css">
<!--
.downtop {
FLOAT: left; OVERFLOW: hidden; WIDTH: 218px; HEIGHT: 278px
}
.downtop UL.text {
MARGIN: 0px 10px; WIDTH: 198px; PADDING-TOP: 5px
}
.downtop UL.text LI {
WIDTH: 198px
}
.downtop UL.text SPAN {
DISPLAY: block; FLOAT: left
}
.downtop UL.text SPAN.num {
MARGIN-TOP: 4px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; FONT-SIZE: 10px; WIDTH: 18px; LINE-HEIGHT: 12px; HEIGHT: 13px; TEXT-ALIGN: center;COLOR: #fff; BACKGROUND-COLOR: #b7b7b7
}
.downtop UL.text LI SPAN.active {
BACKGROUND-COLOR: #7abdff
}
.downtop UL.text SPAN.tit {
PADDING-LEFT: 10px; OVERFLOW: hidden; WIDTH: 168px; WHITE-SPACE: nowrap; HEIGHT: 21px
}
-->
</style>
dede标签部分代码
<DIV class="downtop border">
<UL class=text>
{dede:arclist orderby=pubdate type='commend.' titlelen='26' row='10' channel=3}
<LI>
$a="<SPAN class='num active'>";
$b="</SPAN>";
$c="<SPAN class='num'>";
if (@me > 3) @me = $c.@me.$b;
else @me = $a.@me.$b;
<SPAN class=tit><A title=""
href=""></A></SPAN></LI>
{/dede:arclist}
</UL>
</DIV>
DEDE仿DoNews右侧最新评论的代码
{dede:sql sql="SELECT aid,username,urlindex,arctitle,url,msg FROM `dede_feedback` where ischeck=1 ORDER BY `dtime` DESCLIMIT 0 , 30"}
if(@me=='guest')@me=游客对<a href=""></a>的评论<br/>
<a href="/plus/feedback.php?arcID=&urlindex="></a><br/>
{/dede:sql}
LIMIT 0 , 30的30是调用的条数
里面的20是标题显示的字符数
至于显示的样式大家根据自己的模板进行修改吧
dede责任编辑功能的简单实现方法
第一步 添加责任编辑字段在5.1中给模型添加一个新字段是一件很简单的事情,我们现在就来看看如果添加一个责任编辑的字段。
首先我们打开【频道管理】—【内容模型管理】 在【文章模型】后面点击【修改】模型
进来以后我们点击【添加新字段】字段的内容大家按照我下面图片里面的输入就可以了
完成这一步我们就完成了添加字段的步骤。
第二步 修改程序(嫌麻烦的直接下载附件然后解压到dede目录)
我们需要修改3个文件来实现在编辑文章和审核文章的时候插入当前管理员的信息到我们新建的字段中。
打开dede/archives_do.php
查找
CheckPurview('a_Check,a_AccCheck,sys_ArcBatch');
替换为
$redaktoro = $cuserLogin->getUserName();
CheckPurview('a_Check,a_AccCheck,sys_ArcBatch');
再查找
$dsql->ExecuteNoneQuery(" Update `dede_full_search` set url='$pageurl' where aid='$aid'");
替换为
$dsql->ExecuteNoneQuery(" Update `dede_full_search` set url='$pageurl' where aid='$aid'");
$dsql->ExecuteNoneQuery(" Update `dede_addonarticle` set redaktoro='$redaktoro' where aid='$aid'");
然后保存。
再打开dede/action/article_eidt_action.php
查找
$addQuery = "Update `{$aTables['addtable']}` set typeid='$typeid',body='$body'{$inadd_f} where aid='$ID'";
替换为
$redaktoro = $cuserLogin->getUserName();
$addQuery = "Update `{$aTables['addtable']}` set typeid='$typeid',body='$body',redaktoro='$redaktoro' where aid='$ID'";
忘了还有一个文件dede/action/article_add_action.php
查找
$dsql->SetQuery("INSERT INTO `{$cts['addtable']}`(aid,typeid,body{$inadd_f}) Values('$arcID','$typeid','$body'{$inadd_v})");
替换为
$redaktoro = $cuserLogin->getUserName();
$dsql->SetQuery("INSERT INTO `{$cts['addtable']}`(aid,typeid,body,redaktoro) Values('$arcID','$typeid','$body','$redaktoro')");
然后保存就可以了。
我们就可以在文章内容页中使用{dede:field name='redaktoro '/}进行调用
用此方法修改后有个不足就是不能对文章模型添加其他字段。
页:
[1]