8

最近我在Joomla 3.1.1中偶然发现了一种情况,我需要添加一个带有默认注册表单的自定义字段。

我浏览了现有资源,这些资源说我应该导航到 joomla_root/components/com_users/models/forms/registration.xml然后相应地更改文件。

我已经这样做了,但什么都没有出现。我还需要在模型和控制器中更改registration.php。所以,我需要你就如何做到这一点提供意见。我不能使用个人资料插件或商业扩展。

    One more thing that I've noticed is the fact that changing registration.xml file and such things work perfectly fine in Joomla 2.5 but isn't working in 3.x.
4

3 回答 3

7

Joomla 附带一个名为“profile”的用户插件,其中可能包含您想要添加的字段。

在管理员中转到扩展/插件,按类型过滤并选择“用户”,然后找到“配置文件”并打开它。查看右侧的选项,启用插件,瞧。

警告:大多数模板会覆盖注册表单,它们通常不会触发正确的插件事件。如果是这种情况,您的用户将只能在注册中看到“标准”字段。如果你在插件中设置了任何需要的字段,它们将不会被注册,而是重定向到完整的注册页面(用户组件),在那里他们会找到他们已经填写的字段,除了密码,这可以相当恼人的。

如果“配置文件”字段不够,请复制配置文件插件并构建自己的。

不要像以前那样修改配置文件插件或 com_users 文件,这是 Joomla 核心,下次升级时将被覆盖。

于 2013-06-28T11:03:42.170 回答
4

最终发现问题出在一个名为 K2 的组件上。我在 joomla 2.5 中尝试了这个自定义注册的东西,然后突然想到如何禁用 K2 系统插件。它奏效了。

我发布了这样做的步骤:

1.导航到 joomla_root/components/com_users/models/forms/registration.xml 并在那里添加一个字段。

2.然后打开 joomla_root/components/com_users/models/registration.php 然后在函数 register() 中更改您的自定义字段。

3.不要忘记在您在registration.xml中添加的数据库表#_users中添加一个字段

于 2013-06-29T09:55:56.830 回答
0

根据您是否需要将自定义字段添加到数据库中,您可以使用表单构建组件,例如RSForm!ProChronoForms。它们都可以连接到 Joomla 中的用户注册系统,并在自定义电子邮件、向数据库表中添加信息等方面为您提供很大的灵活性。这将使您免受任何可能消除您的修改的核心更新的影响。我相信 Chronoforms 是免费的,只要您不介意在表单中提供与开发人员的链接。

如果您不能这样做,我会确保在更新站点之前备份我修改过的文件。Joomla 3.1.x 是一个短期版本,因此与在 Joomla 2.5.x 站点上工作相比,这些文件被更改的风险更高。

于 2013-08-14T16:21:10.147 回答