Php 如何在Joomla 1.7中将电子邮件设置为用户名

Php 如何在Joomla 1.7中将电子邮件设置为用户名,php,database,email,joomla,joomla1.7,Php,Database,Email,Joomla,Joomla1.7,我使用的是joomla 1.7,我希望一些用户没有插入用户名的选项 我试图设置注册时(对于上述用户),系统将在用户名字段和电子邮件字段中保存输入的电子邮件,并从表单中删除用户名文本框 我知道我需要在某处插入$data['username']=$data['email'],但我找不到正确的位置。 我试图将它像这样放在注册模型中的公共函数寄存器($temp)下,但没有成功。我找不到另一个合乎逻辑的地方来放它 // Prepare the data for the user object. $data

我使用的是joomla 1.7,我希望一些用户没有插入用户名的选项

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

我知道我需要在某处插入
$data['username']=$data['email']
,但我找不到正确的位置。 我试图将它像这样放在注册模型中的
公共函数寄存器($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');

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

迪伦

我找到了这样做的方法 加上

        if(isset($temp['email1'])){
            $temp['username'] = $temp['email1'];
        }
就在下面

     $temp = (array)$app->getUserState('com_users.registration.data', array());
在模块文件中,然后从.xml中删除“username”字段,并在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;">

谢谢,但我不希望它适用于所有用户。我已经制作了第二份注册表,我希望它只适用于该注册表中的用户。