Dede二次开发程序详解(dede学习必备二)

其它重要文件 dede/inc/inc_archives_functions.php 发文章时一些远程抓图、自定义模型字段列出之类函数都在这个文件 dede/inc/inc_batchup.php DelArc($aid,$onlyfile=false,$channelid=0) 删除某个文档得函数 dede_addonarticle 附加文章表 aid int(11) 文

其它重要文件 
dede/inc/inc_archives_functions.php 
发文章时一些远程抓图、自定义模型字段列出之类函数都在这个文件 


dede/inc/inc_batchup.php 
DelArc($aid,$onlyfile=false,$channelid=0) 
删除某个文档得函数

  dede_addonarticle

  附加文章表

 

  aid

  int(11)

  文章编号

 
 

  typeid

  int(11)

  分类栏目编号

 
 

  body

  mediumtext

  文章内容

 
 

  dede_addonflash

  附加Flash表

 
 

  aid

  int(11)

  FLASH编号

 
 

  typeid

  int(11)

  分类栏目编号

 
 

  filesize

  varchar(10)

  文件大小

 
 

  playtime

  varchar(10)

  播放时长

 
 

  flashtype

  varchar(10)

  作品类型

 
 

  flashrank

  smallint(6)

  作品等级

 
 

  width

  smallint(6)

  影片宽度

 
 

  height

  smallint(6)

  影片高度

 
 

  flashurl

  varchar(80)

  FLASH地址

 
 

  dede_addonimages

  附加图集表

 
 

  aid

  int(11)

  图集编号

 
 

  typeid

  int(11)

  分类栏目编号

 
 

  pagestyle

  smallint(6)

  表现方式(1单页显示 2分多页显示 3多行多列展示)

 
 

  maxwidth

  smallint(6)

  大图限制宽度

 
 

  imgurls

  text

  图片集内容(标签存放)

 
 

  row

  smallint(6)

  多列式参数(行)

 
 

  col

  smallint(6)

  多列式参数(列)

 
 

  isrm

  smallint(6)

  是否下载远程图片

 
 

  ddmaxwidth

  smallint(6)

  小图片宽度限制

 
 

  dede_addonsoft

  附加软件表

 
 

  aid

  int(11)

  软件编号

 
 

  typeid

  int(11)

  分类栏目编号

 
 

  filetype

  varchar(10)

  文件类型

 
 

  language

  varchar(10)

  界面语言

 
 

  softtype

  varchar(10)

  软件类型

 
 

  accredit

  varchar(10)

  授权方式

 
 

  os

  varchar(30)

  运行环境

 
 

  softrank

  int(11)

  软件等级

 
 

  officialUrl

  varchar(30)

  官方网址

 
 

  officialDemo

  varchar(50)

  程序演示地址

 
 

  softsize

  varchar(10)

  软件大小

 
 

  softlinks

  text

  软件下载链接列表

 
 

  introduce

  text

  软件介绍

 
 

  dede_addonspec

  附加专题表

 
 

  aid

  int(11)

  专题编号

 
 

  typeid

  int(11)

  分类栏目编号

 
 

  note

  text

  专题内容(仅存放标签代码)

 

管理员信息表及系统用户组管理表

  dede_admin管理员信息表

 
 

  ID

  int(10)

  自动编号

 
 

  usertype

  int(10)

  用户类型

 
 

  userid

  varchar(30)

  用户登录ID

 
 

  pwd

  varchar(50)

  用户密码

 
 

  uname

  varchar(20)

  用户笔名

 
 

  tname

  varchar(30)

  真实姓名

 
 

  email

  varchar(30)

  电子邮箱

 
 

  typeid

  int(11)

  负责频道(0表示全部)

 
 

  logintime

  datetime

  登录时间

 
 

  loginip

  varchar(20)

  登录IP

 
 

  dede_admintype

  系统用户组管理表

 
 

  rank

  smallint(6)

  组级别编号

 
 

  typename

  varchar(30)

  组名称

 
 

  system

  smallint(6)

  是否为系统默认组

 
 

  purviews

  text

  权限列表

 

  dede_arcatt文档自定义属性表

 
 

  att

  smallint(6)

  编号

 
 

  attname

  varchar(30)

  属性名称

 
 

  dede_archives

  文章表

 
 

  ID

  int(11)

  自动编号

 
 

  typeid

  int(11)

  所属主栏目编号

 
 

  typeid2

  int(11)

  所属副栏目编号

 
 

  sortrank

  int(11)

  文章排序(置顶方法)

 
 

  iscommend

  smallint(6)

  是否推荐

 
 

  ismake

  smallint(6)

  是否生成静态

 
 

  channel

  int(11)

  文章所属模型

 
 

  arcrank

  smallint(6)

  阅读权限

 
 

  click

  int(11)

  点击次数

 
 

  money

  smallint(6)

  消费点数

 
 

  title

  varchar(80)

  标题

 
 

  shorttitle

  varchar(36)

  简略标题

 
 

  color

  varchar(10)

  标题颜色

 
 

  writer

  varchar(30)

  作者

 
 

  source

  varchar(50)

  来源

 
 

  litpic

  varchar(100)

  缩略图

 
 

  pubdate

  int(11)

  录入时间

 
 

  senddate

  int(11)

  发布时间

 
 

  arcatt

  smallint(6)

  自定属性(att)

 
 

  adminID

  int(11)

  发布管理员ID

 
 

  memberID

  int(11)

  发布会员ID

 
 

  description

  varchar(250)

  摘要

 
 

  keywords

  varchar(60)

  关键词

 
 

  templet

  varchar(60)

  文档模板

 
 

  lastpost

  int(11)

  最近评论时间

 
 

  postnum

  int(11)

  评论数目

 
 

  redirecturl

  varchar(150)

  跳转网址

 
 

  mtype

  int(11)

  用户自定义分类

 
 

  userip

  varchar(20)

  用户IP

 
 

  locklikeid

  smallint(6)

  是否锁定相关文章

 
 

  likeid

  varchar(240)

  相关文章ID

 
 

  dede_arcrank

  阅读权限表

 
 

  ID

  int(10)

  自动编号

 
 

  rank

  smallint(10)

  权限等级

 
 

  membername

  varchar(20)

  等级名称

 
 

  adminrank

  smallint(10)

  管理等级

 
 

  money

  int(11)

  消费点数

 
 

  dede_arctype

  栏目管理表

 
 

  ID

  int(10)

  栏目编号(自动编号)

 
 

  reID

  int(10)

  父栏目编号

 
 

  topID

  int(10)

   
 

  sortrank

  smallint(6)

  排序编号

 
 

  typename

  varchar(30)

  栏目名称

 
 

  typedir

  varchar(100)

  栏目目录

 
 

  isdefault

  smallint(6)

  栏目列表选项(1链接到默认页 0链接到列表第一页 -1使用动态页)

 
 

  defaultname

  varchar(20)

  默认页的名称

 
 

  issend

  smallint(6)

  是否支持投稿

 
 

  channeltype

  smallint(6)

  频道类型

 
 

  maxpage

  int(11)

  保留

 
 

  ispart

  smallint(6)

  栏目属性

 
 

  corank

  smallint(6)

  浏览权限

 
 

  tempindex

  varchar(60)

  封面模板

 
 

  templist

  varchar(60)

  列表模板

 
 

  temparticle

  varchar(60)

  文章模板

 
 

  tempone

  varchar(60)

  单独页面模板

 
 

  namerule

  varchar(50)

  文章命名规则

 
 

  namerule2

  varchar(50)

  列表命名规则

 
 

  modname

  varchar(30)

  模板名称

 
 

  description

  varchar(200)

  栏目介绍

 
 

  keywords

  varchar(100)

  关键词

 
 

  moresite

  smallint(6)

  多站点支持

 
 

  siterefer

  smallint(6)

  多站点站点根目录属性

 
 

  sitepath

  varchar(60)

  多站点站点根目录

 
 

  siteurl

  varchar(60)

  多站点绑定域名

 
 

  ishidden

  smallint(6)

  是否隐藏栏目

 
 

  dede_area

  地区表

 
 

  eid

  int(11)

  地区编号

 
 

  name

  varchar(20)

  地区名称

 
 

  rid

  int(11)

  编号属性

 

  首页模板

  \templets\default\index.html

  文章频道首页

  \templets\default\index_article.htm

  文章列表页

  \templets\default\list_article.htm

  文章内容页

  \templets\default\article_article.htm

  图集频道首页

  \templets\default\index_image.htm

  图集列表页

  \templets\default\list_image.htm

  图集内容页

  \templets\default\article_image.htm

  图集详细页面

  \templets\plus\showphoto.htm

  软件频道首页

  \templets\default\index_soft.htm

  软件列表页

  \templets\default\list_soft.htm

  软件内容页

  \templets\default\article_soft.htm

  软件最终下载页

  \templets\plus\download_links_templet.htm

  动画频道首页

  \templets\default\index_flash.htm

  动画列表页

  \templets\default\list_flash.htm

  动画内容页

  \templets\default\article_flash.htm

  产品频道首页

  \templets\default\index_product.htm

  产品列表页

  \templets\default\list_product.htm

  产品内容页

  \templets\default\article_product.htm

  分类信息频道首页

  \templets\default\index_info.htm

  分类信息列表页

  \templets\default\list_info.htm

  分类信息内容页

  \templets\default\article_info.htm

  分类信息搜索页

  \templets\default\infosearch.htm

  专题列表页

  \templets\default\list_spec.htm

  专题内容页

  \templets\default\article_spec.htm

  

