织梦CMS是集简单、健壮、灵活、开源几大特点的开源内容管理系统,是国内开源CMS的领先品牌,目前程序安装量已达七十万,超过六成的站点正在使用织梦CMS或基于织梦CMS核心开发.
首页 > 大数据 > Hadoop > Dede二次开发之代码篇:[2]
织梦CMS是集简单、健壮、灵活、开源几大特点的开源内容管理系统,是国内开源CMS的领先品牌,目前程序安装量已达七十万,超过六成的站点正在使用织梦CMS或基于织梦CMS核心开发.
2.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)
2.2、dedesql.class.php 数据库类
系统会自动载入 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、执行条件查询语句
1 $db->SetQuery($dsql);
2 $db->Execute();
3 while($arr = $db->GetArray())
4 {
5 }
可以简化为:
6 $db->Execute('me',$dsql);
7 while($arr = $db->GetArray())
8 {
9 }
'me' 为记录集游标,用于区分不同的查询,如:
10 $db->Execute('me',$dsql);
11 while($arr = $db->GetArray())
12 {
13 $db->Execute('2',$dsql2);
14 while($arr2 = $db->GetArray())
15 {
16
17 }
18 }
像这种情况必须指定一个值区分默认的'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相关函数进行数据库操作在非不得已的情况,项目中一般不使用这个变量。
2.3、datalistcp.class.php 动态分页类
类文件include/datalistcp.class.php适用范围:数据量不大的数据分页使用方法:
1 $dl = new DataListCP();
2 $dl->pageSize = 25; //设定每页显示记录数(默认25条)
3 $dl->SetParameter($key,$value); //设定get字符串的变量 //这两句的顺序不能更换
4 $dl->SetTemplate($tplfile);?//载入模板
5 $dl->SetSource($sql);?//设定查询SQL
6
7 $dl->Display();?//显示 模板
8 {dede:datalist}
9
10 {/dede:datalist}
11
12 {tag:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/} listitem、listsize 是可选属性如果需要自定义 datalist 相关属性,可以继续本类来创建一个新类,只需改变 GetArcList($atts,$refObj='',$fields=array()) 方法即可。
s'; C-ipY
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26172496/viewspace-1111703/ ,如需转载,请注明出处,否则将追究法律责任。