dede二次开发实例

上传人:第*** 文档编号:31881588 上传时间:2018-02-09 格式:DOC 页数:26 大小:594KB
返回 下载 相关 举报
dede二次开发实例_第1页
第1页 / 共26页
dede二次开发实例_第2页
第2页 / 共26页
dede二次开发实例_第3页
第3页 / 共26页
dede二次开发实例_第4页
第4页 / 共26页
dede二次开发实例_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《dede二次开发实例》由会员分享,可在线阅读,更多相关《dede二次开发实例(26页珍藏版)》请在金锄头文库上搜索。

1、织梦 DedeCms 二次开发实例织梦|DedeCms 系统关联到新浪微博教程最近注册了新浪微博,发现特别有意思,发现里面有一个工具可以关键到站外的博客站点,这样每当有更新,微博就会自动更新啦。于是把自己用织梦做的站网址写进去,解决提示:无法关联,然后用填了一个用 wp 做的站,提示关联成功!通过对比得知,新浪微博是利用 feed 找到更新文章的。只要给他指定 feed 地址就可以成功关联啦。现在开始动手简单修改一下织梦的模板,由于织梦不能生成全站的 xml 文件,所以要先建立生成全站 XML的 php 程序。1,建立 feed.phpSetTemplet($cfg_basedir . $cf

2、g_templets_dir . /wodede_com/feed.htm); header(Content-type:application/xml); $pv-Display(); ?以上要注意的是修改模板的路径,确保在模板跟目录能够找到 feed.htm2,建立 feed.htm 模板文件 dede:global.cfg_webname/dede:global.cfg_basehost/dede:global.cfg_description/zh-cndede:global.cfg_webname/dede:global.cfg_adminemail/dede:arclist row=6

3、0 col=1 titlelen=100 orderby=pubdatehttp:/field:arcurl/field:writer/field:typename/field:pubdate function=strftime(%a, %d %b %Y %H:%M:%S +0800,me)/http:/field:arcurl/dede:arclist需要注意的是,别忘了把我的网址改成你自己需要的。3,修改 index.htm 主页模板由于新浪微博只能验证网址,不能写完整路径,比如我写的是:http:/ 中间加入下面的代码 通过以上方法就可以成功关联新浪微博了。织梦二次开发 DEDECMS5