图书模块

  图书首页

  \templets\default\books_index.htm

  图书列表页

  \templets\default\books_list.htm

  图书搜索页

  \templets\default\books_search.htm

  图书内容页

  \templets\default\books_book.htm

  小说章节内容页

  \templets\default\books_story.htm

  漫画章节内容页

  \templets\default\books_photo.htm

  vip章节内容页

  \templets\default\book_member_err.htm

  

问答模块

  问答首页

  \ask\template\default\dede.htm

  问答列表页

  \ask\template\default\browser.htm

  问答内容页

  \ask\template\default\question.htm

  问答提问页

  \ask\template\default\post.htm

  问答内容维护页

  \ask\template\default\pos 
\ask\template\default\pos 
\ask\template\default\pos

  问答搜索结果页

  \ask\template\default\search.htm

  问答消息提示页

  \ask\template\default\showmsg.htm

  

其他功能与插件

  TAG列表页

  \templets\default\taglist.htm

  TAG内容列表

  \templets\default\tag.htm

  DIGG列表页

  \templets\default\digg.htm

  搜索结果页

  \templets\default\search.htm

  高级搜索页

  \templets\plus\heightsearch.htm

  评论页模板

  \templets\plus\feedback_templet.htm

  评论验证码确认页

  \templets\plus\feedback_confirm.htm

  评论JS内容页

  \templets\plus\feedback_templet_js.htm

  站点地图页

  \templets\plus\sitemap.htm

  RSS地图页

  \templets\plus\rssmap.htm

  RSS内容页

  \templets\plus\rss.htm

  投票页

  \templets\plus\vote.htm

  栏目JS文件

  \templets\plus\js.htm

  推荐文档信息页

  \templets\plus\recommend.htm

  友情连接提交页

  \templets\plus\flink-add.htm

  友情链接列表页

  \templets\plus\flink-list.htm

  留言板插件

  \templets\plus\guestbook.htm

  根目录  
/dede  管理后台目录 
/freelist  自由文档列表生成目录 
/html  默认文章生成目录 
/include  程序核心文件目录 
/member  会员管理目录 
/plus  插件及辅助功能目录 
/setup  安装目录 
/special  专题生成目录 
/templets  默认模板存放目录 
/upimg  上传下载文件保存目录 
base.css  基本样式表 
index.php  网站默认首页 
robots.txt  搜索控制文件 
  
/templets模板目录  
/dedecmsv31  3模板目录 
/default  默认模板目录 
article_article.htm  普通文章页面模板 
article_default.htm  一般文档页面模板 
article_flash.htm  flash页面模板 
article_image.htm  图集页面模板 
article_soft.htm  软件页面模板 
article_spec.htm  专题页面模板 
index.htm  网站首页模板 
index_article.htm  文章频道封面模板 
index_article_webart1.htm  
index_article_webart2.htm  
index_article_webart.htm  
index_default.htm  一般文档封面模板 
index_flash.htm  flash频道封面模板 
index_image.htm  图集频道封面模板 
index_soft.htm  软件频道封面模板 
list_article.htm  文章列表模板 
list_default.htm  一般文档列表目录模板 
list_flash.htm  flash文档列表模板 
list_free.htm  自由列表模板 
list_image.htm  图集列表模板 
list_soft.htm  软件列表模板 
list_spec.htm  专题列表模板 
/img  模板图片目录(含样式表) 
/plus  辅助插件模板目录 
download_links_templet.htm  下载链接模板 
feedback_confirm.htm  评论确认模板 
feedback_templet.htm  用户评论模板 
feedback_templet_js.htm  
flink-add.htm  友情链接添加模板 
flink-list.htm  友情链接列表模板 
guestbook.htm  留言本模板 
heightsearch.htm  高级搜索模板 
js.htm  
recommend.htm  推荐好友模板 
rss.htm  RSS的XML模板 
rssmap.htm  RSS订阅文件 
showphoto.htm  图片显示模板 
sitemap.htm  网站地图模板 
view_msg.htm  会员提示信息模板 
vote.htm  投票结果显示模板 
/system  系统模板目录 
channel_list.htm  栏目列表系统模板 
list_fulllist.htm  文档列表系统模板 
mynews.htm  站内新闻系统模板 
part_arclist.htm  文章列表系统模板 
part_autochannel.htm  分类栏目系统模板 
part_channelartlist.htm  包含文章列表的栏目系统模板 
part_imginfolist.htm  使用imginfolist标签调用的模板 
part_imglist.htm  使用imglist标签调用的模板 
part_type_list.htm  单个栏目的系统模板 
spec_arclist.htm  专题列表文章系统模板 
spec_list.htm  专题用模板 
tag_arclist.htm  
tag_fieldlist.htm  fieldlist用系统模板 
/system/channel  频道特殊底层模板目录 
channel_downlinkpage.htm  下载地址列表链接模板 
channel_downlinks.htm  下载地址列表模板 
channel_spec_note.htm  专题节点列表模板 
  
