我们在用开源软件开发一个项目时,有的内容自己也不是很理解,开放给用户不太好,但是又不想删除相关功能,这个时候只需要做个开关,将相关掉将功能隐藏掉,在需要时再打开,这里以zabbix登陆页面底部链接做成配置项
1.设计数据表bw_config,将底部链接数据记录下来
2.写一个文件bw_config.php,将数据做成php超全局变量
<?php //连接数据库方式 $conn = new mysqli('127.0.0.1', 'zabbix', '123456', 'zabbix'); if ($conn -> connect_errno) { printf("Connect failed: %s ", $conn->connect_error); exit(); } //查询代码 $sql = "select * from zabbix.bw_config"; $query = $conn->query($sql); if($query->num_rows>0){ while($row=$query->fetch_assoc()){ $name=$row["name"]; $sVal=$row["value"]; //$ifNum=$row["ifNum"]; $GLOBALS[$name]=$sVal; ?>
3.写一个公共函数,放在公共页面中(越公共越好)
//此函数用于全局调用,我选择的文件为/usr/share/zabbix/include/config.ini.php,写在最下面就好 function bw_GetConfig($varName, $varType) { if(isset( $GLOBALS[$varName])){ if($varType==0) return $GLOBALS[$varName]; else return number_format($GLOBALS[$varName]); } else { if($varType==0) return(""); else return(0); } }
4.在需要修改的页面引用公共函数和bw_config.php文件,根据数据判断该项是否展示
我选择的是底部链接,修改文件为/usr/share/zabbix/include/classes/helpers/CBrandHelper.php
//我选择的是底部链接,修改文件为/usr/share/zabbix/include/classes/helpers/CBrandHelper.php //在开头加载配置文件,设置我们需要的超全局变量 require_once dirname(__FILE__).'/../../../bw_config.php'; //在适当的位置调用全局函数,获取我们想要的变量 $comp_name=bw_GetConfig('comp_name',0); $comp_url=bw_GetConfig('comp_url',0); if($comp_name!="" && $comp_url!=""){ $footer = self::getValue( 'BRAND_FOOTER', [ //(new CLink('呵呵哒', 'http://www.baidu.com.cn/')) (new CLink($comp_name, $comp_url)) ->addClass(ZBX_STYLE_GREY) ->addClass(ZBX_STYLE_LINK_ALT) ->setAttribute('target', '_blank') ->setAttribute('style','text-decoration:none;') ] ); } else { $footer = self::getValue( 'BRAND_FOOTER',[ ] );
好了,大功告成,现在只需要我们改变数据库,就能改变页面数据了