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


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

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

  • 相关阅读:
    努力努力,我假期要练琴学css
    在遇到困难时我们都会想要是这一切不曾发生该多好,可现实并不以我们的意志为转移,我们所能做的就是去克服...
    寒假学习目标~
    平安夜&&圣诞节
    you are the ont that we would like to trust and ca...
    Happy New Year!PR升3啦!
    呵呵,Merry Christmas & Happy New Year!
    使用Rx Framework实现XAML中的物体拖动
    MVVM绑定多层级数据到TreeView并设置项目展开
    Entity framework中EntityFunctions.CreateDateTime方法的闰年闰月bug
  • 原文地址:https://www.cnblogs.com/daofaziran/p/12981700.html
Copyright © 2020-2023  润新知