4、.7 网站软件模块增加插入图片功能第一步:在 include/ckeditor 文件夹中有一个 fck 的配置文件 ckeditor.inc.php 文件,打开后看到里面有 4 种配置,软件介绍那个是调用的 Small 的配置,那么只要我们修改一下这个配置就可以了如下:原配置为: $toolbarSmall = array(array( Source,-,Templates),array( Cut,Copy,Paste,PasteText,PasteFromWord,-,Print),array( Undo,Redo,-,Find,Replace,-,SelectAll,RemoveForma

5、t),array( Bold,Italic,Underline,Strike,-),array( Table,HorizontalRule),array( Link,Unlink,Anchor),/,array( Styles,Format,Font,FontSize),array( TextColor, BGColor);可以在里面加上添加图片按钮的配置“image”在上面加上“array(Image),”即可,修改后如下:$toolbarSmall = array(array( Source,-,Templates),array(Cut,Copy,Paste,PasteText,Paste

6、FromWord,-,Print), array( Undo,Redo,-,Find,Replace,-,SelectAll,RemoveFormat),array( Bold,Italic,Underline,Strike,-),array(Image),array( Table,HorizontalRule),array( Link,Unlink,Anchor),/,array( Styles,Format,Font,FontSize),array( TextColor, BGColor);或者加在你想要的任意位置都可以,如果想要添加其他的按钮,方法类似不再重复叙述织梦 DedeCMS 二

7、次开发注意事项 :header()前输出字符导致 header()跳最近为了开发一个项目,不得不再去重温 php 了,今天把一个在二次开发中的注意事项和大家分享一下,这个是在论坛找到资料,结果我在开发的也同样遇到这个问题,为了大家不重蹈覆辙了,今天写个注意事项和大家一起分享: 织梦二次开发首先要排查的是语法错误(如果当 php.ini 里设置是不显示任何错误的话,语法错也会导致一片空白) ,这个文件是 dede/catalog_do.php(怎么知道是这个文件呢,很简单,在那个一片空白的页面上,点右键,看属性,就有地址 URL 和传递的参数) ,我把一行 die(aa); 放在了代码第一行,这

8、个做法就可以测试有无语法,因为语法错不单可以发生在 catalog_do.php 文件本身,还可以发生在 catalog_do.php 文件所引用的文件里(包括这些文件里再引用的任何一级文件里) ,所以如果这个第一行 die(aa); 也不能执行,就必然是语法错。因为能输出 aa,也就是说语法没有错,就必定是某种程序上的逻辑错。然后进一步寻找逻辑错误发生的文件,这就需要跟踪代码的所执行到的地方,由于没有任何提示,也还是利用 die(aa);把这一行往下挪到 catalog_do.php 文件的 include、require 等语句之后,如果不能执行,说明在include、require 所引

9、用的文件里,代码执行就停止了,反之说明那些文件执行是正常的。这一步,依然能显示 aa,说明错误是发生在 catalog_do.php 文件里(如果是发生在其他所引用的文件里,就用此法打开那些文件去如是调试)然后再此文件里一步步寻找发生错误的具体代码段,首先要看链接此文件时候的参数(在那个一片空白的页面上,点右键,看属性,就有地址 URL 和传递的参数) ,而点击“内容”时链接此文件的 URL 为catalog_do.php?cid=3&dopost=listArchives(它的意思,我们可以猜测它 cid 是栏目 ID,而最重要的是dopost=listArchives 这个参数,因为我们在

10、 catalog_do.php 文件里,可以看到接下来的代码,就是一连串的 if (dopost=.) else if(dopost=.) else.的判断,它就是让程序运行,根据过来的 dopost=参数的不同,进入不同的处理).好,我们就直接找到 if (dopost=listArchives) 这里,把 die(aa); 放到紧接着它的第一行,看看还能否输出 aa,如果可以输出,说明程序正确进入了目标程序段,否则就说明 dopost=listArchives这个判断没有达到预期的效果(如果是这个情况,你就要好好对照刚才的 URL 和这个 dopost=listArchives,有没有写错

11、参数名、大小写有没有弄错了,还有就是 dopost 值有没有在前面就被改变了,最常见的错就是类似写成了dopost=listarchives,或者在前头某个判断里写成了 dopost=.) ,好,依然能输出 aa,说明程序也进来这里了。然后继续寻找发生错误的代码行,继续挪动 die(aa); 的玉步,每次挪动完,刷新那个空白页面,看看能否输出 aa(这里有技巧,想快,就不要逐行挪动,而是利用折半查找,或者在关键代码前后插入,这个就需要比较强的代码阅读能力和一定的编程经验了,不展开了).最后,我发现在 header(location:$gurl?channelid=$channelid 这一行之

12、前能输出 aa,这一行之后也能输出 aa,而我是很清楚,这一行本该跳转到某个指定的页面上的,后面不应该输出 aa,同时我也知道造成这个问题,通常是因为程序执行在之前就输出过字符(如果你不清楚,就查 google 或手册)!接下来的工作,就是找哪个文件有这个输出了,天啊,这太难找了!于是我换了另外一个做法“修改排查法”,我在本地把我那些修改的代码,也换上去,发现没有出现这样的问题,也就是说,我写的文件没有问题。然后我把客户所有文件,都列出来,按修改时间排序,并询问了客户最后可以正常使用这个功能的时间,发现了一堆在此时间之后修改的 php 文件,除去我修改的那些文件,就剩下两个文件了,其中一个是i

13、nclude/extend.func.php 文件.我很清楚这个文件是一个 dede 提供给客户做函数扩展的文件,它被 common.func.php 所引用,而common.func.php 又是被全站所有文件所引用的文件! 于是我打开这个文件,赫然在最后?之后,有两个空格一个空行! 内容来自织梦二次开发把这些空格空行删除,至此功能就全部正常了(包括我在模块表里自定义了一个模块链接,它在这个错误的情况下,不能显示在模块列表里,现在也正常了)!以上文字,对于初级 PHPer,可以学习领会一点点 PHP 调试技术;对于 PHP 已经比较熟的,而对 DEDE 还有有点陌生的,这里提供的一条经验就是

14、:修改 dede 模板的所有 PHP 文件,千万不要在头尾两行的 之外,写入任何字符,包括空格和空行!织梦模板制作 dedecms 模板网站 memberlist 标签调用自定义会员信息织梦模板利用 memberlist 标签调用自定义会员模型的会员信息,这个问题找了很久,官方论坛提问过,百度搜索过直接今天才找到如何解决。其实这个也属于织梦二次开发的范畴.不同的会员模型,是通过表:_member 中的 mtype 字段来区分的,操作步骤如下:打开 includetaglibmemberlist.lib.php,如下操作:找到以下这句代码:$attlist=row|6,iscommend|0,o

15、rderby|logintime,signlen|50;DEDECMS 模板修改为:$attlist=row|6,iscommend|0,orderby|logintime,signlen|50,type;找到以下这句代码:if($iscommend 0) $wheresql .= AND mb.matt=$iscommend ;在下面增加:if($type != ) $wheresql .= And mb.mtype=$type;copyright 以上操作也可以通过网站后台直接修改,步骤:后台模板模板管理标签源码管理找到:memberlist.lib.php,点击后面的编辑进行修改。标签调用的时候用:type=会员模型名称,调用。示例: DEDE 模板dede:memberlist type=企业 row=8 signlen=18 field:uname/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号