您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程
帝国CMS二次开发怎么引用函数文件的方法
济帆2023-01-17 13:47:39帝国CMS教程已有9人查阅
导读like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
CMS COOKIE 及其 管理员/会员 登陆信息获取方式
例:
帝国CMS封装后的增、删、改、查语句:
设置指定表的索引字段,增加查询效率
FIND_IN_SET(str,strlist)函数
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
DEMO:
FIND_IN_SET和like的区别
like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
读取单条数据库记录函数:(不循环)
统计SQL查询记录数函数2:(相对于num更高效的函数)
取得刚插入表的自增ID值函数
移动SQL查询结果记录指针
释放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的栏目地址。
通过ID取得栏目地址的其他方法:
(1)、/e/public/ClassUrl/?classid=栏目ID
(2)、/<?=$class_r[栏目ID]['classpath']?>
五、取得信息内容页地址函数
语法:sys_ReturnBqTitleLink($r)
说明:$r为含“id,classid,newspath,filename,groupid,titleurl”字段内容的数组,变量名可任意命名。
使用范例:取得信息ID=8的新闻页面地址
通过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()
使用范例:
十一、动态页面显示分页函数
语法: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、如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?
答:可以在开发的程序代码顶部一行加:
就可以不受此设置影响。
2、LoadLang()导入语言包文件路径是如何表示的
答:导入语言包文件地址是相对于 ../data/language/ 目录,例子:
(1)、如果程序文件在/e/extend/目录,比如:/e/extend/a.php,则导入语言包可以用:
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函数处理,例子:
$page=(int)$_GET['page'];
或
$page=intval($_GET['page']);
(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子:
$money=(float)$money;
或
$money=floatval($money);
(3)、字符型处理:
不带空格或其他特殊符号的,用
RepPostVar()
带空格或其他特殊符号的用:
RepPostVar2()
写入数据库的用:
RepPostStr()
帝国CMS栏目缓存是存放帝国每个栏目的设置信息 合理利用可以极大减少制作模板的工作量
帝国CMS系统缓存存放地址:edatadbcacheclass1.php
调用方法:$class_r[栏目ID][变量名]
引入栏目缓存
'classid'=>栏目ID
'bclassid'=>父栏目id,
'classname'=>'栏目名',
'sonclass'=>'子栏目集合',
'featherclass'=>'父栏目集合',
'islast'=>是否终极栏目 1为终极栏目,0为非终极栏目 ,
'classpath'=>'栏目目录',
'classtype'=>'栏目首页扩展名',
'down_num'=>每行下载地址数,
'online_num'=>每行在线观看地址数,
'islist'=>页面显示模式:0为封面式,1为列表式,2为页面内容式,
'tbname'=>栏目对应模型数据表,
'modid'=>栏目对应模型ID,
'lencord'=>每页显示信息数,
'link_num'=>相关链接数,
'newstempid'=>内容模板ID,
'listtempid'=>列表模板ID,
'filetype'=>'内容页文件扩展名',
'checked'=> 信息默认是否审核 1为直接审核,0为未审核 ,
'bname'=>栏目别名,
'reorder'=>'列表式页面排序方式',
global $ecms_config;
获取会员用户信息:
随机调用五个终极栏目的信息(非栏目下的文章信息)
远程保存文件(url,栏目ID):
截取图片,可以是指定的文本中的远程保存所有图片
$copyimg 是否保存该文本中的图片地址到本地,是传1
$copyflash 是否保存该文本中的flash到本地,是传1
$classid 栏目ID
$qz 可为空
$theid 会员ID
$cjid 文件临时识别编号
$mark 是否需要水印,是传1
$fstb 附件表 在调用copyimg函数的最上面有一个global $class_r,$empire,$public_r,$dbtbpre,$emod_r;,所以这里可以传$public_r['filedeftb']
与bootstrap结合后的分页:
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
帝国CMS给网站内容增加海报功能的方法
细心的小伙伴可能看到小编部分做的模板里面已经有这个功能了,此次发布的这个功能就是单独的通用版本。适合几乎所有的帝国CMS做成的内容页面,已经做了各种容错。帝国CMS怎么导入会员excel插件
插件用途:批量导入excel制作好的会员表,支持定义字段,比如手机号,身份证号等!自动判断是否重复,有重复则不导入,导入成功显示结果!适用程序:帝国CMS7.X UTF8版本,不修改帝国CMS本身帝国CMS邮件欢迎会员注册激活的方法
教程步骤 会员注册激活后发送欢迎邮件(在7.5版本下修改的,其余版本使用情况未知。大家修改程序前请先备份需要修改的程序,以防万一)帝国cms验证码不显示的解决方法
帝国cms验证码打叉不显示解决方法一般是utf8版本的帝国cms会遇到了,原因是你用普通记事本修改了 e/config/config.php (6.6版本的帝国是 e/class/config.php)
留言与评论 (共有 0 条评论) |