帝国CMS 6.6版新增自定义扩展变量功能,用户可以自定义公共的程序使用变量,为用户扩展系统带来便利。比如可以增加像系统$public_r[newsurl]这样的变量,还比如扩展了某个系统模型,需要增加设置项都可以用扩展变量来实现...等等。

自定义扩展变量功能介绍:
(1)、扩展变量支持按分类归类及显示。删除相应分类会删除分类下的变量。
(2)、变量支持是否写入缓存,如果写入缓存,在任意php或模板中用$public_addr['add_变量名']可取得变量内容。
(3)、内置变量返回函数(数据库读取变量内容):ReturnPublicAddVar(变量名)。取多个变量内容可用逗号隔开,例子:
     取得单变量内容:$value=ReturnPublicAddVar('myvar'); //$value就是变量内容。
     取得多个变量内容:$value=ReturnPublicAddVar('myvar1,myvar2,myvar3'); //$value['myvar1']才是变量内容。

上传以下图片:

自定义扩展变量功能的强大在于为二次开发和插件开发提供了便利,再6.5及其以前想要设置类似于$public_r[newsurl](网站地址)这样的的全局变量,我们就必须要更改系统源文件和修改数据表,从而造成升级不不方便,请看下图:

注:
1.后台->系统设置->系统参数设置 所有设置记录在数据表phome_enewspublic
2.$public_r缓存数组记录的是数据表phome_enewspublic大部分设置(6.5及其以前) 6.6应该有个分表记录用户设置(猜测)
3.$public_r缓存记录在e/class/config.php中
4.e/class/connect.php包含了e/class/config.php (包含就是require() 或者 include())
5.所有的控制器均包含/引用了e/class/connect.php (控制器就像e/enews/index.php e/DoInfo/ecms.php 这样的文件,根据对应的表单使用对应的函数和引用对应的文件)
6.非控制器比如e/class/functions.php 或者是是e/data/下的木板缓存文件 默认包含他们的文件都包含了e/class/connect.php存在了,所以$public_r成了全局变量();使用如上图
7.除了$public_r还有e/class/config.php文件里你能看到的 e/class/connect.php function db_connect()上方的 比如$navinfor,是不是很熟系在内容也里$navinfor[title] $navinfor['字段']



可以不用到应用扩展上,来简单点的

1.来个SEOtitle
2.来个备案号(我朝特色,备案号命名统一的话分享模板都不用改备案号了)
3.来个统计代码(大众公共效应之后也不用该模板板了)
n.....
当然这些模板公共变量也可以做到


应用扩展/二次开发/插件开发


1.欢迎邮件 http://bbs.phome.net/showthread-31-172522-0.html
帝国版本:6.5
全局变量(数组成员):三个(是否开启,邮件标题,邮件内容)三个功能部分修改了图“帝国CMS6.6 - 6.5全局变量操作对比”中所叙述的数据表和文件
如果使用:6.6来制作就不会因三个变量的设置造成升级麻烦了
另外也修改了文件:e/class/user.php register() 类似这样的情况,期待老大部分函数的入库前自定义函数和入库后自定义函数




2.信息置顶 http://bbs.phome.net/showthread-13-126136-0.html
可以将扣取积分用本功能设置的全局变量代替,方便修改