使用onUserAfterSave创建joomla插件时出现mysql错误

时间:2014-09-06 19:57:33

标签: joomla-extensions joomla3.3

我制作了插件,对我们的XML服务器进行身份验证,该服务器就像魅力一样。 但是现在我正在尝试为onUserAfterSave上的函数创建插件,这样我就可以进行后登录处理,比如指定一个用户将其分组。

但是ik无法获得基本的工作。

我在xml文件中的扩展定义如下所示:

<extension version="3.1" type="plugin" group="user">

和这样的php文件         

    // No direct access
    defined('_JEXEC') or die;
    //include_once "functions.php";

    /**
     * HCC XML-RPC login handler plugin
     *
     * @package Joomla.Plugin
     * @subpackage  User.hcc_xml_handler
     * @since 3.1
     */
    class PlgUserhcc_xml_handler extends JPlugin
    {
        /**
        * This plug process the extra login information.
        *
        *
        * @param   array    $user     Holds the new user data.
        * @param   boolean  $isnew    True if a new user is stored.
        * @param   boolean  $success  True if user was succesfully stored in the database.
        * @param   string   $msg      Message.
        *
        * @return  void
        *
        * @since   1.6
        */
        public function onUserAfterSave($user, $isnew, $success, $msg)
        {
            /*
            $debug = $this->params->get('debug', '0');
            if ($debug == '1')
            {$debugfile = $this->params->get('debugfile', '');}
            else{$debugfile = "";}

            $debug = $this->params->get('debug', '0');
            */
            $debug = '1';
            $debugfile = "/disk/site/hcc.nl/poc-groepen/logging/hcc_xml_handler-debug.log";
            if ($debug == '1')
            {
                // set debug log file if debug is enabled
                $debugstartmsg  = "=====================================\n";
                $debugstartmsg .= "= start hcc_xml_handler.php aanroep =\n";
                $debugstartmsg .= "=====================================\n";
                file_put_contents($debugfile, $debugstartmsg, FILE_APPEND | LOCK_EX);
            }

            if (!$success)
            {
                if ($debug == '1')
                {
                    $debugsuccessmsg = "login gelukt" ;
                    file_put_contents($debugfile, $debugsuccessmsg, FILE_APPEND | LOCK_EX);
                }
                return false;
            }
            if ($isnew)
            {
                if ($debug == '1')
                {
                    $debugnewsmsg = "login NEW" ;
                    file_put_contents($debugfile, $debugnewsmsg, FILE_APPEND | LOCK_EX);
                }
            return false;
            }
            if ($debug == '1')
            {
                // set debug log file if debug is enabled
                $debugstopmsg  = "=====================================\n";
                $debugstopmsg .= "=  stop hcc_xml_handler.php aanroep =\n";
                $debugstopmsg .= "=====================================\n";
                file_put_contents($debugfile, $debugstopmsg, FILE_APPEND | LOCK_EX);
            }


        }
    }

我做错了什么?

我在日志记录中看到的错误是:

mysqli_fetch_row()要求参数1为mysqli_result,布尔值在第785行的/www/libraries/joomla/database/driver/mysqli.php中给出,参考文献:https://someurl.hcc.nl/ mysqli_free_result()要求参数1为mysqli_result,在第828行的/www/libraries/joomla/database/driver/mysqli.php中给出布尔值,参考文献:https://someurl.hcc.nl/

任何一个想法?

1 个答案:

答案 0 :(得分:0)

我切换到功能onUserAfterLogin为我做了