【问题标题】:How do I set email as username in Joomla 3.x?如何在 Joomla 3.x 中将电子邮件设置为用户名?
【发布时间】:2013-12-12 19:24:31
【问题描述】:

我设法通过向数据库添加字段并调整 xml 文件和 php 文件来编辑大部分注册表单。我什至发现了一个免费插件,它允许使用电子邮件而不是用户名登录。

但我想不出完全删除用户名的方法。或者至少从表单中删除它并创建一个自动用户名(用户甚至不需要看到)

我很了解Email as Username 插件,但希望没有它我也能做到。

【问题讨论】:

  • 我会坚持使用插件而不是编辑核心 Joomla 文件。您可能已更改的任何文件都可能在下一次 Joomla 更新中被覆盖,所以这正是插件的用途;)
  • 我创建了一个“子主题”(不确定这些在 joomla 中是否被调用)

标签: php email joomla joomla3.2


【解决方案1】:

所以这会有点棘手。 Joomla 不允许将电子邮件传递给身份验证插件,因此您必须通过 username 字段对其进行代理。

在网站上,我将创建一个新的登录模块,只需将username 字段的标签更改为“电子邮件”。您仍然需要将字段名称保留为username

然后,在 Joomla Authentication 插件中,查看https://github.com/joomla/joomla-cms/blob/master/plugins/authentication/joomla/joomla.php#L50

尝试将该行更改为:

->where('email=' . $db->quote($credentials['username']));

现在就试试这个技巧,看看它是否有效。如果确实如此,您需要做的就是复制该插件,并进行修改,然后将其重命名为其他名称(请记住恢复原始插件中的旧代码)。告诉我你的进展情况。

【讨论】:

    【解决方案2】:

    再简单不过了:

    注册

    • 隐藏用户名字段 (CSS)

    • 保存(在创建和编辑期间),用该电子邮件的值填写用户名字段。 (我不是开发人员,在这里无法提供帮助)也许,您有什么想法/建议吗?

    登录

    • 使用简单的语言覆盖将“用户名”标签更改为“电子邮件”(在电子邮件和警报中相同)

    【讨论】:

    • 如果您是 Joomla 开发人员,请通过 Joomla Stack Exchange 加入我们。
    猜你喜欢
    • 2013-05-14
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2012-02-13
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多