二次开发常见问题


1、如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?
答:可以在开发的程序代码顶部一行加:define('EmpireCMSAdmin','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()函数过滤