加入收藏 | 设为首页 | 会员中心 | 我要投稿 牡丹江站长网 (https://www.0453zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

帝国CMS二次研发引用函数文件

发布时间:2022-04-14 10:26:33 所属栏目:经验 来源:互联网
导读:PHP Code复制内容到剪贴板 ?php define(EmpireCMSAdmin,1); require(../../class/connect.php);//引入数据库配置文件和公共函数文件 require(ECMS_PATH.e/class/db_sql.php); //引入数据库操作文件 require(ECMS_PATH.e/class/functions.php);//导入编译标签
        PHP Code复制内容到剪贴板
       <?php  
       define('EmpireCMSAdmin','1');  
       require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
       require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
       require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
require(ECMS_PATH."e/class/com_functions.php");  
require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
$link=db_connect();  
$empire=new mysqlquery();  
$editor=1;  
//-------- 分页参数 --------  
$page=(int)$_GET['page'];  
$start=0;  
$line=30; //每页显示记录数  
$page_line=8; //每页显示分页链接数  
$offset=$page*$line; //总偏移量  
//-------- 查询SQL --------  
//取得信息总数  
$totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
$num=$empire->gettotal($totalquery);  
//select查询SQL  
$query="select * from {$dbtbpre}release_money";  
$query.=" order by id desc limit $offset,$line";  
$sql=$empire->query($query);  
$listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
?>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    <title>用户消费记录预览</title>  
    <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
</head>
    <body>  
        <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
            <tbody>  
                <tr>   
                    <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
                </tr>  
            </tbody>  
        </table>  
        <form name="form1" method="get" action="?act=a">  
          <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
            <tbody><tr>   
              <td height="25" bgcolor="#FFFFFF">会员名:   
                <input name="keyboard" type="text" id="keyboard" value="">  
                <input type="submit" name="Submit" value="搜索">  
                <input name="sear" type="hidden" id="sear" value="1"></td>  
            </tr>  
        </tbody>  
    </table>  
</form>  
<table width="800" class="tableborder" cellpadding="3">  
    <tbody>  
      <tr class="header" height="30">   
        <td>ID</td>  
        <td>用户名/用户ID</td>  
        <td>信息</td>  
        <td>扣款</td>  
        <td>时间</td>  
    </tr>  
    <?php  
    while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    {  
        ?>  
        <tr height="30" bgcolor="#FFFFFF">  
          <td><?=$row['id']?></td>  
          <td><?=$row['userid']?></td>  
          <td><?=$row['infoid']?></td>  
          <td><?=$row['money']?></td>  
          <td><?=$row['time']?></td>  
      </tr>  
      <?php  
  }  
  ?>  
    <tr bgcolor="#FFFFFF">  
        <td colspan="5"><?=$listpage?></td>  
    </tr>  
</table>
</body>  
</html>  
<?  
db_close();  
$empire=null;  
?>  
 
CMS COOKIE 及其 管理员/会员 登陆信息获取方式
 
PHP Code复制内容到剪贴板
<?php  
include("./e/class/connect.php");    
    
//后端Back-End    
$ecmsdodbdata       = getcvar('ecmsdodbdata',1);    
$eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    
$loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    
$loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    
$loginlevel         = getcvar('loginlevel',1);        //组ID    
$loginrnd           = getcvar('loginrnd',1);          //认证码加密    
$loginuserid        = getcvar('loginuserid',1);       //用户ID    
$loginusername      = getcvar('loginusername',1);     //用户名    
$logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    
    
//前端Front-End    
$groupid  =getcvar('mlgroupid');   //会员组ID    
$rnd      =getcvar('mlrnd');       //认证码加密    
$userid   =getcvar('mluserid');    //会员ID    
$username =getcvar('mlusername');  //会员用户名  
echo $username.'<br/>';    
?>  
 
例:
 
PHP Code复制内容到剪贴板
<?php  
//会员信息  
$tmgetuserid=(int)getcvar('mluserid');  //用户ID  
$tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
$tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
if($tmgetuserid)    //已登录  
{  
}else{//未登录  
};  
?>  
 
PHP Code复制内容到剪贴板
define('ECMS_PATH',substr(dirname(__FILE__),0,-7));  
 
帝国CMS封装后的增、删、改、查语句:
 
PHP Code复制内容到剪贴板
//修改  
$res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
  
//插入  
$res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
  
//删除  
$res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
  
//查询单条数据  
$res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
  
//查询多条数据  
$sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
while($praise=$empire->fetch($sql)){  
  $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
  if($res){  
    $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
  }  
}  
 
设置指定表的索引字段,增加查询效率
 
PHP Code复制内容到剪贴板
ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )  
 
