这个办法只用于新建的栏目,不能用于旧栏目。
include/config_base.php
找到
将 755 改成 775 即可。
还望技术达人指点。
include/config_base.php
找到
//新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行
$cfg_dir_purview = 0755;
$cfg_dir_purview = 0755;
将 755 改成 775 即可。
还望技术达人指点。
修改templets/default/index_article.htm
找到
将下方的
这里的 16就是控制栏目显示个数的位置,可以按照自己的想法进行设定。
文档列表栏目处,可修改 templets/default/list_article.htm
一样的改法。
找到
<dt>栏目列表</dt>
将下方的
{dede:channel type='sun'}
改为{dede:channel row='16' type='sun'}
这里的 16就是控制栏目显示个数的位置,可以按照自己的想法进行设定。
文档列表栏目处,可修改 templets/default/list_article.htm
一样的改法。
打开member/index_do.php 找到
Copy code
if(empty($gourl)||eregi("action|_do",$gourl)){
ShowMsg("成功登录,5秒钟后转向系统管理中心...","control.php",0,2000);
}else{
ShowMsg("成功登录,转到进入页面...",$gourl,0,2000);
ShowMsg("成功登录,5秒钟后转向系统管理中心...","control.php ",0,2000);
红色部分是登陆成功后的提示语,
绿色部分是登陆后返回的页面,默认的是会员中心,改成 ../../ 就是返回首页 返回登陆前页面就改成 -1
黄色部分是程序等待时间 默认两秒
Copy code
if(empty($gourl)||eregi("action|_do",$gourl)){
ShowMsg("成功登录,5秒钟后转向系统管理中心...","control.php",0,2000);
}else{
ShowMsg("成功登录,转到进入页面...",$gourl,0,2000);
ShowMsg("成功登录,5秒钟后转向系统管理中心...","control.php ",0,2000);
红色部分是登陆成功后的提示语,
绿色部分是登陆后返回的页面,默认的是会员中心,改成 ../../ 就是返回首页 返回登陆前页面就改成 -1
黄色部分是程序等待时间 默认两秒
编辑include/vdimgck.php,查找下面内容更改mt_rand里面的数字为(48,57)即可。
//获取随机字符
$rndstring = "";
for($i=0;$i<4;$i++){
$rndstring .= chr(mt_rand(48,57));
}
//获取随机字符
$rndstring = "";
for($i=0;$i<4;$i++){
$rndstring .= chr(mt_rand(48,57));
}
本文系转载
对dedecms表现出来的相对较差的性能也感觉比较迷惑,到底是什么在制约其负载效率?难道真的是某些脑残的dede论坛版主说的是因为mysql不堪重负的原因吗?
还是因为一个表的大数据造成性能严重下降?难道我们必须通过分多个表来存储才能解决问题吗?以下我们通过一个实例来解析和优化dedecms的数据管理性能,千万别让mysql当替罪羊,罪莫大焉。
测试数据是无意中得到的企业黄页的数据,数据量将近90万,都是完全真实的数据,测试使用的程序是dedecms4.0版本,你问为什么不用dedecms5.1?那是因为我们为了优化,针对dedecms做了很多修改,如果使用dedecms5.1,我们害怕收到法院传票……,补充一句,以下的优化方法均能在dedecms5.1中使用,请在理解其原理的基础上自行完成。
未优化前我们测试发现主要有三个经常性的操作在dede大数据量的情况下影响管理性能,分别是文档生成、列表页生成和栏目列出所有文章,我们就针对这三个方面进行优化实践。
以下是测试数据的基本信息:

文档数量接近90万

每个栏目包含近3万数据
对dedecms表现出来的相对较差的性能也感觉比较迷惑,到底是什么在制约其负载效率?难道真的是某些脑残的dede论坛版主说的是因为mysql不堪重负的原因吗?
还是因为一个表的大数据造成性能严重下降?难道我们必须通过分多个表来存储才能解决问题吗?以下我们通过一个实例来解析和优化dedecms的数据管理性能,千万别让mysql当替罪羊,罪莫大焉。
测试数据是无意中得到的企业黄页的数据,数据量将近90万,都是完全真实的数据,测试使用的程序是dedecms4.0版本,你问为什么不用dedecms5.1?那是因为我们为了优化,针对dedecms做了很多修改,如果使用dedecms5.1,我们害怕收到法院传票……,补充一句,以下的优化方法均能在dedecms5.1中使用,请在理解其原理的基础上自行完成。
未优化前我们测试发现主要有三个经常性的操作在dede大数据量的情况下影响管理性能,分别是文档生成、列表页生成和栏目列出所有文章,我们就针对这三个方面进行优化实践。
以下是测试数据的基本信息:

文档数量接近90万

每个栏目包含近3万数据
【Mynews 标记】
功能说明:用于获取站内新闻
适用范围:封面模板
(1) 基本语法
{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}
(2)属性
[1] row 新闻条数
[2] titlelen 标题长度
(3)底层模板变量
[field:title/]、[field:writer/]、
[field:senddate function="strftime('%y-%m-%d %H:%M',@me)"/](时间)、[field:body/]
{dede:mynews row='10' titlelen='30'}[field:title/]
[field:body/] {/dede:mynews}
功能说明:用于获取站内新闻
适用范围:封面模板
(1) 基本语法
{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}
(2)属性
[1] row 新闻条数
[2] titlelen 标题长度
(3)底层模板变量
[field:title/]、[field:writer/]、
[field:senddate function="strftime('%y-%m-%d %H:%M',@me)"/](时间)、[field:body/]
{dede:mynews row='10' titlelen='30'}[field:title/]
[field:body/] {/dede:mynews}
从昨晚(9月22日)凌晨12点挂掉之后,到现在已经有16小时。在这16小时中,google的搜索引擎,应该到达了两次,应该已经发现网站挂了。
估计是dedecms的栏目管理代码查询数据库次数写的不好所致。
目前正在等待中。
等待戈多。
估计是dedecms的栏目管理代码查询数据库次数写的不好所致。
目前正在等待中。
等待戈多。
这个是我自己想出来的笨法子,自己使用起来方便,因为不是技术人员,所以改的很麻烦,还请大家多批评指教。
修改:
templates/defaut/index_article.html
找到 将此处代码改为下面这一段:
<!--新闻列表-->
<div class="listbox">
{dede:channelArtlist col=4}
<dl>{dede:type}
<dt>
<span class="title"><a href="[field:typelink /]">[field:typename /]</a></span>
</dt> {/dede:type}
</dl>
{/dede:channelArtlist}
</div>
</div>
<!--右侧-->
修改:
templates/styles/articles.css
找到
.listbox dl{
width:326px;
将326改为160或者你想要的数目。
注意,326是两行排列,如果你想要四行,就是326/2=163,如果你想要6行,就是326/6=54
同理,
找到
.listbox dl dt{
width:326px;
将326改为你自己想要的数目,这里我改成了160.
保存,然后更新下栏目html。自己看看是不是改好了。
呵呵·~
修改:
templates/defaut/index_article.html
找到 将此处代码改为下面这一段:
<!--新闻列表-->
<div class="listbox">
{dede:channelArtlist col=4}
<dl>{dede:type}
<dt>
<span class="title"><a href="[field:typelink /]">[field:typename /]</a></span>
</dt> {/dede:type}
</dl>
{/dede:channelArtlist}
</div>
</div>
<!--右侧-->
修改:
templates/styles/articles.css
找到
.listbox dl{
width:326px;
将326改为160或者你想要的数目。
注意,326是两行排列,如果你想要四行,就是326/2=163,如果你想要6行,就是326/6=54
同理,
找到
.listbox dl dt{
width:326px;
将326改为你自己想要的数目,这里我改成了160.
保存,然后更新下栏目html。自己看看是不是改好了。
呵呵·~
DeDecms是国内采用比较广泛的一款cms软件,在之前的版本中,陆续被披漏存在SQL注射等安全问题,而SQL注射也是其安全问题的主要所在。为了解决SQL注射的问题,DedeCms在其发布的最新版和补丁中包括了80sec的Mysqlids,以用来抵御和检测Sql注射漏洞。
Mysqlids作为一个ids存在于php应用程序和数据库操作之间,完全以Mysql的语法来分析执行的SQL语句,而不是采用传统的关键字检测的方法,经过合适的部署,基本不存在误报问题。对于一些非正常的SQL语句能进行阻止并且记录相关的信息,这样就可以很快地定位程序中存在注射漏洞的地方,为漏洞的及时修复提供必要的信息。Mysqlids的检测工作使用php实现,相对于SQL语句来说消耗的时间非常小,合理地部署Mysqlids可以极大地提高程序的安全性。
DeDecms官方网站:http://www.dedecms.com
有什么问题和建议欢迎与root#80sec.com联系:)
本站内容均为原创,转载请务必保留署名与链接!
Dedecms内置Mysqlids(80sec):http://www.80sec.com/dedecms-with-mysqlids8.html
Mysqlids作为一个ids存在于php应用程序和数据库操作之间,完全以Mysql的语法来分析执行的SQL语句,而不是采用传统的关键字检测的方法,经过合适的部署,基本不存在误报问题。对于一些非正常的SQL语句能进行阻止并且记录相关的信息,这样就可以很快地定位程序中存在注射漏洞的地方,为漏洞的及时修复提供必要的信息。Mysqlids的检测工作使用php实现,相对于SQL语句来说消耗的时间非常小,合理地部署Mysqlids可以极大地提高程序的安全性。
DeDecms官方网站:http://www.dedecms.com
有什么问题和建议欢迎与root#80sec.com联系:)
本站内容均为原创,转载请务必保留署名与链接!
Dedecms内置Mysqlids(80sec):http://www.80sec.com/dedecms-with-mysqlids8.html
dedecms开源确实很方便,源代码不爽的地方自己修改。
但是官方默认的功能确实有很多不是很方便的地方,比如我就遇到一个:
dedecms后台的栏目默认的是点击“顶级频道”后,其下面的一级、二级、三级。。栏目全都展开,如果一个频道上有超过100个栏目,那么就会造成后台响应很慢,甚至停止响应的问题。
如果能够改成每个级别前面有个“+”符号,点击此符号后,才打开下一级栏目的话,就方便多了。
但是官方默认的功能确实有很多不是很方便的地方,比如我就遇到一个:
dedecms后台的栏目默认的是点击“顶级频道”后,其下面的一级、二级、三级。。栏目全都展开,如果一个频道上有超过100个栏目,那么就会造成后台响应很慢,甚至停止响应的问题。
如果能够改成每个级别前面有个“+”符号,点击此符号后,才打开下一级栏目的话,就方便多了。
某天,朋友告诉我,搜狐这么大一个公司,竟然子频道是用DEDECMS改的,让人先是郁闷了一下,再怎么说,DEDECMS也是一个民营开发的 CMS,不过确实,功能不容质疑,毕竟树大招风,不过某些人也做得太过分了,用别人的CMS可以不计较,但是连版权都改了?哎,什么世道!
从门户中看CMS的发展
CMS也算是目前站长们制作网站的主流程序源码,毕竟不需要自主开发和过多的花费(还记得04年的时候,做网站是件很奢侈的事情,因为当时还没明白CMS是什么!)。
门户们现在也算是大有脸面,自己开发程序来使用,已经是门户最低档次的要求了,例如搜狐这个门户,旗下的17173,就是自主开发的程序(有时间我把17173的后台界面发出来给大家看看,个人评价,难看至极)如果说搜狐没点本事,收了17173干嘛?其实17173的内容管理系统还是不错的说,从我见到的后台来看,已经和DEDECMS相差无几(除了外观和细节上的小功能,感觉相差确实不远),既然人家的子频道选择使用DEDE,那就代表 DEDE肯定有过人之处,不说其他,DEDECMS的开发价值我暂不考虑,以17173的后台为评价,单说登陆就需要U盘KEY+帐号密码了,这样一个安全性极高的程序,竟然还不如个DEDECMS,个人为DEDECMS感到庆幸,毕竟,这次的发现是个超越,能代表的虽然不是DEDECMS已经立于众 CMS之首,但是首先能明确的一点是DEDECMS的开发程度已经超越17173的自主开发程序!
从修改程度看DEDECMS的使用
记得曾几何时,看过一篇软文,评价PHP里的CMS,好象有人把DEDECMS评价得好差,将康盛创想的SS评为最优秀的PHP内容管理系统 (CMS),这里我不评论SS有多烂,或者DEDECMS有多好,我只根据需求进行小型测试,貌似他们说DEDECMS的负载也就是20万数据封顶,我亲自做了实验,50万的数据,速度依然不错,数据库已经上G了,所以我没继续深入测试,但是首先,已经证明DEDECMS的负载根本不是某些人说的那样,20万数据,就将DEDECMS扔进报废场。
DEDECMS我也接触有段时间,个人感觉还不错,二次开发效果也比较好,确实,很多人说作者写代码的时候比较乱,确实属实,而且我发现,DEDECMS很占数据库,例如一条内容,就必须增加进三个数据表,这也就是说以后导入外部数据,必须导三次,或者说自己写个程序,直接导入三个表,这点我不太认可DEDECMS的开发设计,因为的确比较复杂化了站长们的日常操作,所以,大多站长还是拿DEDECMS做为垃圾站的首选,希望开发团队能继续完善好DEDECMS,注意细节。
DEDECMS也不算是一个初生婴儿了,从站长网、中国站长站这两个站长汇集中心使用DEDECMS开始,DEDE的前途就已经写入历史,所以许多站长都是看站长网、中国站长站这两个巨头使用DEDECMS,所以也开始接触DEDECMS,而且许多人研究后都说,DEDECMS对SEO效果会比其他CMS好,这点还有待考证。
但是搜狐的子频道使用DEDECMS的时候,修改的大部分的版权,但是细节上的还未做修改,如果说真的一个已经投入使用的子频道,不可能会这么不注意的,所以,在此看来,DEDECMS的二次开发使用,还是需要修改许多东西的,如果说想做专业,就必须精细的修改DEDECMS,否则,上一个笑话是搜狐,下一个笑话还是个未知数!
从黑客入手后到见证DEDE的使用
“某黑客入侵了搜狐,他们用的是DEDECMS”这句话早在群里传开了,大家首先想到的是DEDECMS花香引蝶,但是未顾及其余两点:
一、搜狐子频道的DEDECMS是如何被入侵的?
二、如果DEDECMS是属于技术性入侵,那安全隐患有多大?
应我所说,看见截图的时候,后台竟然是admin目录而且系统帐号竟然也是admin,这个可能是属于修改者的粗心,所以导致造成了这个不算技术的入侵。但是给我们的遐想是什么?
这样,我们排除了技术性入侵的可能性,那么我们来考虑第二个问题,如果说哪天不小心,真的遭到黑客的入侵,我们还有多少保留的余地?
DEDECMS的安全隐患确实也比较多,不需要任何工具,就可以全站挂马,这个问题我也已经和DEDECMS的作者交流过了,他们也将在下个版本中做个改善,希望下一版的DEDECMS能够更具有超越性,因为,DEDECMS也是我的目标!
总结
从以上例子和说明,我只想说两件事:
一、对DEDECMS恶意中伤者,迟早也是会被他人中伤,因为群众的眼睛是雪亮的。
二、DEDECMS确实可能不完善,但是有什么CMS是完善的呢?我们需要帮助它成长,而不是抛弃它,DEDECMS就像是你的孩子,需要更多的关心和爱护,我们才能让DEDECMS更强大!
本文来自: 中国牛站长(Bbs.NiuZz.Cn) 请保留版权,原帖地址:http://bbs.niuzz.cn/viewthread.php?tid=2752&extra=page%3D1&frombbs=1
从门户中看CMS的发展
CMS也算是目前站长们制作网站的主流程序源码,毕竟不需要自主开发和过多的花费(还记得04年的时候,做网站是件很奢侈的事情,因为当时还没明白CMS是什么!)。
门户们现在也算是大有脸面,自己开发程序来使用,已经是门户最低档次的要求了,例如搜狐这个门户,旗下的17173,就是自主开发的程序(有时间我把17173的后台界面发出来给大家看看,个人评价,难看至极)如果说搜狐没点本事,收了17173干嘛?其实17173的内容管理系统还是不错的说,从我见到的后台来看,已经和DEDECMS相差无几(除了外观和细节上的小功能,感觉相差确实不远),既然人家的子频道选择使用DEDE,那就代表 DEDE肯定有过人之处,不说其他,DEDECMS的开发价值我暂不考虑,以17173的后台为评价,单说登陆就需要U盘KEY+帐号密码了,这样一个安全性极高的程序,竟然还不如个DEDECMS,个人为DEDECMS感到庆幸,毕竟,这次的发现是个超越,能代表的虽然不是DEDECMS已经立于众 CMS之首,但是首先能明确的一点是DEDECMS的开发程度已经超越17173的自主开发程序!
从修改程度看DEDECMS的使用
记得曾几何时,看过一篇软文,评价PHP里的CMS,好象有人把DEDECMS评价得好差,将康盛创想的SS评为最优秀的PHP内容管理系统 (CMS),这里我不评论SS有多烂,或者DEDECMS有多好,我只根据需求进行小型测试,貌似他们说DEDECMS的负载也就是20万数据封顶,我亲自做了实验,50万的数据,速度依然不错,数据库已经上G了,所以我没继续深入测试,但是首先,已经证明DEDECMS的负载根本不是某些人说的那样,20万数据,就将DEDECMS扔进报废场。
DEDECMS我也接触有段时间,个人感觉还不错,二次开发效果也比较好,确实,很多人说作者写代码的时候比较乱,确实属实,而且我发现,DEDECMS很占数据库,例如一条内容,就必须增加进三个数据表,这也就是说以后导入外部数据,必须导三次,或者说自己写个程序,直接导入三个表,这点我不太认可DEDECMS的开发设计,因为的确比较复杂化了站长们的日常操作,所以,大多站长还是拿DEDECMS做为垃圾站的首选,希望开发团队能继续完善好DEDECMS,注意细节。
DEDECMS也不算是一个初生婴儿了,从站长网、中国站长站这两个站长汇集中心使用DEDECMS开始,DEDE的前途就已经写入历史,所以许多站长都是看站长网、中国站长站这两个巨头使用DEDECMS,所以也开始接触DEDECMS,而且许多人研究后都说,DEDECMS对SEO效果会比其他CMS好,这点还有待考证。
但是搜狐的子频道使用DEDECMS的时候,修改的大部分的版权,但是细节上的还未做修改,如果说真的一个已经投入使用的子频道,不可能会这么不注意的,所以,在此看来,DEDECMS的二次开发使用,还是需要修改许多东西的,如果说想做专业,就必须精细的修改DEDECMS,否则,上一个笑话是搜狐,下一个笑话还是个未知数!
从黑客入手后到见证DEDE的使用
“某黑客入侵了搜狐,他们用的是DEDECMS”这句话早在群里传开了,大家首先想到的是DEDECMS花香引蝶,但是未顾及其余两点:
一、搜狐子频道的DEDECMS是如何被入侵的?
二、如果DEDECMS是属于技术性入侵,那安全隐患有多大?
应我所说,看见截图的时候,后台竟然是admin目录而且系统帐号竟然也是admin,这个可能是属于修改者的粗心,所以导致造成了这个不算技术的入侵。但是给我们的遐想是什么?
这样,我们排除了技术性入侵的可能性,那么我们来考虑第二个问题,如果说哪天不小心,真的遭到黑客的入侵,我们还有多少保留的余地?
DEDECMS的安全隐患确实也比较多,不需要任何工具,就可以全站挂马,这个问题我也已经和DEDECMS的作者交流过了,他们也将在下个版本中做个改善,希望下一版的DEDECMS能够更具有超越性,因为,DEDECMS也是我的目标!
总结
从以上例子和说明,我只想说两件事:
一、对DEDECMS恶意中伤者,迟早也是会被他人中伤,因为群众的眼睛是雪亮的。
二、DEDECMS确实可能不完善,但是有什么CMS是完善的呢?我们需要帮助它成长,而不是抛弃它,DEDECMS就像是你的孩子,需要更多的关心和爱护,我们才能让DEDECMS更强大!
本文来自: 中国牛站长(Bbs.NiuZz.Cn) 请保留版权,原帖地址:http://bbs.niuzz.cn/viewthread.php?tid=2752&extra=page%3D1&frombbs=1
这是我自己琢磨着改的,参考增加文章时候默认为动态的方法想出来的,呵呵。原理一样,很简单啦。
如下:
修改/dede/templates/catalog_add.htm
找到
将其中的 checked删除。然后找到
在class='np'后面增加
就好了~
如下:
修改/dede/templates/catalog_add.htm
找到
<td align="left" class='bline'> <input type='radio' name='isdefault' value='1' class='np'> checked
将其中的 checked删除。然后找到
<input type='radio' name='isdefault' value='-1' class='np' >
在class='np'后面增加
checked
就好了~
这个是dedecms论坛上的朋友写的,我拿来用了,呵呵~
<?php
########################################
#
# PHP版的Google Sitemap 生成器 ver 0.1
# 注意:必须对当前目录有写的权限
#
########################################
#网站根域名
$WebRoot = "http://www.***.com/";//这里改成你的网址
#XML文件名称
$XMLFile = "sitemaps.xml";
#要建虑的目录[区分大小写],注意:前面加号是因为0在PHP中表示假,这样取子串位置时就不会返回假
#以本程序所在的目录为当前目录,即扫描的根目录,所以目录前面不用加上"/"
$FilterDir = "+|sysAdmin|down|";
#要索引的文件扩展名[小写]
$IndexFileExt = "+|htm|html|";
#XML头部
$XMLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
#XML尾部
$XMLEndText = "</urlset>";
echo "开始构建文件XML索引...";
DealFP(".");
$XMLText .= $XMLEndText;
makeFile($XMLFile,$XMLText);
echo "ok!<br><br>";
$url = $WebRoot.$XMLFile;
echo "<a href=".$url.">打开</a>:".$url;
#公用函数库:
#新建文件
function makeFile($fileName, $text){
$fp = fopen($fileName, "w+");
fwrite($fp, $text);
fclose($fp);
}
/**
* 将指定内容添加到XML中
* $f 含相对路径的文件名称
* $dt 日期时间型
*/
function addToXML($f, $dt){
$s = "<url><loc>".$GLOBALS["WebRoot"].$f."</loc><lastmod>".$dt."</lastmod></url>\n";
$GLOBALS["XMLText"] .= $s;
}
/**
* 遍历指定的目录以及子目录,将符合条件的文件加入XML
* $p 指定的目录
*/
function DealFP($p){
$FilterDir = $GLOBALS["FilterDir"];
$IndexFileExt = $GLOBALS["IndexFileExt"];
$handle=opendir($p);
if ($p==".") $path = "";
else $path = $p."/";
while ($file = readdir($handle))
{
$d = filetype($path.$file);
if ((($d=='file')||($d=='dir'))&&($file!='.')&&($file!='..'))
{
$pf = $path.$file;
//echo "[".$d."]".$pf."<br>";
if ($d=='dir')
{
if (!(strpos($FilterDir, "|".$pf."|")))
{
DealFP($pf);
}
}else{
$ext = "|".strtolower(substr($file, strrpos($file, ".")+1))."|";
if (strpos($IndexFileExt, $ext))
{
$d = filemtime($pf);
$dt = date("Y-m-d",$d)."T".date("H:i:s",$d)."+00:00";
addToXML($pf, $dt);
}
}
}
}
closedir($handle);
}
?>
随便起给名字**.PHP就可以了,放在根目录下,在后台的随便页面做个链接更新Google Sitemaps,以后就点这个链接,就OK了
<?php
########################################
#
# PHP版的Google Sitemap 生成器 ver 0.1
# 注意:必须对当前目录有写的权限
#
########################################
#网站根域名
$WebRoot = "http://www.***.com/";//这里改成你的网址
#XML文件名称
$XMLFile = "sitemaps.xml";
#要建虑的目录[区分大小写],注意:前面加号是因为0在PHP中表示假,这样取子串位置时就不会返回假
#以本程序所在的目录为当前目录,即扫描的根目录,所以目录前面不用加上"/"
$FilterDir = "+|sysAdmin|down|";
#要索引的文件扩展名[小写]
$IndexFileExt = "+|htm|html|";
#XML头部
$XMLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
#XML尾部
$XMLEndText = "</urlset>";
echo "开始构建文件XML索引...";
DealFP(".");
$XMLText .= $XMLEndText;
makeFile($XMLFile,$XMLText);
echo "ok!<br><br>";
$url = $WebRoot.$XMLFile;
echo "<a href=".$url.">打开</a>:".$url;
#公用函数库:
#新建文件
function makeFile($fileName, $text){
$fp = fopen($fileName, "w+");
fwrite($fp, $text);
fclose($fp);
}
/**
* 将指定内容添加到XML中
* $f 含相对路径的文件名称
* $dt 日期时间型
*/
function addToXML($f, $dt){
$s = "<url><loc>".$GLOBALS["WebRoot"].$f."</loc><lastmod>".$dt."</lastmod></url>\n";
$GLOBALS["XMLText"] .= $s;
}
/**
* 遍历指定的目录以及子目录,将符合条件的文件加入XML
* $p 指定的目录
*/
function DealFP($p){
$FilterDir = $GLOBALS["FilterDir"];
$IndexFileExt = $GLOBALS["IndexFileExt"];
$handle=opendir($p);
if ($p==".") $path = "";
else $path = $p."/";
while ($file = readdir($handle))
{
$d = filetype($path.$file);
if ((($d=='file')||($d=='dir'))&&($file!='.')&&($file!='..'))
{
$pf = $path.$file;
//echo "[".$d."]".$pf."<br>";
if ($d=='dir')
{
if (!(strpos($FilterDir, "|".$pf."|")))
{
DealFP($pf);
}
}else{
$ext = "|".strtolower(substr($file, strrpos($file, ".")+1))."|";
if (strpos($IndexFileExt, $ext))
{
$d = filemtime($pf);
$dt = date("Y-m-d",$d)."T".date("H:i:s",$d)."+00:00";
addToXML($pf, $dt);
}
}
}
}
closedir($handle);
}
?>
随便起给名字**.PHP就可以了,放在根目录下,在后台的随便页面做个链接更新Google Sitemaps,以后就点这个链接,就OK了
1、将include复制到网站中的include目录。(这个我并未找到相关文件,而且这篇文章似乎也被原作者删除了)
2、修改数据库将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令: update dede_archives set ismake=2 并将ismake的默认值设置为 2即伪静态。将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令: update dede_arctype set isdefault=-1 并将isdefault的默认值设置为 -1即动态。
3、加入服务器重写规则,在根目录新建一个.htaccess
php_value session.use_trans_sid 0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+).html$ plus/view.php?aid=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+)_([0-9]+).html$ plus/view.php?aid=$2&pageno=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+)_([0-9]+).html$ plus/list.php?typeid=$2&PageNo=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+).html$ plus/list.php?typeid=$2 [L]
4、调整完毕后到DEDE后台管理程序中,更新一下首页,完成。
2、修改数据库将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令: update dede_archives set ismake=2 并将ismake的默认值设置为 2即伪静态。将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令: update dede_arctype set isdefault=-1 并将isdefault的默认值设置为 -1即动态。
3、加入服务器重写规则,在根目录新建一个.htaccess
php_value session.use_trans_sid 0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+).html$ plus/view.php?aid=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+)_([0-9]+).html$ plus/view.php?aid=$2&pageno=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+)_([0-9]+).html$ plus/list.php?typeid=$2&PageNo=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+).html$ plus/list.php?typeid=$2 [L]
4、调整完毕后到DEDE后台管理程序中,更新一下首页,完成。
帮别人写了一些测试用的SEO的站点,用的工具是DEDECMS3.1,当时找想关的CMS程序就花了很多心思,开始用的是国外的几个,都不顺手,在别人的博客看到了有人推荐DEDECMS,下了一个用用,经过小小的努力,当然也是因为有压力(我这个人没点压力什么都做不好),掌握了一些SEO优化技巧,大家一起分享一下吧!
所谓SEO技巧,这里要说的不是标签之类的,是URL,不知道大家是否留意过这个。 DEDECMS,提供了几种生成URL的方法,把它叫做“文章命名规则”,有这几种:{Y}、{M}、{D},{timestamp},{aid},{pinyin}, {py},{typedir},{cc}这几种,大家常用哪些呢?在DEDECMS的论坛上,看见有人寻问用{pinyin}的方法,如何去掉文章的 ID,一直没有人回复,也不知道那位兄弟解决了没,但是这里有更好的方法命名后的地址如:http: //www.xxx.com/xxx/dkofkvom.html,类似这种随机数的样子,并且去掉了\"-""_"之类的字符,想知道吗,打开DW,与我一起动手改吧!
首先打开,include\inc_channel_unit_functions.php,在56行左右,$articleRule = str_replace("{py}",GetPinyin($title,1)."_".$aid,$articleRule);改成$ articleRule = str_replace("{py}",GetPinyin($title,1),$articleRule);也就是去掉."_".$aid.
然后在include\inc\inc_fun_funAdmin.php中,把第一个函数function SpGetPinyin($str,$ishead=0,$isclose=1)下面的FOR循环修改为如下:
for($i=0;$i<24;$i++){
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "";
}else if( eregi("[a-z]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= ""; }
}
这两部都做完之后,把“文章命名规则”写为{typedir}/{py}.html,测试一下你的文章URL吧!是不是很SEO。
所谓SEO技巧,这里要说的不是
首先打开,include\inc_channel_unit_functions.php,在56行左右,$articleRule = str_replace("{py}",GetPinyin($title,1)."_".$aid,$articleRule);改成$ articleRule = str_replace("{py}",GetPinyin($title,1),$articleRule);也就是去掉."_".$aid.
然后在include\inc\inc_fun_funAdmin.php中,把第一个函数function SpGetPinyin($str,$ishead=0,$isclose=1)下面的FOR循环修改为如下:
for($i=0;$i<24;$i++){
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "";
}else if( eregi("[a-z]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= ""; }
}
这两部都做完之后,把“文章命名规则”写为{typedir}/{py}.html,测试一下你的文章URL吧!是不是很SEO。
这是我自己原创改的,因为我发现网上流传的是错误的,代码改动错误,文件位置错误。
1.如何修改默认发布为动态页;[有人成功了,我似乎无效]
这个其实很简单,会改html就可以了!把dede/templates文件夹打开,用编辑器打开article_add.html,找到
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″ checked="checked">
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″>
仅动态浏览</td>
修改为:
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″>
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″ checked="checked">
仅动态浏览</td>
刷新一下发布文章页面看看可以了不!用DW可以很直观的修改。
2.如何批量修改动态发布为静态生成,或者反过来修改。
用phpmyadmin打开dede_dede_archives 这个表
ismake这个字段就是我们要修改的对象。
运行sql语句:
UPDATE dede_archives SET ismake = ‘-1′ 修改所有文档为动态浏览
UPDATE dede_archives SET ismake = ‘1′ 修改所有文档为静态发布
这样就可以了
1.如何修改默认发布为动态页;[有人成功了,我似乎无效]
这个其实很简单,会改html就可以了!把dede/templates文件夹打开,用编辑器打开article_add.html,找到
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″ checked="checked">
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″>
仅动态浏览</td>
修改为:
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″>
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″ checked="checked">
仅动态浏览</td>
刷新一下发布文章页面看看可以了不!用DW可以很直观的修改。
2.如何批量修改动态发布为静态生成,或者反过来修改。
用phpmyadmin打开dede_dede_archives 这个表
ismake这个字段就是我们要修改的对象。
运行sql语句:
UPDATE dede_archives SET ismake = ‘-1′ 修改所有文档为动态浏览
UPDATE dede_archives SET ismake = ‘1′ 修改所有文档为静态发布
这样就可以了
为了更好地实现SEO功能,为了广大的DEDE爱好者不再大伤脑筋,这两天抽了点时间把此功能弄出来跟大家分享。
以下修改能实现DEDE自定义网页文件名的功能,例如:
zi-ding-yi.html/zidingyi.html/defined-pagename.html/自定义某某某.html 等 (注意:Unix类系统不支持中文url。)
(反正你填什么就是什么,除了短横杠连词符号 -,最好别乱填其它特殊符号特别是单、双引号、空格等,以免出错)。
如果你不填自定义文件名,则默认为文章的aid,如:
138.html/65.html 等。
以下皆以文章模型为例作修改。强烈建议初学者在对文件进行修改前备份之。
以下为针对 DEDE V5 的修改:
以下修改能实现DEDE自定义网页文件名的功能,例如:
zi-ding-yi.html/zidingyi.html/defined-pagename.html/自定义某某某.html 等 (注意:Unix类系统不支持中文url。)
(反正你填什么就是什么,除了短横杠连词符号 -,最好别乱填其它特殊符号特别是单、双引号、空格等,以免出错)。
如果你不填自定义文件名,则默认为文章的aid,如:
138.html/65.html 等。
以下皆以文章模型为例作修改。强烈建议初学者在对文件进行修改前备份之。
以下为针对 DEDE V5 的修改:
dedecms在技术支持方面确实做得不够好。至少管理人员不够细心。
首页登录验证码的问题出现很长时间了。一直没人给出最细致的解答方法(针对如何修改源代码删除验证码一说)。我到最后还是在落伍者上找到的。
方法如下:
打开:/member/index_do.php
删除代码(共5处)
if(strtolower($vdcode)!=$svali || $svali==""){
ShowMsg("验证码错误!","-1");
exit();
}
再剩下就是修改模板了
现在dede数据只要超过10w效率就开始下降。到了50w。简直跑不动
看了2007的改进列表也没有改进这个问题。不过blt已经正式成立公司,08版本应该会改进的
于是只能自己下手改动。越改越头痛。于是基本重写了影响效率的几个类



2008/12/28 12:39, 



