将项目中某些常用设置做成配置项

我们在用开源软件开发一个项目时,有的内容自己也不是很理解,开放给用户不太好,但是又不想删除相关功能,这个时候只需要做个开关,将相关掉将功能隐藏掉,在需要时再打开,这里以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',[ ]
            );

好了,大功告成,现在只需要我们改变数据库,就能改变页面数据了

原文地址:https://www.cnblogs.com/daofaziran/p/12981700.html