FIND_IN_SET(str,strlist)函数
 
PHP Code复制内容到剪贴板
//筛选包含product的,并且对question_id去重  
SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
  
  
//筛选不包含product的,并且对question_id去重  
SELECT * FROM `mcc_service_question_options` GROUP BY question_id HAVING !FIND_IN_SET('product', GROUP_CONCAT(TYPE))  
 
str 要查询的字符串
 
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
 
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
 
DEMO:
  
PHP Code复制内容到剪贴板
//查询area中包含”1″这个参数的记录  
SELECT * from test where FIND_IN_SET('1',area)  
  
//查询btype字段中包含”15″这个参数的值  
SELECT * from test where FIND_IN_SET('15',btype)  
  
FIND_IN_SET和like的区别
 
like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
  
读取单条数据库记录函数:(不循环)
 
PHP Code复制内容到剪贴板
$empire->fetch1("SQL语句")  
   
使用范例:  
$r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
echo"标题:".$r['title'];  
   
4、统计SQL查询记录数函数:  
$empire->num("SQL语句")  
$empire->num1($sql)  
   
说明:  
两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
   
使用范例:  
$num=$empire->num("select id from {$dbtbpre}ecms_news");  
echo"新闻表共有 ".$num." 条新闻";  
 
 
统计SQL查询记录数函数2:(相对于num更高效的函数)
 
PHP Code复制内容到剪贴板
$empire->gettotal("统计SQL语句");  
   
说明:  
gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
gettotal()里的统计数一定要as total,如:“count(*) as total”。  
   
使用范例:  
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
echo"新闻表共有 ".$num." 条新闻";  
  
取得刚插入表的自增ID值函数
 
PHP Code复制内容到剪贴板
使用范例:  
$empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
$lastid=$empire->lastid();  
echo"刚插入的信息ID为:".$lastid;  
 
 
移动SQL查询结果记录指针
 
PHP Code复制内容到剪贴板
$empire->seek($sql,$pit)  
   
说明:  
$sql为query执行SQL返回的结果,$pit为指针的偏移数。  
   
使用范例:  
$sql=$empire->query("select * from {$dbtbpre}ecms_news");  
$empire->seek($sql,2);  
  
释放SQL查询结果函数:(一般不需要使用)
 
PHP Code复制内容到剪贴板
$empire->free($sql)  
   
说明:  
$sql为query执行SQL返回的结果。  
   
使用范例:  
$sql=$empire->query("select * from {$dbtbpre}ecms_news");  
$empire->free($sql);  
  
帝国CMS常用函数介绍
 
一、esub()截取字段函数
语法:esub(字符串,截取字数,后缀)
说明:后缀为截取字符后附带内容,此参数可以省略。
使用范例:
<?=esub('12345678',6)?>,返回结果为:123456
<?=esub('12345678',6,'...')?>,返回结果为:123456...
  
二、date()转换时间格式函数
语法:date(时间格式,时间戳)
说明:PHP本身函数,使用说明可以参考:http://cn2.php.net/manual/en/function.date.php
使用范例:
<?=date('Y-m-d H:i:s',1277865010)?>,返回结果为:2010-06-30 10:30:10
  
