首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Joomla:无法使用onUserAfterSave使插件工作

Joomla:无法使用onUserAfterSave使插件工作
EN

Stack Overflow用户
提问于 2012-02-15 22:53:04
回答 1查看 1.6K关注 0票数 0

尝试了六种不同的方法,但还是没有用。本地机器上的Joomla 1.7.3。这个插件什么也不做,但实际上还没有破坏任何东西。据我所知,命名约定没问题。

我要做的是用新用户的userid在数据库表中插入一个新行。表已经创建,我检查了SQL查询,以确保它正常工作。

代码语言:javascript
运行
复制
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

// Import library dependencies
jimport('joomla.plugin.plugin');

class plgUserCNPluginUpdate extends JPlugin 
{
    function onUserAfterSave ($user, $isnew, $success, $msg) 
    {
        if (!$success) 
        {
            return false;
        }
        if ($isnew) 
        {
            $db = JFactory::getDbo();
            $db->setQuery(
                'INSERT INTO `#__cnuser_cginfo`(`RecordID`,`UserID`) VALUES (NULL,'.(int) $user['id'].')'
            );
            $db->Query();
            return true;
        }
    }
}

我是不是漏掉了什么明显的东西?我一直在四处寻找,我尝试过的任何解决方案都是行不通的。它在正确的地方,我可以看到它的插件管理屏幕。希望有人能在这方面给我一些建议。

EN

回答 1

Stack Overflow用户

发布于 2012-02-16 00:00:21

假设这是在Joomla 1.6/7/2.5.如果您将其放在正确的位置,即/plugins/user/cnpluginupdate/将db代码包装在一些错误检查中,如下所示:

代码语言:javascript
运行
复制
try
{
    $db = JFactory::getDbo();
    $db->setQuery(
        'INSERT INTO `#__cnuser_cginfo`(`RecordID`,`UserID`)
         VALUES (NULL,'.(int) $user['id'].')'
    );

    if (!$db->query()) {
        throw new Exception($db->getErrorMsg());
    }        

    catch (JException $e)
    {
        $this->_subject->setError($e->getMessage());
        return false;
    }
}

  1. ,您现在只返回true,不管发生了什么,所以不会报告错误。使用上面所示的try来捕获一个可能的错误.
  2. 您确定它通过了if (!$success) -通常在执行任何工作之前您都会检查所有的输入,并且只有在代码遇到错误时才返回false

例如:

代码语言:javascript
运行
复制
function onUserAfterSave($data, $isNew, $result, $error)
{
    $userId = JArrayHelper::getValue($data, 'id', 0, 'int');

    if ($userId && $result && isset($data['profile']) && (count($data['profile'])))
    {
      // then 'try' your code here
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9302757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档