在Joomla 3.7中的jos_user表上再添加一列

时间:2017-09-01 12:22:21

标签: joomla joomla3.5

我正在开发自定义身份验证插件,用于从第三方API登录joomla。

当我们使用用户/密码登录任何Joomla实例时,用户/ pass传递给API获取正确的响应(如login_id,username,employee_ident,email,common name。)然后Joomla在Joomla上创建用户并保存Joomla数据库上的响应(如用户名,全名,电子邮件)。现在ccms auth插件工作正常。

我的要求是在API中使用用户身份验证插件时在jos_users上再保存一列。为此,我在jos_user表中创建了一列employee_ident,但是无法在jos_user表的joomla db中保存employee_ident。

这是我的代码:

$result = $client->call($method, $params);

 [0] => Array
    (
        [login_id] => Frasier.9878
        [email_address] => frabc@gmail.com
        [position_code_type_ident] => 157
        [employee_ident] => 166651
        [position_code_department_abbr_name] => executive_management
        [position_code_title] => Chief Financial Officer
        [hire_date] => 2003-01-20
        [common_name] => Frasier Crane

    )
if($result)
            {       
            $email_address            = isset($result[0][email_address]) ? $result[0][email_address] : $credentials['username']."@test.com"; 
            $response->email          = $email_address;
            $response->fullname       =$result[0][common_name];   
            $response->employee_ident =$result[0][employee_ident];              
            $response->username       =$credentials['username'];

            $response->status        = JAuthentication::STATUS_SUCCESS;
            $response->error_message = '';  

        }

1 个答案:

答案 0 :(得分:0)

您应该为此创建配置文件插件。默认Joomla!有一个#__user_profiles表,可以容纳其他用户信息。

有关详细信息,请参阅JDocs的此页面:https://docs.joomla.org/Creating_a_profile_plugin/en

另一个例子是核心配置文件插件: https://github.com/joomla/joomla-cms/blob/staging/plugins/user/profile/profile.php