三、format_datetime()转换时间格式函数2
语法:format_datetime(正常时间,时间格式)
说明:和date()的区别是format_datetime是转换正常时间,而date是转换unix时间戳。
使用范例:
<?=format_datetime('2010-06-30 10:30:10','m/d')?>,返回结果为:06/30
  
四、通过ID取得栏目地址函数
语法:sys_ReturnBqClassname($r,9)
说明:$r为含栏目ID的数组,变量名可任意命名。
使用范例:取得栏目ID=2的栏目地址。
<?php
$cr['classid']=2;
$classurl=sys_ReturnBqClassname($cr,9);
echo $classurl;
?>
 
通过ID取得栏目地址的其他方法:
(1)、/e/public/ClassUrl/?classid=栏目ID
(2)、/<?=$class_r[栏目ID]['classpath']?>
  
五、取得信息内容页地址函数
语法:sys_ReturnBqTitleLink($r)
说明:$r为含“id,classid,newspath,filename,groupid,titleurl”字段内容的数组,变量名可任意命名。
使用范例:取得信息ID=8的新闻页面地址
<?php
$nr=$empire->fetch1("select id,classid,newspath,filename,groupid,titleurl from {$dbtbpre}ecms_news where id='8' limit 1");
$titleurl=sys_ReturnBqTitleLink($nr);
echo $titleurl;
?>
  
通过ID取得信息内容页地址的其他方法:
/e/public/InfoUrl/?classid=栏目ID&id=信息ID
  
六、提示信息函数1
语法:printerror($error,$gotourl,$ecms,$noautourl,$novar)
说明:
$error:提示信息内容,可以为语言包变量,也可以直接提示内容。
$gotourl:提示信息转向链接地址
$ecms:0为后台提示信息、1为前台提示信息、8为后台提示信息(alert方式)、9为前台提示信息(alert方式)
$noautourl:0为自动转向页面,1为不自动转向页面。此参数可省略,默认为0
$novar:0为提示信息内容采用语言包变量,1为提示信息内容为直接提示内容。此参数可以省略,默认为0
使用范例:
printerror('DbError','http://www.phome.net',1),前台提示,提示信息内容为语言包DbError变量内容,转向帝国网站
printerror('数据库出错','http://www.phome.net',1,0,1),前台提示,提示信息内容为“数据库出错”,转向帝国网站
附加说明:
此函数需结合$editor变量来确定目录层次。默认$editor变量为0。
当程序文件在/e/path/目录,$editor不用设置,也就是用默认0。
当程序文件在/e/path/path2/目录,$editor=1。
当程序文件在/e/path/path2/path3/目录,$editor=2。
当程序文件在/e/path/path2/path3/path4/目录,$editor=3。
  
七、提示信息函数2 (直接提示内容)
语法:printerror2($error,$gotourl,$ecms,$noautourl)
说明:
$error:直接提示信息的内容。
$gotourl:提示信息转向链接地址
$ecms:0为默认提示信息方式、9为弹出提示信息方式(alert方式)。此参数可省略,默认为0
$noautourl:0为自动转向页面,1为不自动转向页面。此参数可省略,默认为0
使用范例:
printerror2('添加完毕','http://www.phome.net'),提示信息内容为“添加完毕”,转向帝国网站
附加说明:
此函数不需要结合其他变量,可以在任意目录层次使用。不支持使用语言包变量。
  
八、设置系统COOKIE变量函数
语法:esetcookie($var,$val,$life,$ecms)
说明:
$var:为变量名
$val:为变量值
$life:为COOKIE有效时间,单位秒,0为不保存。此参数可省略,默认为不保存。(设置变量名用 双引号;    设置过期时间,用当前时间戳+要过期的秒数)
$ecms:0为设置前台COOKIE变量,1为设置后台COOKIE变量。此参数可省略,默认为0。
使用范例:
esetcookie('mybody','帝国'),定义前台“COOKIE前缀+mybody”变量,变量内容为“帝国”
esetcookie('mybody','帝国',0,1),定义后台“COOKIE前缀+mybody”变量,变量内容为“帝国”
附加说明:
此设置COOKIE函数会给变量名加上COOKIE前缀,你可也可以直接用PHP本身的setcookie来定义。
  
