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

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

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

posted @   老虎死了还有狼  阅读(252)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示