已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库类: 系统会自动载入 dedesql.class.php 文件,并用$dsql = $db = new DedeSql(false);进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。常用的方法:1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等$rs = $db-ExecuteNoneQuery($sql);返回值为是否执行成功。2、执行一个非查询类型的SQL语句,并返回成功记录数$rs = $db-ExecuteNoneQuery2($sql);与上面相比,它返回的是影响的记录数,而不是布尔值3、返回单个记录$arr = $db-GetOne($sql);$dsql 如果不带 limit ,系统会自动加上 limit 0,14、执行条件查询语句$db-SetQuery($dsql);$db-Execute();while($arr = $db-GetArray()可以简化为:$db-Execute(me,$dsql);while($arr = $db-GetArray()me 为记录集游标,用于区分不同的查询,如:$db-Execute(me,$dsql);while($arr = $db-GetArray() $db-Execute(2,$dsql2); while($arr2 = $db-GetArray() 像这种情况必须指定一个值区分默认的me参数,否则会出错$db-GetArray($rsid,$acctype) 参数$rsid=me$acctype=MYSQL_ASSOC在查询游标中读取数据还可以用$db-GetObject($rsid=me);返回的结果是用类结构表示的值。5、获取上一个插入的自动递增主键id值$db-GetLastID();6、获得查询的总记录数$db-GetTotalRow($rsid=me)7、获得MySql的版本号$db-GetVersion($isformat=true)默认的情况下会转换成 x.xx 形式浮点数8、析放某查询的资源$db-FreeResult($rsid=me);9、在数据库中是否存在某数据表$db-IsTable($tbname)10、重新选择要操作的数据库$db-SelectDB($dbname);11、获得数据库连接标识$db-linkID获得这个连接标识后,可以直接用mysql相关函数进行数据库操作在非不得已的情况,项目中一般不使用这个变量。全局函数: 1、common.func.php 公用函数获得当前的脚本网址function GetCurUrl()返回格林威治标准时间function MyDate($format=Y-m-d H:i:s,$timest=0)把全角数字转为半角function GetAlabNum($fnum)把含HTML的内容转为纯textfunction Html2Text($str,$r=0)把文本转HTMLfunction Text2Html($txt)输出Ajax头function AjaxHead()中文截取2,单字节截取模式function cn_substr($str,$slen,$startdd=0)把标准时间转为Unix时间戳function GetMkTime($dtime)获得一个 0000-00-00 00:00:00 标准格式的时间function GetDateTimeMk($mktime)获得一个 0000-00-00 标准格式的日期function GetDateMk($mktime)获得用户IPfunction GetIP()获取拼音以gbk编码为准function GetPinyin($str,$ishead=0,$isclose=1)dedecms通用消息提示框function ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)保存一个cookiefunction PutCookie($key,$value,$kptime=0,$pa=/)删除一个cookiefunction DropCookie($key)获取cookiefunction GetCookie($key)获取验证码function GetCkVdValue()过滤前台用户输入的文本内容/ $rptype = 0 表示仅替换 html标记/ $rptype = 1 表示替换 html标记同时去除连续空白字符/ $rptype = 2 表示替换 html标记同时去除所有空白字符/ $rptype = -1 表示仅替换 html危险的标记function HtmlReplace($str,$rptype=0)获得某文档的所有tagfunction GetTags($aid)过滤用于搜索的字符串function FilterSearch($keyword)处理禁用HTML但允许换行的内容function TrimMsg($msg)获取单篇文档信息function GetOneArchive($aid) 动态分页类: 类文件include/datalistcp.class.php适用范围:数据量不大的数据分页使用方法:$dl = new DataListCP();$dl-pageSize = 25; /设定每页显示记录数(默认25条)$dl-SetParameter($key,$value); /设定get字符串的变量/这两句的顺序不能更换$dl-SetTemplate($tplfile); /载入模板$dl-SetSource($sql); /设定查询SQL$dl-Display(); /显示模板dede:datalist field.fieldname1/ - field.fieldname2/ ./dede:datalisttag:pagelist listitem=info,index,end,pre,next,pageno listsize=5/listitem、listsize 是可选属性如果需要自定义 datalist 相关属性,可以继续本类来创建一个新类,只需改变 GetArcList($atts,$refObj=,$fields=array() 方法即可。 静态模板类: 类文件include/dedetag.class.php这个文件是dedecms V5.3及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的(区别是前者通过获得标签位置进行内容替换,后者是直接解析式PHP代码,二次执行)一、模板语法织梦模板引擎是一种使用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。 二、解析方式在 dedetag.class.php 里面有四个类class DedeAttribute 属性结构表述class DedeAttributeParse 属性解析器class DedeTag 标签结构表述class DedeTagParse 标签解析器使用解析类解析模板时一般经过下面的步骤1、初始化:$dtp = new DedeTagParse();2、载入模板/模板字符串:$dtp-LoadTemplate(模板文件(绝对路径)); /会生成缓存,第二次不需解析模板或$dtp-LoadSource(字符串);3、给标签赋值foreach($dtp-CTags as $tid=$ctag) /判断ctag的名称和属性,并给赋不同的值,通常用函数处理 if($ctag-GetName=mytag) $dtp-Assign($tid, mytagvalue($ctag) );在上面例子中,直接把名称为 mytag的标签转交给 mytagvalue 函数处理,mytagvalue 里判断$ctag的各个属性,返回不同内容即可。在 V5.3版本中,通常除了field、list等专用标签之外,凡arc.*开头的类解析的文件,标签都是对应该 include/taglib 的源码的,这个由系统进行了自动的映射。4、显示或保存为HTML$dtp-display();或$dtp-SaveTo(静态文件名);对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。class DedeTag var $IsReplace=FALSE; /标记是否已被替代,供解析器使用 var $TagName=; /标记名称 var $InnerText=; /标记之间的文本 var $StartPos=0; /标记起始位置 var $EndPos=0; /标记结束位置 var $CAttribute=; /标记属性描述,即是class DedeAttribute var $TagValue=; /标记的值 var $TagID = 0; /获取标记的名称和值 function GetName() return strtolower($this-TagName); function GetValue() return $this-TagValue; /下面两个成员函数仅是为了兼容旧版 function GetTagName() return strtolower($this-TagName); function GetTagValue() return $this-TagValue; /获取标记的指定属性 function IsAttribute($str) return $this-CAttribute-IsAttribute($str); function GetAttribute($str) return $this-CAttribute-GetAtt($str); function GetAtt($str) return $this-CAttribute-GetAtt($str); function GetInnerText() return $this-InnerText; arclist|文档列表: 标签名称:arclist标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。功能说明:获取指定文档列表适用范围:全局使用基本语法:dede:arclist flag=h typeid= row= col= titlelen= infolen= imgwidth= imgheight= listtype= orderby= keyword= limit=0,1field:title/ arcurl是文章的路径,表里无此字段/dede:arclist参数说明:col= 分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示如果col=1要多列显示的可用div+css实现以下为通过div+css实现多列的示例:divwidth:400px;float:left;dede:arclist row=10 titlelen=24 orderby=pubdate idlist= col=2field:textlink/(field:pubdate function=MyDate(m-d,me)/)/dede:arclist当col1将使用原来的table多列方式显示row=10 返回文档列表总数typeid= 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用,分开表示多个栏目;getall=1 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以,分开的多个栏目的下级子类titlelen = 30 标题长度 等同于titlelengthinfolen=160 表示内容简介长度 等同于infolengthimgwidth=120 缩略图宽度imgheight=90 缩略图高度listtype=all 栏目类型 image含有缩略图 commend推荐orderby=sortrank 文档排序方式 orderby=hot 或 orderby=click 表示按点击数排列 orderby=sortrank 或 orderby=pubdate 按出版时间排列 orderby=near orderby=lastpost 按最后评论时间 orderby=scores 按得分排序 orderby=id 按文章ID排序 orderby=rand 随机获得指定条件的文档列表keyword= 含有指定关键字的文档列表,多个关键字用,分innertext = 单条记录样式aid= 指定文档IDidlist = 提取特定文档(文档ID)channelid 频道IDlimit=起始ID,记录数 (起始ID从0开始)表示限定的记录范围(如:limit=1,2 表示从ID为1的记录开始,取2条记录)flag = h 自定义属性值:头条h推荐c图片p幻灯f滚动s跳转j图文a加粗bnoflag = 同flag,但这里是表示不包含这些属性,与flag相反orderway=desc 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序subday=天数 表示在多少天以内的文档用arclist调用于附加表字段的方法:要获取附加表内容,必须符合两个条件1、指定 channelid 属性2、指定要获得的字段 addfields=字段1,字段如:dede:arclist addfields=filetype,language,softtype row=8 channelid=3field:textlink / - field:softtype /dede:arclist底层模板字段:ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,stime(pubdate 的0000-00-00格式)其中:textlink = titletypelink = typenameimglink = image = 字段调用方法:field:varname/如:dede:arclist infolen=100field:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业钢筋承包协议书
- 合伙外卖店合同范本
- 合作社扶贫合同范本
- 司机如何写合同范本
- 半导体技术合同范本
- 合作招生学校协议书
- 小学三年级语文2025年春季学期测试卷(含答案)
- 2025年考研材料科学基础模拟测试试卷(含答案)
- 2025年专升本经济管理会计学模拟冲刺试卷及答案
- 2025年专升本数学二科目模拟试卷及答案
- 清洗油管管理办法规定
- 血气胸的护理查房
- 心脏超声医师进修汇报
- 环境工程设备全套课件205p文档
- CD法施工中隔壁拆除专项技术
- 2025-2030中国建设工程质量检测行业发展趋势与前景规划研究报告
- 网络推广部门管理制度
- 2025至2030年中国盐碱地治理行业市场研究分析及发展趋势研判报告
- 川建行规〔2024〕15号附表
- 杭州市淳安县千岛湖小学-春华秋实“研”硕果-2025年春季学期学校教科研工作总结【课件】
- 干细胞抗衰产品研发与应用
评论
0/150
提交评论