九、取得系统COOKIE变量函数
语法:getcvar($var,$ecms)
说明:
$var:为变量名
$ecms:0为设置前台COOKIE变量,1为设置后台COOKIE变量。此参数可省略,默认为0。
使用范例:
getcvar('mlusername'),取得前台登陆会员的用户名
getcvar('loginusername',1),取得后台登陆管理员的用户名
附加说明:
此取得COOKIE函数是取得变量名加上COOKIE前缀的变量,你可也可以直接用PHP本身的$_COOKIE['变量名']来取得。
  
十、取得IP地址函数
语法:egetip()
使用范例:
<?php
$ip=egetip();
echo $ip;
?>
  
十一、动态页面显示分页函数
语法:page1($num,$line,$page_line,$start,$page,$search)
说明:
$num:总记录数
$line:每页显示数量
$page_line:每页显示分页链接数
$start:预设变量,设置0即可。
$page:当前页码(0为起始页码)
$search:链接附加参数
  
十二、通过栏目ID取得栏目名和栏目别名方法:
栏目名:<?=$class_r[栏目ID]['classname']?>
栏目别名:<?=$class_r[栏目ID]['bname']?>
 
 
1、如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?
答:可以在开发的程序代码顶部一行加:
 
PHP Code复制内容到剪贴板
define('EmpireCMSAdmin','1');  
 
就可以不受此设置影响。
  
2、LoadLang()导入语言包文件路径是如何表示的
答:导入语言包文件地址是相对于 ../data/language/ 目录,例子:
(1)、如果程序文件在/e/extend/目录,比如:/e/extend/a.php,则导入语言包可以用:
 
PHP Code复制内容到剪贴板
require LoadLang('pub/fun.php');  
 
(2)、如果程序文件在/e/extend/helloworld/目录,比如:/e/extend/helloworld/a.php,则导入语言包可以用:
require '../'.LoadLang('pub/fun.php');
(3)、如果程序文件在根目录,比如:/a.php,则导入语言包可以用:
require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');
 
 
3、$editor声明目录层次变量是如何表示的:
答:此变量如果没有使用printerror()等函数可以不设置。
默认$editor变量为0。
当程序文件在/e/path/目录,$editor不用设置,也就是用默认0。
当程序文件在/e/path/path2/目录,$editor=1。
当程序文件在/e/path/path2/path3/目录,$editor=2。
当程序文件在/e/path/path2/path3/path4/目录,$editor=3。
 
 
4、导入文件介绍:
导入栏目、专题、标题分类缓存文件:/e/data/dbcache/class.php
导入会员组缓存文件:/e/data/dbcache/MemberLevel.php
导入标签函数文件:/e/class/t_functions.php
导入编译标签文件:/e/class/functions.php
 
 
5、推荐变量过滤处理
(1)、数字型变量可以用(int)或intval函数处理,例子:
 
PHP Code复制内容到剪贴板
$page=(int)$_GET['page'];  
或  
$page=intval($_GET['page']);  
 
(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子:
 
PHP Code复制内容到剪贴板
$money=(float)$money;  
或  
$money=floatval($money);  
 
(3)、字符型处理:
不带空格或其他特殊符号的,用
 
PHP Code复制内容到剪贴板
RepPostVar()  
 
带空格或其他特殊符号的用:
 
PHP Code复制内容到剪贴板
RepPostVar2()  
 
写入数据库的用:
 
PHP Code复制内容到剪贴板
RepPostStr()  

(编辑:牡丹江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!