【问题标题】:Why is my Joomla user plugin not called?为什么我的 Joomla 用户插件没有被调用?
【发布时间】:2012-10-01 16:28:03
【问题描述】:

我为 Joomla 编写了一个小型用户插件!这应该根据用户组更改登录时的返回 url。但是,它甚至没有被调用。我做错了什么?

class plgUserPluginName extends JPlugin
{
    /**
    * This method should handle any login logic and report back to the subject
    *
    * @param    array   $user       Holds the user data
    * @param    array   $options    Array holding options (remember, autoregister, group)
    *
    * @return   boolean True on success
    * @since    1.5
    */
    public function onUserLogin($user, $options = array())
    {
        $user = JFactory::getUser();
        $db = JFactory::getDBO();
        $db->setQuery(
            'SELECT link_id FROM '.$db->quoteName('#__mt_links') .
            ' WHERE '.$db->quoteName('user_id').' = '.$db->quote($user->id)
        );
        $link_id = $db->loadResult();
        if(!$link_id){
            $db->setQuery(
               'SELECT group_id FROM '.$db->quoteName('#__user_usergroup_map') .
               ' WHERE '.$db->quoteName('user_id').' = '.$db->quote($user->id)
            );
            $group_id = $db->loadResult();
            if($group_id == somegroupid) $options['return'] = 'abc';
            elseif($group_id == someothergroupid) $options['return'] = 'xyz';
        }
        return true;
    }
}

我的 xml 是:

<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin" group="user">
    <name>plg_user_pluginname</name>
    <version>1.0.0</version>
    <description>PLG_USER_PLUGINNAME_XML_DESCRIPTION</description>
    <files>
        <filename plugin="pluginname">pluginname.php</filename>
        <filename>index.html</filename>
    </files>
    <languages>
        <language tag="en-GB">en-GB.plg_user_pluginname.ini</language>
        <language tag="en-GB">en-GB.plg_user_pluginname.sys.ini</language>
    </languages>
    <config>        
    </config>
</extension>

【问题讨论】:

  • 一个常见的错误是安装后没有激活插件。为此,请转到 admin->extensions

标签: plugins joomla2.5


【解决方案1】:

我不确定以下两个中哪一个解决了它,但是

a) 我将我的插件重命名为 plgUserPluginname 而不是 plgUserPluginName(名称为小 n) b) 我将可访问性从 Registered 更改为 Public

现在正在调用它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2022-10-15
    相关资源
    最近更新 更多