如何在Joomla 3注册中禁用某些字段的验证

stckvrw

我正在基于Joomla 3构建网站。我需要禁用以下字段的验证:名称,用户名,密码1(第二个,因为第一个是密码2)和email2,并使用email1作为用户名(我安装了插件Email for用户授权)。我试图删除文件component / com_users / models / forms / registration.xml中的这些字段,但仍然保留验证。如果我不删除它们,而仅将这些字段的行required =“ true”更改为false,则注册将完全无效,并且任何存储在数据库中的用户都将无法使用。如何禁用这些字段?

di3sel

这不是一个容易的解决方法,您将需要一些Joomla和PHP的基础知识,但是我将尽我所能向您解释。

>>>创建视图模板替代

首先,您需要创建“注册”视图模板替代(以使其保持Joomla更新证明)。为此,请创建文件夹/ templates / YOUT_TEMPLATE / html / com_users / registration并在其中复制/components/com_users/views/registration/tmpl/default.php文件。

从现在开始,您可以在模板文件夹中修改注册输出。

>>>修改注册表输出

默认情况下,Joomla从定义它们的表单文件/components/com_users/models/forms/registration.xml中获取所有字段,并在视图中输出它们。但是,如果我们不想使用所有字段,则需要手动输出字段。我的示例代码仅输出用于注册的“电子邮件”和“密码”字段。这是执行此操作的示例代码:(default.php文件)

<?php
defined('_JEXEC') or die;
JHtml::_('behavior.keepalive');
?>
<div class="grid_8" id="register_block">
<div class="content_block">
<h1>Registracija</h1>
<div class="login<?php echo $this->pageclass_sfx?>">
<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration2.register'); ?>" method="post" enctype="multipart/form-data">
<div>
<div class="login-fields">
<label id="jform_email1-lbl" for="jform_email1">E-mail:</label>
<input type="text" name="jform[email1]" id="jform_email1" value="" size="30">
</div>
<div class="login-fields">
<label id="jform_password1-lbl" for="jform_password1">Password:</label>
<input type="password" name="jform[password1]" id="jform_password1" value="" autocomplete="off" size="30">
</div>
<button type="submit" class="button"><?php echo JText::_('JREGISTER');?></button>
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="registration2.register" />
<?php echo JHtml::_('form.token');?>
</div>
</form>
</div>
</div>
</div>

请注意,我还将任务值从registration.register替换registration2.register,这样做是为了使用我自己的控制器绕过一些验证规则。

>>>创建控制器替代

找到文件/components/com_users/controllers/registration.php,在同一文件夹中创建一个名为registration2.php的副本

打开文件registration2.php并将其类名从UsersControllerRegistration更改UsersControllerRegistration2

从现在开始,Joomla注册表格将使用此类创建新用户。

查找一个称为register的方法并找到以下行:

$requestData = JRequest::getVar('jform', array(), 'post', 'array');

这是Joomla获取注册表格数据的地方。添加以下行:

$requestData['name'] = $requestData['email1'];
$requestData['username'] = $requestData['email1'];
$requestData['email2'] = $requestData['email1'];
$requestData['password2'] = $requestData['password1'];

它将添加缺少的注册信息,并帮助您通过验证。

注意:这是一个示例代码,以显示主要逻辑。如果有人有更好的解决方案,我会很乐意听到。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Joomla 3.x中禁用用户注册

来自分类Dev

如何在joomla 2.5和3中禁用注册电子邮件

来自分类Dev

如何在Joomla 3中禁用前端登录组件?

来自分类Dev

如何在Joomla 3中禁用前端登录组件?

来自分类Dev

Joomla - 如何在 Joomla 中修复此链接

来自分类Dev

如何在joomla中编写此查询

来自分类Dev

如何在joomla模板中覆盖CSS

来自分类Dev

如何在Joomla中设置会话

来自分类Dev

如何在Joomla表中插入列

来自分类Dev

如何在Joomla中检索用户ID

来自分类Dev

如何在Joomla中更改文章的布局?

来自分类Dev

如何在Joomla 2.5中更改注册消息

来自分类Dev

如何在Joomla 3中更改系统调试位置?

来自分类Dev

如何在Joomla 3中显示PHP / SQL错误

来自分类Dev

如何在joomla 3中添加内联脚本?

来自分类Dev

如何在Joomla 3中修改磁头输出?

来自分类Dev

如何在Joomla 3中使用JModel

来自分类Dev

如何在Amazon Cognito中为某些用户禁用验证?

来自分类Dev

我如何使用Rails仅在注册时验证某些字段

来自分类Dev

如何在joomla中的页面中显示插件

来自分类Dev

JOOMLA 3.x如何在检查后隐藏模板

来自分类Dev

如何在Joomla 2.5中阻止对组件/用户/视图的访问?

来自分类Dev

如何在Joomla 2.5中编辑用户激活邮件正文?

来自分类Dev

如何在Joomla中获取与文章相关的标签

来自分类Dev

如何在joomla 3.2中运行jsfiddle代码

来自分类Dev

如何在Joomla中添加自定义标题数据

来自分类Dev

Joomla:如何在自己的模板中设置主要文章的样式

来自分类Dev

如何在Joomla 2.5中跟踪jos-Error?

来自分类Dev

Joomla如何在资产表中创建“规则”值?