1

我正在使用 joomla 1.7,我希望某些用户没有插入用户名的选项。

我正在尝试在注册时设置(对于所述用户),系统会将输入的电子邮件保存在用户名字段和电子邮件字段中,并从表单中删除用户名文本框。

我知道我需要插入$data['username'] = $data['email']某个地方,但我找不到正确的位置。我试图把它放在下面的注册模型中public function register($temp),但没有成功。我找不到另一个合乎逻辑的地方来放置它。

// Prepare the data for the user object.
$data['my_teacher'] = $data['my_teacher'];
$data['email']      = $data['email1'];
$data['username']   = $data['email1'];
$data['password']   = $data['password1'];
$useractivation = $params->get('useractivation');
4

2 回答 2

0

我找到了一种方法,只需添加

        if(isset($temp['email1'])){
            $temp['username'] = $temp['email1'];
        }

就在下面

     $temp = (array)$app->getUserState('com_users.registration.data', array());

在模块文件中,然后从 .xml 中删除“用户名”字段,并在 views/registration/tmpl 的 default.php 文件中添加一个名为:jform[username] 和 id:jform_username 的隐藏字段

这条线看起来像这样

    <input type="text" name="jform[username]" id="jform_username" value="<?php echo 'something.random.that.will.be.replaced.with.the.email'; ?>" style="visibility:hidden;">

我正在谈论的所有文件都在 /components/com_users/ 下

它应该工作......

于 2012-01-08T12:59:32.207 回答
-1

http://extensions.joomla.org/extensions/access-a-security/authentication/10343

上述扩展将消除用户在注册时输入用户名的需要。但是,它会根据名称字段生成用户名。它仅将电子邮件地址用作用户名作为最后的手段,因为这可能会导致 Joomla 中的某些扩展出现问题。它还允许用户使用他们的电子邮件地址登录。

迪伦

于 2011-11-21T08:06:47.997 回答