/include目录 程序核心目录  
config_base.php  环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。 
config_hand.php  系统配置文件。定义系统常用的配置信息定义,可从后台管理直接生成该文件。 
config_passport.php  通行证文件 
config_rglobals.php  检测系统外部变量 
config_rglobals_magic.php  同上 
inc_archives_view.php  用于浏览文档或对文档生成HTML 
inc_arclist_view.php  用于浏览频道列表或对内容列表生成HTML 
inc_arcmember_view.php  用于浏览会员发布的文档 
inc_arcpart_view.php  用于解析和创建全局性质的模板,如频道封面,主页,单个页面等 
inc_arcsearch_view.php  用于文档搜索 
inc_arcspec_view.php  用于浏览所有专题列表或对专题列表生成HTML 
inc_channel_unit.php  用户解析特定频道的附加数据结构信息 
inc_channel_unit_functions.php  系统共用函数集合 
inc_downclass.php  防采集随机字符串函数 
inc_freelist_view.php  用于对特定内容列表生成HTML 
inc_functions.php  可供用户使用的函数集合 
inc_imgbt.php  GetTypeidSelMember 
inc_memberlogin.php  用于用户登录及获得会员状态 
inc_photograph.php  用于处理系统中的图片,例如水印,缩略图等 
inc_photowatermark_config.php  图片处理参数定义 
inc_rss_view.php  用于浏览频道RSS或对RSS生成静态文件 
inc_separate_functions.php  SpGetArcList函数,用于获得文档列表 
inc_sitemap.php  用于生成网站地图 
inc_type_tree.php  用于选择栏目的目录树 
inc_type_tree_member.php  同上,会员使用 
inc_typelink.php  用于显示文章的位置和栏目位置等 
inc_typeunit_admin.php  用于频道管理时的一些复杂操作,主要用于后台 
inc_typeunit_menu.php  同上 
inc_userlogin.php  用于管理员登录 
inc_vote.php  用于管理投票 
jump.php  用于超链接跳转 
pub_charset.php  共用字符处理函数,GB/UTF-8/Unicode/BIG5等互换 
pub_collection.php  用于采集 
pub_collection_functions.php  采集用函数 
pub_datalist.php  后台管理用数据列表 
pub_datalist_dm.php  同上,不使用模板 
pub_db_mysql.php  用于操作数据库 
pub_dedehtml2.php  用于采集中的HTML解析 
pub_dedehtml.php  HTML解析器 
pub_dedetag.php  用于dede模板标签解析 
pub_  用于下载  后台程序扩展 
pub_splitword_www.php  织梦分词算法 
validateimg.php  验证码 
vdimgck.php  验证码 
/inc  共用函数目录 
inc_fun_funAdmin.php  获取拼音码等函数 
inc_fun_funString.php  html代码处理等函数 
inc_fun_SpGetArcList.php  获取文档列表SpGetArcList

  时间格式
{dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H:%M:%S","@me")' /}2007年1月1日 18:30:02
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")' /}2007-1-1 18:30:02
{dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H时%M分%S秒","@me")' /}2007年1月1日 18时30分02秒
{dede:field name='pubdate' function='strftime("%m-%d %H:%M:%S","@me")' /}1-1 18:30:02
{dede:field name='pubdate' function='strftime("%m-%d","@me")' /}1-1
%Y-年
%m-月
%d-日
%H-小时
%M-分
%S-秒
24小时内的时间显示红色..
[field:pubdate runphp='yes'] 
$a="<font color='#ff0000'$amp;>quot;$;
$b="</font$amp;>quot;$;
$c=strftime("%Y年%m月%d日 %H:%M:%S","@me");
$ntime = time();
$oneday = 3600 * 24;
if(($ntime - @me)$amp;else @me =$c;
[/field:pubdate]
最后更新时间
最后更新时间:{dede:tagname runphp='yes'}@me = date("Y-m-d H:i:s", time());{/dede:tagname}
XX天前
[field:pubdate runphp='yes'] 
$today = Floor(time()/(3600 * 24));
$senday= Floor(@me/(3600 * 24));
$updays = $today-$senday;
if($updays==0) @me = "今日";
else @me = $updays."天前";
[/field:pubdate]

  织梦系统中,分类信息模型属于独立单表模型的,他的调用标签为 ArcListsg 标签,而使用系统内置的Arclistsg 标签是无法调用信息的发布人的!也就是说没有[field:信息发布人/] 这样的字段可供选择。

  织梦系统提供了强大的SQL标签供高级用户使用,他的基本格式为:

  1. {dede:sql sql=“完整的SQL查询语句”} 

  2. 底层模板,用于输出[field:字段名/]<!–字 段名取值范围为查询结果的所有字段–> 

  3. {/dede:sql}

  我们了解了上面的这种方式以后,那么我们就可以使用SQL语句来调用分类信息模型了。一个简单的例子:

  1. {dede:sql sql=“select * FROM dede_addoninfos limit 0,10″} 

  2. 信息标题:[field:title/] 

  3. {/dede:sql} 

  上面的这种基本调用就是调用了信息发布的最新10条信息。这里的* 号就可以取值到信息发布者的会员id号,他的字段是mid,那么我们就可以在底层模板中通过 [field:mid/] 来进行输出了。但是这里我们只输出这个id号,无法取得他的会员名及昵称啊?怎么办呢?

  这里我们就可以想到利用left join 来进行匹配了,因为他既然能够获取他的会员id号,那么这个值他是与织梦的会员表是相互关联的,通过这个值我们可以关联到织梦会员表来获取更加详细的会员 资料。比如:

  Select a.*,m.* FROM dede_addoninfos a left join dede_member m on a.mid = m.mid

  这里利用left join 来进行匹配,让他们两边的ID号码相等,就可以了。所以我们调用分类信息发布者到首页的具体代码就为:

  1. {dede:sql sql=“Select a.*,m.* FROM dede_addoninfos a left join dede_member m on a.mid = m.mid limit 0 2″} 

  2. [field:字段名/]<!–这里的字段名的取值就 可以为addoninfos与member两个表的所有字段了–> 

  3. {/dede:sql} 

  当然,这里提供的仅仅是一个思路!比如,后面的限制调用的栏目,只需要在 a.mid = m.mid 后面加上一个where a.typeid = 栏目id 来进行表示,如果你的栏目为多个,还可以使用 where a.typeid IN(栏目1,栏目2….栏目N)等等。

  文章正文页常用函数:

1.相应文章上下文调用:

{dede:prenext function="str_replace(' 下一篇:','$amp;
2.文章关键字TAG调用,每个关键字附带链接地址

{dede:field name='keywords' runphp='yes' }

if(!empty(@me)){

$kws = explode(' ',@me);

@me = "";

foreach($kws as $k){

@me .= "<a /plus/search.php keyword=$k' target='blank'$amp;>k</a> ";

}

@me= str_replace('+', ' ',trim(@me));

}

{/dede:field}<BR>

3.复制相应文章地址按钮

<INPUT onclick=copyToClipBoard() type=button value=复制本页文章地址,传给QQ/MSN上的好友 name=Submit width="100" height="16">

<SCRIPT language=javascript>

function copyToClipBoard(){

var clipBoardContent="";

clipBoardContent+=document.title;

clipBoardContent+="";

clipBoardContent+=this.location.href;

window.clipboardData.setData("Text",clipBoardContent);

alert("复制成功,请粘贴到你的QQ/MSN上推荐给你的好友");

</SCRIPT>

<SCRIPT>

document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n参考链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }

</SCRIPT>

4.文章正文评论调用

<form action="{dede:field name='phpurl' /}/feedback.php action=send" method="post" name="feedback">

<input type="hidden" name="arcID" value="{dede:field name="id"/}">

<input name="notuser" type="hidden" id="notuser" value="1" checked>

$amp;amp;$lt;LABEL for=message>内容:</LABEL$amp;>amp;$lt;TEXTAREA id=message onfocus=showcode() name=message$amp;>amp;$lt;/TEXTAREA$amp;>amp;$lt;/P>

$amp;amp;$lt;BUTTON id=submitcomm

name=submitcomm type=submit value="submit">发表评论</BUTTON$amp;>amp;$lt;/P$amp;>amp;$lt;INPUT id=itemid

type=hidden value="submit" name=itemid> </FORM>

5.调用收藏夹,添加文章到各大网站收藏夹

<!-- 添加网摘 --$amp;>amp;$lt;STRONG$amp;>amp;$lt;FONT color=#0e63e4>收</FONT$amp;>amp;$lt;FONT

color=#58c600>藏</FONT$amp;>amp;$lt;FONT color=#996699>到</FONT$amp;>amp;$lt;FONT

color=#c00012>网</FONT$amp;>amp;$lt;FONT color=#795f00>摘</FONT$amp;>amp;$lt;FONT

color=#327f00>:</FONT$amp;>amp;$lt;/STRONG> <A title=Baidu搜藏

javascript:u=location.href;t=document.title;c%20=%20""%20+%20(window.getSelection%20 window.getSelection() : document.getSelection  document.getSelection() : document.selection.createRange().text);var url=""+encodeURIComponent(t)+"&iu="+encodeURIComponent(u)+"&dc="+encodeURIComponent(c)+"&fr=ien#nw=1";window.open(url,"_blank","scrollbars=no,width=600,height=450,left=75,top=20,status=no,resizable=yes"); void 0'$amp;>amp;$lt;IMG

alt=Baidu搜藏 src="/wm_img/baidu.gif" border=0$amp;>amp;$lt;/A> <A

javascript:window.open(''+encodeURIComponent(document.title)+'&uri='+encodeURIComponent(document.location.href)+'&jumpback=2&noui=1','favit','width=960,height=600,left=50,toolbar=no,menubar=no,location=no,scrollbars=yes,status=yes,resizable=yes');void(0)"$amp;>amp;$lt;IMG

title=QQ书签 alt=QQ书签 src="/wm_img/qq.gif" border=0$amp;>amp;$lt;/A> <A

;bkmk='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)"$amp;>amp;$lt;IMG

alt=Google书签 src="/wm_img/google.gif" border=0$amp;>amp;$lt;/A> <A

;url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)"$amp;>amp;$lt;IMG

title=Del.icio.us alt=Del.icio.us src="/wm_img/delicious.gif" :

border=0$amp;>amp;$lt;/A> <A title=POCO网摘

javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(keyit=window.open(' t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t)+'&img=','keyit','scrollbars=no,width=475,height=575,status=no,resizable=yes'));keyit.focus();"$amp;>amp;$lt;IMG

alt=POCO网摘 src="/wm_img/poco.gif" border=0$amp;>amp;$lt;/A> <A title=Yahoo书签 j'+encodeURIComponent(location.href)+'&t='+encodeURIComponent(document.title)"$amp;>amp;$lt;IMG

alt=Yahoo书签 src="/wm_img/yahoo.gif" border=0$amp;>amp;$lt;/A> <A title=新浪

javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(vivi=window.open(' pid=28&title='+escape(d.title)+'&url='+escape(d.location.href)+'&desc='+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes'));vivi.focus();"$amp;>amp;$lt;IMG

alt=新浪ViVi src="/wm_img/vivi.gif" border=0$amp;>amp;$lt;/A> <A title=365Key网摘

javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(keyit=window.open('x t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();"$amp;>amp;$lt;IMG

alt=365Key网摘 src="/wm_img/365key.gif" border=0$amp;>amp;$lt;/A> <A title=天极网摘

javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(yesky=window.open('x t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t)+'&st=2','yesky','scrollbars=no,width=400,height=480,left=75,top=20,status=no,resizable=yes'));yesky.focus();"$amp;>amp;$lt;IMG alt=天极网摘 src="/wm_img/yesky.gif" border=0$amp;>amp;$lt;/A> <A title=和讯网摘

javascript:t=document.title;u=location.href;e=document.selection (document.selection.type!='None' document.selection.createRange().text:'')document.getSelection document.getSelection():'');void(open('x title='+escape(t)+'&url='+escape(u)+'&excerpt='+escape(e),'HexunBookmark','scrollbars=no,width=600,height=450,left=80,top=80,status=no,resizable=yes'));"$amp;>amp;$lt;IMG

alt=和讯网摘 src="/wm_img/hexun.gif" border=0$amp;>amp;$lt;/A> <A

javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(live=window.open('x marklet=1&mkt=en-us&url='+escape(d.location.href)+'&title='+escape(d.title)+'&top=1','live','scrollbars=no,status=no,resizable=yes'));live.focus();"$amp;>amp;$lt;IMG

alt="Windows Live" src="/wm_img/live.gif" border=0$amp;>amp;$lt;/A> <A

# m8 O* S9 j2 f+ l2 @: U$ N$ ~3 y4 B5 m) `' U

title=鼠标选中部分作为描述,提交到diglog.com

onclick="javascript:d=document;t=d.selection (d.selection.type!='None' d.selection.createRange().text:'')d.getSelection d.getSelection():'');void(keyit=window.open('x title='+escape(d.title)+'&url='+escape(d.location.href)+'&description='+escape(t),'keyit','scrollbars=yes,width=500,height=500,left=65,top=20,status=no,resizable=yes'));keyit.focus();"

$amp;>amp;$lt;IMG alt="提交新发现,Dig it" src="/wm_img/digit.gif"

border=0$amp;>amp;$lt;/A> <!-- 添加网摘结束 --$amp;>amp;$lt;INPUT onclick=javascript:window.external.addFavorite(window.location.href,document.title) type=button value=" 加入收藏夹 " name=add>

其他调用:

<!------------------------------------站内新闻调用 ------------------------------------>

<UL class=***>

{dede:mynews row='7' titlelen='30'}

<LI$amp;>amp;$lt;a [field:arcurl /]" target=_blank>[field:title /]</a$amp;>amp;$lt;/LI>

{/dede:mynews}

</UL>

<!------------------------------------圈子调用 ------------------------------------>

{dede:group row="8" orderby='threads'}

[field:groupname/]

{/dede:group}

<!------------------------------------友情链接调用 ------------------------------------$amp;>quot;$

图片调用:{dede:flink type='image' row='1' col='9' titlelen='22'/}

文字调用:{dede:flink type='text' row='2' col='9' titlelen='24'/}

[<!------------------------------------热门TAG调用 ------------------------------------>

{dede:hotwords num='20' subday='30'/}

<!------------------------------------获取Phpwind论坛的最新主题贴子调用 ------------------------------------>

{dede:loop table='pw_threads' sort='tid' row='8' if=''}<br>

<a /bbs/read.php tid=[field:tid/]"> ·[field:subject function="cn_substr('@me',30)"/]

([field:lastpost function="date('m-d H:M','@me')"/])</a> <br/>

{dede:loop}

-----------------------------------文章图片幻灯片显示 ------------------------------------>

<script language='javascript'>

linkarr = new Array();

picarr = new Array();

textarr = new Array();

var focus_width=240;

var focus_height=180;

var text_height=24;

var pics = "";

var links = "";

var texts = "";

var swf_height = focus_height+text_height;

var defJpeg = "{dede:global name='cfg_phpurl'/}/img/jpeg.jpg";

{dede:arclist type='image' att='3' row='5' function='FormatScript(@me)'}

linkarr[[field:global name=autoindex/]] = "[field:arcurl/]

picarr[[field:global name=autoindex/]] = "[field:picname/]

textarr[[field:global name=autoindex/]] = "[field:title/]";

{/dede:arclist}

  for(i=1;i<picarr.length;i++){

if(picarr.indexOf("jpg")==-1 && picarr.indexOf("JPG")==-1) picarr = defJpeg;

if(pics=="") pics = picarr;

else pics += "|"+picarr;

}

for(i=1;i<linkarr.length;i++)

if(links=="") links = linkarr;

else links += "|"+linkarr;

}

for(i=1;i<textarr.length;i++){

if(texts=="") texts = textarr;

else texts += "|"+textarr;

}

document.write('<object

classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase=,0,0,0

width="'+ focus_width +'" height="'+ swf_height +'"$amp;>apos;$);

document.write('<param name="allowScriptAccess" value="sameDomain"$amp;>amp;$lt;param name="movie" value="{dede:global name='cfg_templeturl'/}/img/slide.swf"$amp;>apos;$);

document.write('<param name="quality" value="high"$amp;>amp;$lt;param name="bgcolor" value="#ffffff"$amp;>apos;$);

document.write('<param name="menu" value="false"$amp;>amp;$lt;param name=wmode value="opaque"$amp;>apos;$);

document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+;

texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'"$amp;>apos;$);

document.write('<embed src="{dede:global name='cfg_templeturl'/}/img/slide.swf" )

wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+

focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'" menu="false" bgcolor="#ffffff" quality="high"

width="'+ focus_width +'" height="'+ focus_height +'" allowScriptAccess="sameDomain"

type="application/x-shockwave-flash" pluginspage="" /$amp;>apos;$)

document.write('</object$amp;>apos;$

</script>

  DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于 DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持使用风格的形式使用模 板,默认风格是 default,它表示系统默认使用 cmspath/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用 templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

  一、概念,设计和使用模板,必须要理解下面几个概念

  1、板块(封面)模板:
  指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是 否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
  2、列表模板:
  指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID.htm” 命名。
  3、档案模板:
  表示文档查看页的模板,如文章模板,一般用 “article_识别ID.htm” 命名。
  4、其它模板:
  一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

  二、 命名,DedeCms模板默认命名规则如下

  1、模板保存位置:
  模板目录:cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板) /具体功能模板文件}
  2、 模板文件命名规范:
  (1)index_识别ID.htm: 表示板块(栏目封面)模板;
  (2)list_识别ID.htm: 表示栏目列表模板;
  (3)article_识别ID.htm: 表示内容查看页(文档模板,包括专题查看页);
  (4)search.htm: 搜索结果列表模板; 
  (5)index.htm: 主页模板;

  注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。

  例:list_image.htm 表示是就是内容类型为图片集的栏目默认列表模板。
    article_article.htm 表示的是文章查看页模板。

  三、其它模板说明

  1、默认底层模板
  位置: cmspath/templets/system
  功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。
  2、插件目录模板
  位置: cmspath/templets/plus
  功能:评论、友情链接、RSS地图等模板。
  3、会员后台模板
  位置: cmspath/member/templets
  功能:会员后台的模板。

  四、二次开发

  DedeCms主要的模板解析类是 include/inc_arcpart_view.php、include/inc_arclist_view.php、include /inc_archives_view.php,这些类是与pub_dedetag.PHP一起工作的,如果你想为文档模板、列表模板、板块模板增加一些 功能,可以直接修改这几个类的ParseTemplet()或ParseTempletsFirst()这类的方法,把标记名称,属性对应试相应该的功能 函数即时。

  织梦模板标记简介

  在了解DedeCms的模板代码之前,了解一下织梦模板引擎的知识是非常有意义的。织梦模板引擎是一种使用XML名字空间形式的模板解析器,使 用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的 解析还能分析模板里错误的标记。

  1、织梦模板引擎的代码样式有如下几种形式:
  {dede:标记名称 属性='值'/}
  {dede:标记名称 属性='值'}{/dede:标记名称}
  {dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称}

  提示:如果使用带底层模板的标记,必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式,否则会报错。

  2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

  (1) global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:{dede:global name='变量名称'}{/dede:global} 或 {dede:global name='变量名称'/}。其中变量名称不能加 $ 符号,如变量 $cfg_cmspath ,应该写成 {dede:global name='cfg_cmspath'/} 。

  (2) foreach 用来输出一个数组,形式为:{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}

  (3) include 引入一个文件,形式为:{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/},对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主 模板目录。

  3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:
  {dede:标记名称 属性='值' function='youfunction("参数一","参数二","@me")'/}
  其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}

  4、织梦标记允许有限的编程扩展。
  格式为:

  {dede:tagname runPHP='yes'}
  $aaa = @me;
  @me = "123456";
  {/dede:tagname} 
  @me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。
  此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。

  织梦内容管理系统模板标签代码参考

  
  这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。 
  功能说明:获取指定的文档列表适用范围:封面模板、列表模板、文档模板。 
  基本语法:
  {dede:arclist typeid='' row='' col='' titlelen='' infolen=''imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
  底层模板(InnerText){/dede:arclist} 
  属性说明:
  [1] typeid='' 表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
  [2] row='' 表示返回文档列表总数;
  [3] col='' 表示分多少列显示(默认为单列);
  [4] titlelen='' 表示标题长度;
  [5] infolen='' 表示内容简介长度;
  [6] imgwidth='' 表示缩略图宽度;
  [7] imgheight='' 表示缩略图高度;
  [8] type='' 表示档案类型,其中空值、不使用这个属性或type='all'时为普通文档
  § type='commend'时,表示推荐文档,等同于 {dede:coolart}{/dede:coolart}
  § type='image'时,表示必须含有缩略图片的文档,等同于{dede:imglist} {/dede:imglist}、{dede:imginfolist}{/dede:imginfolist}
  § type='spec'时,表示专题,等同于标记{dede:specart}{/dede:specart}
  以上属性值可以联合使用,如: type='commend image' 表示推荐的图片文档
  [9] orderby='' 表示排序方式,默认值是 senddate 按发布时间排列。 
  § orderby='hot' 或 orderby='click' 表示按点击数排列
  § orderby='pubdate' 按出版时间排列(即是前台允许更改的时间值)
  § orderby='sortrank' 按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性)
  § orderby='id' 按文章ID排序
  § orderby='postnum' 按文章评论次数排序
  § orderby='rank' 随机获得指定条件的文档列表
  [10] orderway='' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序。
  [11] keyword='' 表示含有指定关键字的文档列表,多个关键字用","分开
  [12] channelid='' 表示特定的频道模型ID,内置的频道:专题(-1)、文章(1)、图集(2)、Flash(4)、软件(3)
  [13] limit='起始,结束' 表示限定的记录范围,row属性必须等于"结束 - 起始",MySQL的limit语句是由0起始的,如 “limit 0,5”表示的是取前五笔记录,“limit 5,5”表示由第五笔记录起,取下五笔记录,使用了本属性后,row属性将无效。
  [14] att='数值' 表示自定义属性值
  [15] subday='天数' 表示在多少天以内的文档,通常用于获取指定天数的热门文档、推荐文档、热门评论文档等
  [16] partsort='排列位数' 表示自动获得父栏目的所有子数中排列在第几位的栏目ID,标记为{dede:autolist}{/dede:autolist} 时,使用本属性才有效。 
  底层模板字段:
  ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),writer,shorttitle,memberid
  pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
  arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
  textlink,typelink,imglink,image 
  其中:
  textlink = <a >title</a>
  typelink = <a >typename</a>
  imglink = <a $amp;>amp;$lt;img src='picname' border='0' width='imgwidth' height='imgheight'$amp;>amp;$lt;/a>
  image = <img src='picname' border='0' width='imgwidth' height='imgheight'> 
  字段调用方法:[field:varname/]
  如:{dede:arclist infolen='100'}
  [field:textlink/]
  <br>
  [field:info/]
  <br>
  {/dede:arclist} 
  注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能
  如:给当天发布的内容加上 (new) 标志
  [field:senddate runPHP='yes'] 
  $ntime = time();
  $oneday = 3600 * 24;
  if(($ntime - @me)$amp;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;([field:lastpost&amp;nbsp;function="date('m-d&amp;nbsp;H:M','@me')"/])&amp;lt;/a&amp;gt;&amp;nbsp;&amp;lt;br/&amp;gt;
      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{dede:loop}

  功能说明:用于获取当前频道的下级栏目的内容列表 
  适用范围:封面模板

  (1)基本语法
  {dede:channelArtlist typeid=0 col=2 tablewidth='100%'}
  <table width="99%" border="0" cellpadding="3" cellspacing="1" bgcolor="#BFCFA9">
  <tr>
  <td bgcolor="#E6F2CC">
  {dede:type}
  <table border="0" cellpadding="0" cellspacing="0" width="98%">
  <tr>
  <td width='10%' align="center"$amp;>amp;$lt;img src='[field:global name='cfg_plus_dir'/]/img/channellist.gif' width='14' height='16'$amp;>amp;$lt;/td>
  <td width='60%'>
  <a [field:typelink /]">[field:typename /]</a>
  </td>
  <td width='30%' align='right'>
  <a [field:typelink /]">更多...</a>
  </td>
  </tr>
  </table>
  {/dede:type}
  </td>
  </tr>
  <tr>
  <td height="150" valign="top" bgcolor="#FFFFFF">
  {dede:arclist row="8"}
  <a [field:arcurl /]">[field:title /]</a$amp;>amp;$lt;br>
  {/dede:arclist}
  </td>
  </tr>
  </table>
  <div style='font-size:2px'> </div>
  {/dede:channelArtlist} 
  除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套 
  {dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记。 
  (2) 属性
  [1]typeid=0 频道ID,默认的情况下,嵌套的标记使用的是这个栏目ID的下级栏目,如果你想用特定的栏目,可以用","分开多个ID。 
  [2]col=2 分多列显示 
  [3]tablewidth='100%' 外围表格的大小

  
  功能说明:表示列表模板里的分页内容列表 
  适用范围:仅列表模板 list_*.htm

  (1)基本语法
  {dede:list col='' titlelen='' 
  infolen='' imgwidth='' imgheight='' orderby='' pagesize=''}{/dede:list} 
  (2)属性
  [1]col 内容列数
  [2]titlelen 标题长度
  [3]infolen 内容摘要长度
  [4]imgwidth 缩略图宽
  [5]imgheight 缩略图高
  [6]orderby 排序方式,有效的排序方式有 senddate、pubdate、id、click、lastpost、postnum ,默认为 sortrank 
  [7]pagesize 分页大小

  (3)底层模板变量 
  ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),postnum,lastpost,shorttitle
  pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
  arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
  textlink,typelink,imglink,image

  注:list标记除了支持档案表的基本模板变量外,还支持附加表的字段,你可以在模型管理中知道附加表支持列表使用的字段有哪些。

  
  功能说明:表示分页页面的附加参数 
  适用范围:列表模板 
  语法: {dede:page pagesize="每页结果条数"/} 
  注:此标记在dedecms3.1中已经过期,dedecms3.1中直接把 pagesize属性加在 list 标记中,表示记录分页大小。

  
  功能说明:表示分页页码列表 
  适用范围:列表模板

  (1)语法
  {dede:pagelist listsize='3' listitem=''/} 
  (2)属性 
  [1] listsize 表示 [1][2][3] 这些项的长度 x 2 
  [2] listitem 表示页码样式,可以把下面的值叠加
  index  首页
  pre 上一页
  pageno 页码
  next 下一页
  end 末页
  option 下拉跳转框

  例: {dede:pagelist listsize='3' listitem='index pre pageno next end option'/}

  功能说明:表示文档的分页链接列表。
  适用范围:仅文档模板。 
  语法:{dede:pagebreak/}

  功能说明:表示获取文档“上一篇/下一篇”的链接列表。
  适用范围:仅文档模板。 
  语法:{dede:prenext/}

  注:此标记默认为横向排列,如果你想用竖向排列,可以用
  {dede:prenext function="str_replace('  下一篇:','$amp;

  功能说明:表示获取文档的分页标题
  适用范围:仅文档模板。 
  (1)语法:{dede:pagetitle style='select'/}
  (2)属性:style 表示分页标题的展示样式
  select 表示下拉框、link 表示文字直接链接

  
  功能说明:获得附加表的所有字段信息。
  适用范围:仅文档模板。 
  语法:
  {dede:fieldlist}
  [field:name/] : [field:value/] <br>
  {/dede:fieldlist}

  下面我们就开始增加这个小扩展,我们知道在V5.3中织梦的标签已经分离出来,也就是类似于arclist这样的标签可以自己修改或者二次开发,程序这些 标签存放的目录在/include/taglib文件夹下面,我们可以看那个文件名,就很容易知道这些标签文件名和标签的对应关系。
那我们现在需 要修改的是{dede:sql/}这个标签,那我们就修改sql.lib.php这个文件。
打开后我们找到第34行,也就是代码
$ctp->LoadSource($Innertext);
处, 在下面加上以下一段代码:
$GLOBALS['autoindex'] = 0;
这段代码就是定义一个全局变量,并赋值为0,接下来我们 只需要将下面代码进行下修改:
while($row = $dsql->GetArray($thisrs))
{
$sqlCt++;
foreach($ctp->CTags as $tagid=$amp;>ctag){
  if(!empty($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); }
}
$GLOBALS['autoindex']++; //每循环一次加上一个1然后解析出来
$revalue .= $ctp->GetResult();
}
这样一来,这个 [field:global.autoindex/]标签就可以在那个{dede:sql/}中使用了,我们举个例子:
{dede:sql sql='select * from }
[field:global.autoindex/]-[field:title/]</br>
{/dede:sql}
怎 么样?很简单吧,其实这种扩展还有很多很多,自己可以试试哦。

  跨站脚本攻击

  首先打开文件:/include/common.func.php
在文件中加入函数

  
function RemoveXSS($val) {
  $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);

  $search = 'abcdefghijklmnopqrstuvwxyz';
  $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $search .= '1234567890!@#$%^&*()';
  $search .= '~`";: +/={}[]-_|\'\\';
  for ($i = 0; $i < strlen($search); $i++) {
   $val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).'; )/i', $search[$i], $val);
   $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).'; )/', $search[$i], $val);
  }

  $ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
  $ra2 = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
  $ra = array_merge($ra1, $ra2);

  $found = true;
  while ($found == true) {
   $val_before = $val;
   for ($i = 0; $i < sizeof($ra); $i++) {
     $pattern = '/';
     for ($j = 0; $j < strlen($ra[$i]); $j++) {
      if ($j > 0) {
        $pattern .= '(';
        $pattern .= '(&#[xX]0{0,8}([9ab]);)';
        $pattern .= '|';
        $pattern .= '|(&#0{0,8}([9|10|13]);)';
        $pattern .= ')*';
      }
      $pattern .= $ra[$i][$j];
     }
     $pattern .= '/i';
     $replacement = substr($ra[$i], 0, 2).'<x$amp;>apos;$.substr($ra[$i], 2);
     $val = preg_replace($pattern, $replacement, $val);
     if ($val_before == $val) {
      $found = false;
     }
   }
  }
  return $val;
}

  1. <p>

  2. 搜索 <strong class="fc_03c">{dede:global name='keyword'/}</strong> 的结果

  3.   </p>

  修改为:

  1. <p>

  2.    搜索 <strong class="fc_03c">{dede:global name='keyword' function='RemoveXSS(@me)'/}</strong> 的结果

  3. </p>

  在DedeCMS V5.3系统中,我们很多地方需要用到SQL语句,例如批量修改(替换)内容、数据内容调用等,在系统模板中有一个专门用于调用数据的模板标签 {dede:sql/}我们可以参考帮助中心的模板标签说明学习下这个标签如何使用。 
  当然我们在使用SQL语句和学习SQL语句的之前需要对织梦的数据库结构有一个大致的了解,我们可以通过帮助中心的数据库说明,来简单的了解这些内容。

  以下为引用的内容:
标签名称:sql功能说明:用于从模板中用一个SQL查询获得其返回内容适用范围:全局使用基本语法:{dede:sql sql=""}底层模板{/dede:sql}参数说明:sql="" 完整的SQL查询语句底层模板字段:SQL语句中查出的所有字段都可以用[field:字段名/]来调用 
应用实例: 
1.调用某个特定会员发布的文章内容 
{dede:sql sql='Select * from dede_archives where mid=1'} 
<a /plus/view.php aid=[field:id/]' target='_blank'>[field:title/]</a> 
{/dede:sql} 
mid为用户ID 可以参考二次开发中关于dede_archives的数据表字段介绍

  
  接下来我们收集整理一些常用的SQL语句帮助大家一同更好的使用DedeCMS系统。 

  我们将SQL语句分为两类,功能型的和内容调用型,功能型的主要是对数据库进行常规的操作,例如{insert、update},数据调用型的操作就 (select),两种类型的SQL语句使用发放也很简单,如果是功能型的只需要在系统后台[系统]-[SQL命令运行工具]中进行使用,如果是模板标签 的数据调用类型,只需要在模板相应位置添加标签即可。

  感谢以下会员:crenn,cunzhangwang,tbggbt,hefa,nichelous,hw74

  
功能型SQL语句整理: 
功能说明:添加自定义属性 
相关语句:

  以下为引用的内容:
insert into `dede_arcatt`(sortid,att,attname) values(9,'d','评论'); 
alter table `dede_archives` modify `flag` set ('c','h','p','f','s','j','a','b','d') default NULL;

  功能说明:批量为作者和来源赋值 
相关语句:

  以下为引用的内容:
UPDATE dede_archives SET writer='要赋的值' WHERE writer=''; 
UPDATE dede_archives SET source='要赋的值' WHERE source='';

  
功能说明:删除指定IP的评论 
相关语句:

  以下为引用的内容:
DELETE FROM `dede_feedback` WHERE `dede_feedback`.`ip` = '000.000.000.000'

  000.000.000.000 为垃圾评论发布者的IP

功能说明:清空文章中关键字字段 
相关语句:

  以下为引用的内容:
update dede_archives set keywords=''

  功能说明:批量替换发布时间,入库时间,更新 时间 
相关语句:

  以下为引用的内容:
第一步。在后台新增一个文章。 
得到一个时间,比如 2009-01-13 14:13:32,这可以通过管理文章那里看到。 
第二步,后台执行SQL语句SELECT * FROM dede_archives order by id DESC limit 1 
这样你可以看到你刚才新加加的文章一所有字段值。 
观察以下的数据: 
pubdate:1231846313 
senddate:1231846313 
sortrank:1231846313 
其中1231846313就是时间数据了。 
然后就是替换了。 
UPDATE dede_archives SET sortrank = 1231846313; 
UPDATE dede_archives SET senddate = 1231846313; 
UPDATE dede_archives SET pubdate = 1231846313;

  
功能说明:批量修改栏目为动态或者静态 
相关语句:

  以下为引用的内容:
UPDATE `dede_arctype` SET `isdefault` = '-1' 动态
UPDATE `dede_arctype` SET `isdefault` = '1' 静态

  
功能说明:文章内容批量替换SQL语句 
相关语句:

  以下为引用的内容:
update `dede_addonarticle` set body=REPLACE(body,'论坛','社区') where body like "%论坛%" 
以上SQL语句作用是查找所有文章带有“论坛”的词组,并将论坛替换为“社区”

  数据调用SQL语句整理: 
标签说明:常用内容统计代码 
相关标签:

  以下为引用的内容:
·共有文章:** 篇 
{dede:sql sql="select count(*) as c from dede_archives where channel=1"}·共有文章:[field:c /]篇{/dede:sql} 
·共有图集:** 个 
{dede:sql sql="select count(*) as c from dede_archives where channel=2"}·共有图集:[field:c /]个{/dede:sql} 
·共有软件:** 个 
{dede:sql sql="select count(*) as c from dede_archives where channel=3"}·共有软件:[field:c /]个{/dede:sql} 
·共有评论:**条 
{dede:sql sql="select count(*) as c from dede_feedback"}·共有评论:[field:c /]条{/dede:sql} 
·共有会员:**名 
{dede:sql sql="select count(mid) as c from dede_member "}·共有会员:[field:c /]名{/dede:sql} 
·文章阅读:** 人次 
{dede:sql sql="select sum(click) as c from dede_archives"}文章阅读:[field:c /]人次{/dede:sql} 
·今日更新:**篇 
{dede:sql sql="SELECT count( * ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) "}今日更新:[field:c /]篇{/dede:sql}
总共留言:{dede:sql sql="select count(*) as cc From dede_guestbook"}[field:cc/]{/dede:sql} 条

  
调用说明:调用Discuz论坛附件带图片的 贴子 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT` cdb_p_w_uploads`.`aid`, `cdb_p_w_uploads`.`p_w_upload`,`cdb_threads`.`tid`, `cdb_threads`.`fid`, `cdb_threads`.`subject` FROM `cdb_p_w_uploads` LEFT JOIN `cdb_threads` ON `cdb_threads`.`tid`=`cdb_p_w_uploads`.`tid` WHERE `cdb_p_w_uploads`.`readperm`='0' AND `displayorder`>='0' AND `filetype`='p_w_picpath/pjpeg' GROUP BY tid LIMIT 0,2"} 
<li$amp;>amp;$lt;A /bbs/viewthread.php tid=[field:tid /]"$amp;>amp;$lt;IMG src="/bbs/p_w_uploads/[field:p_w_upload/]"$amp;>amp;$lt;/A$amp;>amp;$lt;/li>
<li$amp;>amp;$lt;A /bbs/viewthread.php tid=[field:tid /]">[field:subject function="cn_substr('@me',30)" /]</A$amp;>amp;$lt;/li> 
{/dede:sql}

  
调用说明:调用UCHOME最新日志 
相关标签:

  以下为引用的内容:
{dede:sql sql="Select subject,viewnum,blogid,uid From uchome_blog order by blogid desc limit 0,8"} 
<li$amp;>amp;$lt;A uid=[field:uid/]&do=blog&id=[field:blogid/]">[field:subject function="cn_substr('@me',24)" /]</A$amp;>amp;$lt;/li> 
{/dede:sql}

  
调用说明:会员积分排行 
相关标签:

  以下为引用的内容:
{dede:sql sql="Select mid,userid,uname,scores From dede_member order by scores desc limit 0,10"} 
<dd$amp;>amp;$lt;span class="name"$amp;>amp;$lt;a [field:global name='cfg_cmspath'/]/member/ [field:userid/]/'>[field:uname/]</a> 
</span$amp;>amp;$lt;span class="jifen">积分[field:scores/]</span$amp;>amp;$lt;/dd> 
{/dede:sql}

  
调用说明:企业最新产品调用方法(图片+标 题) 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT a.id,a.litpic,a.title FROM dede_addonshop p left join dede_archives a on a.id = p.aid order by a.id desc LIMIT 0 , 4"} 
<li$amp;>amp;$lt;div$amp;>amp;$lt;a /plus/view.php aid=[field:aid/]" title="[field:title/]"$amp;>amp;$lt;img src="[field:litpic/]" alt="[field:title/]"/$amp;>amp;$lt;/a$amp;>amp;$lt;/div$amp;>amp;$lt;a /plus/view.php aid=[field:aid/]" title="[field:title/]">[field:title/]</a$amp;>amp;$lt;/li> 
{/dede:sql}

  
调用说明:调用最新加入企业及企业所属行业代 码到首页 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT m.mid,m.mtype,m.userid,m.matt,c.mid,c.company,c.comface,d.ename,d.evalue,d.egroup FROM dede_sys_enum as d ,dede_member as m left join dede_member_company c on m.mid = c.mid where m.mtype ='企业' and m.matt = 1 and c.vocation=d.evalue and d.egroup='vocation' LIMIT 0 , 10"} 
[field:company/] 
[field:ename/] 
{/dede:sql}

  
调用说明:推荐会员(带用户头像) 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT mid,mtype,userid,uname,matt,face
FROM dede_member 
where matt = 1 and mtype='个人'
LIMIT 0 , 10"} 
头像:<img src="[field:face runphp='yes'] 
if(!@me)@me = ''; 
[/field:face]" /> 
用户名:<a [field:global name='cfg_cmspath'/]/member/ [field:userid/]/'>[field:uname/]</a> 
{/dede:sql} 

[field:face runphp='yes'] 
if(!@me)@me = ''; 
[/field:face] 
为用户头像图片 
[img][/img] 
是如果用户头像为空的话要显示的图像 这个大家自己改吧

  
调用说明:推荐企业 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT m.ID,m.type,m.userid,m.matt,m.spacep_w_picpath,c.id,c.comname 
FROM dede_member m left join dede_member_cominfo c on m.ID = c.id 
where m.type = 1 and m.matt = 1 
LIMIT 0 , 10"} 
头像:<img src="[field:spacep_w_picpath runphp='yes'] 
if(!@me)@me = ''; 
[/field:spacep_w_picpath]" /> 
用户名:<a [field:global name='cfg_cmspath'/]/member/ [field:userid/]/'>[field:comname/]</a> 
{/dede:sql}

  
调用说明:UCenter Home会员调用(带头像) 
相关标签:

  以下为引用的内容:
{dede:sql sql="SELECT * FROM `uchome_space` WHERE `avatar` =1 LIMIT 0 , 10"}
<a 你安装UCenter Home的地址/space.php uid=[field:uid/]"> 
<img src='你安装UCenter的地址/avatar.php uid=[field:uid/]&size=[field:small/]' border='0' width='99' height='88' > 
<br /> 
[field:username/]</a> 
{/dede:sql}

  另建议安装《DEDECMS自动审核文档+自动生成插件》提供的HTML自动生成插件,自动审核是最好不要! 
  方法: 
  1、打开dede目录下的archives_do.php。注:也许你的不是dede是其它,各位站长根据自己情况 
  2、在archives_do.php文件查找成功审核指定的文档 
  3、向上查看到 
  while($row = $dsql->GetArray('ckall')) 
  在其中下面增加代码$time_wx = time() - rand(0,$cfg_index_cache * 10);//add code by wind shadow 
  成为这样: 
  while($row = $dsql->GetArray('ckall')) 
  { 
  $time_wx = time() - rand(0,$cfg_index_cache * 10);//add code by wind shadow 
  4、接着向下看找到有set arcrank='0' where id='$aid'的代码,共有3处 
  在set和arcrank='0'之间加入 sortrank='$time_wx',pubdate='$time_wx',senddate='$time_wx' 
  形成set sortrank='$time_wx',pubdate='$time_wx',senddate='$time_wx',arcrank='0' 形式,共有3处

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

dedecms织梦无需登录注册可下单购买的修改,首先找到/plus/carbuaction.php文件,找到如下代码: //确认用户登录信息if($cfg_ml-IsLogin()){ $userid = $cfg_ml-M_ID;}else{ $username = trim($username); $password = trim($password); if(empty($username)
用过织梦dedecms的人都知道,织梦会员系统相当强大,跟论坛程序差不多,对于使用会员系统的人来说,织梦系统足够用的了,但是,有时候,织梦系统很多的地方又不是我们所希望,或都说,有的地方不适合我们使用,这时候就要对织梦会员系统进行二次开发,所以,
我们在用到织梦dedecms的会员功能时候,注册页面的注册项需要增加,比如想多加一个手机号的字段,需要怎么操作呢?下面我们以增加一个手机号的字段为例子 1、找到网站目录下的/member/templets/reg-new.htm,在合适位置增加一行表单,代码如下: lispan手机
SQL语句中,有统计的函数,我们可以通过在织梦中使用SQL语句统计的方法,在列表页内显示该栏目共有多少篇文章。这样做的好处是,有助于提升用 户体验。比如说我一个文章列表下面有10篇文章,就自动统计出10篇,到20篇的时候自动统计成20篇。这样用户对网站的
我们在做 织梦模板 开发时,有时需要在artlist 和list标签中调用出图集中的图片,同时可以自定调用几张图片。跟版网整理了个一个这样功能的自定义函数。调用后效果如下: dedecms织梦artlist和list标签调用图集图片实现方法 函数代码 请将代码加入到 /includ
json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php。 织梦本身是自带json标签的,调用方法: {dede:json url=http://yoursite/json.php cache=300