[必学]的织梦模板开发58个技巧.doc_第1页
[必学]的织梦模板开发58个技巧.doc_第2页
[必学]的织梦模板开发58个技巧.doc_第3页
[必学]的织梦模板开发58个技巧.doc_第4页
[必学]的织梦模板开发58个技巧.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

必学的织梦模板开发58个技巧时间:2012-10-17 21:40来源:仿站网作者:点击:417次必学的织梦模板开发59个技巧 仿站网 转发织梦仿站标签技巧 织梦二次开发技巧。1.网站标题(优化): 仿站网dede:field.seotitle/_dede:global.cfg_webname/2.当前名称:dede:field name=typename/3.导航条(父类、子类): dede:channel type=top row=8 currentstyle=typename field:typename/ /dede:channel4.面包屑:dede:field name=position/ /出来的效果是:首页 新闻动态 dede:field name=position runphp=yesme=substr(me,0,-2);/dede:field /出来的效果是:首页 新闻动态 仿站网生成的代码为 首页 新闻动态函数的位置 include/typelink.class.php 参考网站:/2011060216.shtml注意:在列表页的时候 dede:field name=position/ 效果是 首页 联系我们 在封面页的时候 dede:field name=positon/ 效果是 首页 联系我们 少一个后边的 仿站网删除当前位置下的超链接,只保留文字.方法1:文件includearc.archives.class.php文件includearc.listview.class.php文件includearc.partview.class.php把三个文件里面的这句Fieldsposition = $this-TypeLink-GetPositionLink(true);都改成Fieldsposition = $this-TypeLink-GetPositionLink(false);方法2:dede:field name=position function=strip_tags(me)/或者dede:field name=position function=html2txt(me)/参考网站:/Byrd/archive/2011/04/27/2030458.html 仿站网5.关于列表页和内容页的分页代码和css样式(可以直接拿来使用)ul.pagesizewidth:620px; margin:20px auto 10px; text-align:center; padding-bottom:10px;ul.pagesize apadding:5px; margin-right:5px; color:#333333; text-decoration:none;ul.pagesize span.thisclasspadding:5px; margin-right:5px; color:#fc0;ul.pagesize span.pageinfo列表页的php页面:include/arc.listview.class.php 分页代码文章页的php页面:include/arc.archives.class.php 分页代码也可以用文件夹下的各种酷炫分页效果。 6.控制标签的字数(如description或者info或者body)field:description function=cn_substr(me,80)/field:body function=cn_substr(me,80)/不足显示全文,超过显示省略号.field:title function=(strlen(me)26 ? cn_substr(me,26).:me)/7.调用时间函数(多用于新闻列表的时间)field:pubdate function=MyDate(Y-m-d H:i,me)/ 仿站网pubdate 更新时间(发布时间)-可以修改senddate 出版时间-不可更改 仿站网8.替换等html标签的用法dede:field.body runphp=yes$a=str_replace(div,p,me);$b=str_replace(,$a);me=str_replace( ,$b);/dede:field.body9.自定义表单增加时间的方法后台显示:.修改dede/templets/diy_list.htm,42行 else后面加入if($fielddata1=datetime) $fields$field = GetDateTimeMk($fields$field);前台显示:.templets/plus/list_diyform.htm 在以下位置添加上面的代码其它附件;-在这个的后面添加以下代码。保存就OKif($fielddata1=datetime)$fields$field = GetDateTimeMk($fields$field);写在静态页面: 提交时间: function chandeTime() var date = new Date(); var year = date.getFullYear(); var month = date.getMonth()+1; /js从0开始取 var date1 = date.getDate(); document.getElementById(txtShowTime).value=year+-+month+-+date1+ +date.toLocaleTimeString() ;window.setTimeout(chandeTime();,1000); window.onload = chandeTime();10.织梦的后台添加菜单选项卡dede/templets/index_menu2.htm加入一个选项卡,我放在了141行,在那个if判断权限的条件外,这样可以让编辑人员看到其他这里注意你的id,link9不要和上边的id重复,然后 后边的js方法ShowMainMenu中也要传入9,是对应的,然后是下一步,还是这个页面,大概下边找到一些空的div,都是些id是ct加数字的,加上:这里ct后边的数字对应你上边的数字接下来找到 dede/inc/inc_menu.php 打开在最下边的一串-符号上边,加上 就可以在后台的 “其他”-“管理身份证” 中访问到你新加的功能了11.把数据保存到数据库主表 dedecp_archives 时出错,请把相关信息提交给DedeCms官方(解决方法) 登陆系统后台系统SQL命令行工具,运行下面代码Alter TABLE dede_archives ADD COLUMN voteid int(10) NOT NULL DEFAULT 0 AFTER mtype;运行后更新下缓冲,重新发布文章,成功解决了。12.关于js文件由于编码的不同(gb2312或者utf-8)导致特效不出来的解决方案。把JS文件重新粘贴到新建好的JS文档里就OK啦13.一键更新四国语言版本的织梦问题。中文(不用)英文En(列表下选择En-index.htm模板)韩文Korean(列表下选择H-index.htm模板)一键更新就自动生成 index.html了。14.dedecms5.7 版后台编辑器无法显示问题。在系统设置里.Html编辑器选项(目前仅支持fck): fckHtml编辑器选项(目前仅支持fck): ckeditor 仿站网15.织梦DedeCms限制文章页上一篇、下一篇文章标题字数。给他们增加链接(直接用archives.class.php)编辑打开include/arc.archives.class.php文件查找:$this-PreNextpre = 上一篇:$preRowtitle ;在这一行上面加上以下代码$preRowtitle=cn_substr($preRowtitle,30);/最多显示15个汉字查找:$this-PreNextnext = 下一篇:$nextRowtitle ;在这一行上面加上以下代码$nextRowtitle=cn_substr($nextRowtitle,30);/最多显示15个汉字然后再重新生成所有页面即可。参考网址:/?p=902修改织梦文档标题长度限制1、进入后台-系统-系统设置-系统基本参数-其他选项-文档标题最大程度改为你要的长度原默认是60(这里改为了200)2、登陆数据库,改数据库表dede_archives表里面的title字段,原默认是60,(这里改为200).16.织梦一个字数代表几个字节。GBK 一个汉字两个字节utf-8 3(汉字数-2)+1 3(汉字数-2)+1+217.修改织梦列表、文章默认的命名规则。I。文章命名:(修改完添加栏目就能看见。批量修改)include/common.inc.php/文档的默认命名规则$art_shortname = $cfg_df_ext = .html;$cfg_df_namerule = typedir/Y/MD/aid.$cfg_df_ext;修改成 $cfg_df_namerule = posts/aid.$cfg_df_ext;列表命名:dede/templets/catalog_add.htmtypedir/list_tid_page修改成自己需要的即可II。直接修改高级选项里边的文章命名规则(单独修改)III。系统-系统基本参数-其它选项-是否允许用目录作为文档文件名(文档命名规则需改为:typedir/aid /index.html)点是。然后把栏目文章命名规则改为typedir/aid/index.html 生成的文章目录为:例 /ceshi/135/参考(/php/cms/1155.html)/eatpeach/blog/item/5b353f4ee3efb5c6d0c86a58.html18.底层模板的修改在 include/typelink.class.php$typelink = .$typeinfostypename.;19.关于文章页点击次数的两种调用。.dede:field.click/ 静态(一般列表页用).次 动态(一般文章页用) 仿站网20.给近三天(或当天)发布的文章标题显示红色或加上new字或new小图片等。 仿站网field:pubdate function=MyDate(Y-m-d H:i:s,me)/ 仿站网field:pubdate runphp=yes$ntime = time();$oneday = 3600 * 24;if($ntime - me)$oneday) me = ;else me = ;/field:pubdatefield:title/ 仿站网field:pubdate runphp=yes$ntime = time();$oneday = 3600 * 24;if($ntime - me)$oneday) me = new!;else me = ;/field:pubdate给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等1、=红色的日期=field:pubdate runphp=yes$a=.strftime(%m-%d,me).;$b=strftime(%m-%d,me);$ntime = time();$day3 = 3600 * 24 * 3;if($ntime - me) $ntime-$day3) me = (new);else me = $aa;/field:pubdate3、=加new.gif小图片=field:pubdate runphp=yes$aa=strftime(%m-%d,me);$ntime = time();$tagtime = me;$day3 = 3600 * 24 * 3;if($tagtime $ntime-$day3) me = .$aa;else me = $aa;/field:pubdate注意 :当天的去除*3 :img src=new.gif /中不能用双引号,否则不行=field:pubdate runphp=yesif(time()-me)(60*60*24)me= .strftime(%H:%M,me).;else me=strftime(%m-%d,me); /field:pubdate21.dedecms5.7修改文章内容的同时不修改发表日期时间。/dede/templets/article_edit.htm365行左右把$nowtime = GetDateTimeMk(time();改成$nowtime = GetDateTimeMk($arcRowpubdate);关于织梦将文章审核时间与发布日期同步的修改方法/s/blog_80a856e50100vudp.html22.织梦后台 栏目内容里边的列表 的更新时间 按照修改的来(DEDE后台文章排序按文章发布时间) 修改/dede/content_list.php 文件查找$orderby = empty($orderby) ? id : eregi_replace(a-z0-9, , $orderby);修改为$orderby = empty($orderby) ? pubdate : eregi_replace(a-z0-9, , $orderby);到后台模版目录下 修改 /dede/content_list.htm 文件查找dede:field.senddate function=GetDateMk(me)/修改为dede:field.pubdate function=GetDateMk(me)/ 仿站网23.infolen简介控制字数没有效果的解决方法(description等同于infos)在列表页 description=infos 在文章页 只用description不用infos 仿站网.字数变少 .底层标签field:description/ 改成field:infos/.field:description function=cn_substr(me,66)/.字数变多修改 系统-系统基本参数-其它选项 里的自动摘要长度 如改为 600修改 数据表 dede_archives下的 description的结构 把varchar(250)改成varchar(600)修改 dede/article.edit.php第113行 $description = cn_substrR($description,250);修改为 $description = cn_substrR($description,600);或者$description = $description;24.织梦留言板的研究通过自定义表单(可在前后台查看,缺点是管理员不能回复)dedecms自定义表单模板:templets/plus/view_diyform.htm内容模板templets/plus/post_diyform.htm发布模板templets/plus/list_diyform.htm 列表模板1. 建个自定义表单2. 点击 前台预览 - 发布信息3. 查看源码 找到form 开始 及 之间的代码 复制下来4. 这里我们测试 把他放到首页的模版里: 放在dede:include filename=head.htm/(仅测试玩)参考链接:/blog/static/167685605201051251927196/ 拓展:目前所做的留言一般用自定义表单.如(科瑞达:/kefu/3/;威达龙:/tsjy /;三夏:/China/contact/2/;新宇酒店:http: //a/lxwm/2/;)在后台选项卡中添加 留言菜单 (详见问题10)可直接调用文件下的 index_menu2.htm和 inc_menu.php 通过织梦自带的留言簿模块(可查看,也可回复)先安装留言簿模块。/plus/guestbook.php 模板 /templets/plus/guestbook.htm 自己修改模板就行.或者手写一个模板 form 提交的时候 到 /plus/guestbook.php 类似guestbook.htm 格式来.插件评论啦 微博、QQ、人人直接评论 能用Q登陆发布的留言(互联网那点事)http:/pinglun.la/ 在其注册一个号 账号: 密码:111111插入类似这种代码: 织梦自带的评论见文件夹下的ajax.htm放在默认的模板下ajaxfeed.css放在templetsdefaultstyle下调用评论插件:dede:include file=ajaxfeedback.htm /feedback功能说明:用于调用最新评论dede:feedbackfield:username function=(me=guest ? 游客 : me)/ 对 field:title/ 的评论: field:msg /dede:feedback织梦首页dede:feedback row=5 titlelen=24 infolen=80 field:username function=(me=guest ? 游客 : me)/ 评论 field:title/ field:msg/ /dede:feedback25.给自定义表单添加验证码.首先找到 /plus/diy.php在头部引入文件require_once(DEDEINC./membermodel.cls.php);然后找到elseif($do = 2)这里,加入验证代码/验证码验证$svali = GetCkVdValue(); if(preg_match(/1/,$safe_gdopen) if(strtolower($vdcode)!=$svali | $svali=) ResetVdValue(); ShowMsg(验证码错误!, -1); exit(); .在你要引入自由表单的模板页面中加入验证码 看不清? 点击更换关于自定义表单怎么在模板页中使用,自定义表单怎么验证,就不再说了设置自定义表单中的字段为必填项.php验证在plus/diy.php的第40行下加/增加必填字段判断if($required!=)if(preg_match(/,/, $required) $requireds = explode(,$required); foreach($requireds as $field) if($field=) showMsg(带*号的为必填内容,请正确填写, -1); exit(); else if($required=) showMsg(带*号的为必填内容,请正确填写, -1); exit(); /end.在模板的表单增加 参考网站:/dedecms/2845.html总结自定义表单(发布留言验证码,发布日期,验证必填项) 9 24 25 26.用field调用站点根网址 插件 评论啦使用 dede:global.cfg_basehost/ field:global name=cfg_webname/ 例:/category/collection列表页:dede:listdocument.write()/dede:list 仿站网文章页:document.write()27.安装织梦的时候 GD库不支持GD是php的图片扩展,是用来操作图片的,平时用的验证码,图片上打水印都得gd库支持修改dede/login.php和dede/templets/login.htm 判断后台验证码login.php 67行 if 下边注释掉/*ResetVdValue(); ShowMsg(验证码不正确!,login.php,0,1000); exit; else */login.htm 27行 注释掉!-验证码:看不清? -28.织梦列表页(自定义模型,附加表字段) 仿站网列表页:dede:list pagesize=3field:xinxi/field:xm/dede:list织梦的内容页:可以直接使用 dede:field.xinxi/与dede:field.xm/文章页:用arclist调用于附加表字段的方法:要获取附加表内容,必须符合两个条件1、指定 channelid 属性2、指定要获得的字段 addfields=字段1,字段如:dede:arclist addfields=filetype,language,softtype row=8 channelid=3field:textlink / - field:softtype /dede:arclist29.织梦的首页、封面页arclist分页标签示例首先必须在首页的前面加上:必须引入以下javascript代码:function multi(pagenum,tagid)var taget_obj = document.getElementById(tagid);var taget_obj_page = document.getElementById(page_+tagid);myajax = new DedeAjax(taget_obj,false,false,);myajax.SendGet2(/plus/arcmulti.php?mtype=0&pnum=+pagenum+&tagid=+tagid);myajax = new DedeAjax(taget_obj_page,false,false,);myajax.SendGet2(/plus/arcmulti.php?mtype=1&pnum=+pagenum+&tagid=+tagid);DedeXHTTP = null;在arclist标签中必须含有tagid与pagesize参数。 第一个是缓存名,第二个是单页条数;例如:dede:arclist tagid=index pagesize=5field:title/field:info/./dede:arclist必须存在arcpagelist标签,且必须声明缓存参数tagid且缓存参数与arclist中tagid保持一致。例如:dede:arcpagelist tagid=index/现在贴上一个完整代码供大家测试参考:function multi(pagenum,tagid)var taget_obj = document.getElementById(tagid);var taget_obj_page = document.getElementById(page_+tagid);myajax = new DedeAjax(taget_obj,false,false,);myajax.SendGet2(/plus/arcmulti.php?mtype=0&pnum=+pagenum+&tagid=+tagid);myajax = new DedeAjax(taget_obj_page,false,false,);myajax.SendGet2(/plus/arcmulti.php?mtype=1&pnum=+pagenum+&tagid=+tagid);DedeXHTTP = null;dede:arclist tagid=index pagesize=5field:title/field:info/./dede:arclistdede:arcpagelist tagid=index/30.织梦arclist 列表页调出的是 当前栏目下的文章。调用所有栏目下的文章,给arclist一个属性 typeid=top31.织梦的tag标签(/?p=1501) 后台函数/include/taglib/tag.lib.php I.dede:tag sort=new getall=0field:tag / /出来的效果不带数字 seo/dede:tagII.dede:tag row=6 sort=new/ /出来的效果带数字1(1)、选择你所要加页面的模板,一般是在首页index.htm 加上如下代码Tags标签云dede:tag row=45 getall=1 sort=hotfield:tag /dede:tag、在/include/common.func.php 中加入如下函数。function getTagStyle() $minFontSize=8; /最小字体大小,可根据需要自行更改 $maxFontSize=18; /最大字体大小,可根据需要自行更改 return font-size:.($minFontSize+lcg_value()*(abs($maxFontSize-$minFontSize).px;color:#.dechex(rand(0,255).dechex(rand(0,196).dechex(rand(0,255); tag标签静态化(插件)、在DEDE网站根目录,建立“tag”目录(小写)、在DEDE后台SQL运行器里,执行以下一条SQL:ALTER TABLE dedecp_tagindex ADD maketime INT( 10 ) UNSIGNED NOT NULL DEFAULT 0;、增加文件:templets/default/list_tag.htm /可从文章列表页复制修改templets/default/index_tag.htm /可从tag.htm复制dede/makehtml_tag_action_list.phpdede/makehtml_tag_action_index.phpdede/makehtml_tag.phpdede/templets/makehtml_tag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论