草庐IT

php - Wordpress - 商业智能精简版插件

coder 2023-10-24 原文

我们有一个用于监控客户网站性能的网站,我们正在使用商业智能 wordpress 插件向客户展示有关性能的信息。当一个新客户第一次登录并选择他的仪表板时,我们收到以下错误,当我们在数据库中更新时,错误消失但仪表板第一次应该显示自定义消息。 我正在使用以下 sql 查询

select lastsamplestatus,lasterrorat,avguptimeday,status from
selenium_script_data as ssd inner join selenium_scripts as ss
on ss.script_id=ssd.selenium_id inner join wp_users as wu on 
wu.ID=ss.customer_id where wu.ID={{{user_ID}

注意: undefined variable :/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/functions/functions.php 第 405 行中的 label_x

注意: undefined variable :/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/functions/functions.php 第 417 行的数据

警告:为/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/functions/functions.php 第 417 行中的 foreach() 提供的参数无效

注意:试图在/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/resources/nvd3/wrappers/nvd3_lineChart.php 中获取非对象的属性第 60 行

注意: undefined variable :/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/resources/nvd3/wrappers/nvd3_lineChart.php 第 154 行中的 ds

注意:试图在/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/resources/nvd3/wrappers/nvd3_lineChart.php 中获取非对象的属性第 154 行

注意: undefined variable :/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/functions/functions.php 第 158 行中的表

注意:试图在/home/sgulechha/alert.com/wp-content/plugins/wp-business-intelligence-lite/functions/functions.php 第 158 行获取非对象的属性

我们想在管理员更新数据库之前为用户显示一条普通的自定义消息,我不知道在哪里自定义 functions.php,我从 wordpress 的商业智能插件中获得了这个文件。 我在下面粘贴了部分代码,我们将不胜感激。

//Assign values and labels
    switch($wpbi_chart->type){
        case chart::DONUT:
        case chart::PIE:                if(sizeof($label_x) > 0){
                                                    $wpbi_chart -> set_x_axis_labels($label_x,
                                                    $vo_chart->chart_x_labels_size, 
                                                    $vo_chart->chart_x_labels_color);
                                                }
                                                foreach($data as $key => $value){
                                                //Overwrite data value for pie chart in order to show labels (via pie_value object)
                                                if(sizeof($label_x)>0){
                                                    for($idx = 0; $idx < sizeof($value); $idx++){
                                                        $value[$idx] = new pie_value($value[$idx], $label_x[$idx]);
                                                    }
                                                }
                                                $wpbi_chart -> set_tooltip($wpbi_dialog['charts']['pie']['tooltip']);
                                                $wpbi_chart -> create_element($key, $value);
                                                $wpbi_chart -> elements[$key] -> set_colours($wpbi_settings['pie-chart']['color-set']);
                                                }
                                                break;
        case chart::BAR_STACKED:        if(sizeof($label_x) > 0){
                                                $wpbi_chart -> set_x_axis_labels($label_x,
                                                    $_POST[$wpbi_settings['parameter']['ch-x-label-size']],
                                                    $_POST[$wpbi_settings['parameter']['ch-x-label-color']]);
                                                    $wpbi_chart->x_axis_istime = (sizeof($istime_cols) > 0);
                                                    if($wpbi_chart->x_axis_istime){
                                                        $wpbi_chart->x_axis_labels->labels = $wpbi_chart->convert_to_time($wpbi_chart->x_axis_labels->labels);
                                                    }
                                                }
                                                    $wpbi_chart-> set_y_axis_labels_color($_POST[$wpbi_settings['parameter']['ch-y-label-color']]);
                                                    $wpbi_chart-> set_y_axis_labels_size($_POST[$wpbi_settings['parameter']['ch-y-label-size']]);
                                                    foreach($data_stacked as $key => $value){
                                                        $wpbi_chart -> create_element('BAR_STACKED', $value);
                                                        $wpbi_chart -> elements['BAR_STACKED'] -> set_colours($stacked_label_color);
                                                    }
                                                    break;
        case chart::STACKED_AREA:
        case chart::LINE_AREA:      if(sizeof($label_x) > 0){
                                                    $wpbi_chart -> set_x_axis_labels($label_x,
                                                    $vo_chart->chart_x_labels_size, 
                                                    $vo_chart->chart_x_labels_color);
                                                }
                                                $wpbi_chart-> set_y_axis_labels_color($vo_chart->chart_y_labels_color);
                                                $wpbi_chart-> set_y_axis_labels_size($vo_chart->chart_y_labels_size);
                                                foreach($data as $key => $value){
                                                    $wpbi_chart -> create_element($key, $value);
                                                    $wpbi_chart -> elements[$key] -> set_colour($label_color[$key]);
                                                    $wpbi_chart -> elements[$key] -> set_fill_colour($label_color[$key]);
                                                    $wpbi_chart -> elements[$key] -> set_fill_alpha( 0.5 );
                                                }
                                                break;
        case chart::RADAR:          if(sizeof($label_x) > 0){
                                                    $wpbi_chart -> set_y_axis_labels($label_x,
                                                    $vo_chart->chart_y_labels_size, 
                                                    $vo_chart->chart_y_labels_color);
                                                }
                                                foreach($data as $key => $value){
                                                    $wpbi_chart -> create_element($key, $value);
                                                    $wpbi_chart -> elements[$key] -> set_colour($label_color[$key]);
                                                }
                                                break;
        case chart::BAR_HORIZONTAL: if(sizeof($label_x) > 0){
                                                    $wpbi_chart -> set_y_axis_labels($label_x,
                                                    $vo_chart->chart_y_labels_size, 
                                                    $vo_chart->chart_y_labels_color);
                                                }
                                                $wpbi_chart-> set_x_axis_labels_color($vo_chart->chart_x_labels_color);
                                                $wpbi_chart-> set_x_axis_labels_size($vo_chart->chart_x_labels_size);
                                                foreach($data as $key => $value){
                                                    $wpbi_chart -> create_element($key, $value);
                                                    $wpbi_chart -> elements[$key] -> set_colour($label_color[$key]);
                                                }
                                                break;
        default:                                if(sizeof($label_x) > 0){
                                                    $wpbi_chart -> set_x_axis_labels($label_x,
                                                    $vo_chart->chart_x_labels_size, 
                                                    $vo_chart->chart_x_labels_color, sizeof($istime_cols) > 0);
                                                    $wpbi_chart->x_axis_istime = (sizeof($istime_cols) > 0);
                                                    echo "welcome";
                                                } else {
                                                $wpbi_chart->set_x_axis_labels_color($vo_chart->chart_x_labels_color);
                                                $wpbi_chart->set_x_axis_labels_size($vo_chart->chart_x_labels_size);
                                                }
                                                $wpbi_chart-> set_y_axis_labels_color($vo_chart->chart_y_labels_color);
                                                $wpbi_chart-> set_y_axis_labels_size($vo_chart->chart_y_labels_size);
                                                foreach($data as $key => $value){
                                                    $wpbi_chart -> create_element($key, $value);
                                                    $wpbi_chart -> elements[$key] -> set_colour($label_color[$key]);
                                                }
                                                break;
    }

最佳答案

好的 friend 。放轻松。

这里有几点需要注意:

1 - 显示错误是因为您的 error_reporting 设置为 E_ALL。如果您像下面这样设置,将不会显示错误。

error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

但是,它不会解决代码上的错误。只会隐藏它。

2 - 当您看到“为 foreach() 提供的参数无效”时,您的代码正在尝试迭代一个空变量。您需要转到该文件和行,然后做一些简单的事情:

if ($yourVariable && count($yourVariable)>0)
   foreache($yourVariable as $yourValue){
   }

它将防止使用无效变量调用 foreach。

3 - 当它在该行显示“尝试获取非对象的属性”时,您有一个不是对象的变量。它可以是一个字符串,或一个整数..或其他任何东西..它只是不是一个对象。


查看所有错误,您可以看到 data 变量为空,然后所有错误都发生在这之后,因为该代码始终与 $data 一起运行。尝试检查您的代码以确保 $data 在启动之前具有值。

关于php - Wordpress - 商业智能精简版插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31739812/

有关php - Wordpress - 商业智能精简版插件的更多相关文章

  1. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  4. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  5. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  6. IDEA使用LeetCode插件 - 2

    前言我们习惯用idea编写、调试代码,在LeetCode上刷题时,如果能够在IDEA编写代码,并且做好代码管理,是一件事半功倍的事情。对于后续复习题目,做笔记也会非常便利。本文目的在于介绍LeetCodeEditor的使用,以及配置工具类,最终目录结构如下:note:放置笔记src:放置代码leetcode.editor.cn:插件LeetCodeEditor自动生成utils:自定义的工具包,可用于自动化输入测试用例,定义题目需要的类(结构体)out:运行测试时自动生成LeetCodeEditorGitHub:https://github.com/shuzijun/leetcode-edit

  7. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  8. regex - Ruby 是否有类似于 Perl 6 语法的插件? - 2

    多年来,Perl一直是我首选的编程语言工具之一。Perl6语法看起来像是一个很棒的语言特性。我想知道是否有人开始为Ruby做这样的事情。 最佳答案 如果您想在Ruby中使用实际的Perl6语法,最好的选择是Cardinal,Parrot上的ruby​​编译器。它目前尚未完成并且非常缓慢,但我非常希望它最终成为一个可行的ruby​​实现。它目前大部分处于非事件状态,等待Parrot中的一些基础架构更改以支持改进的解析速度和其他功能。 关于regex-Ruby是否有类似于Perl6语法的插件

  9. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  10. ruby-on-rails - 你为 Rails 推荐哪个状态机插件? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在为Rails3/ActiveRecord项目寻找一个相对简单的状态机插件。我做了一些研究并提出了以下插件:转换:https://github.com/qoobaa/transitions从旧的ActiveRecord状态机库中提取

随机推荐