在默认的Joomla 3.1.1注册表格中添加自定义字段

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.
3个回答

7
Joomla自带了一个名为“profile”的用户插件,其中可能已经包含您想要添加的字段。 在管理员中心进入“扩展/插件”,按类型筛选并选择“用户”,然后找到“Profile”并打开它。查看右侧的选项,启用该插件即可。 警告:大多数模板会覆盖注册表单,通常不会触发正确的插件事件。如果是这种情况,您的用户只能看到注册中的“标准”字段。如果您在插件中设置任何字段为必填项,则它们将不被注册,而是被重定向到完整的注册页面(用户组件),在那里他们将找到他们已经填写的字段,但密码除外,这可能非常令人恼火。 如果“profile”字段不足够,请复制“profile”插件并创建自己的插件。 请勿修改“profile”插件或com_users文件,这是Joomla核心,下次升级时会被覆盖。

我认为你没有仔细阅读我的问题。我已经清楚地说明我不需要那个笨拙的个人资料插件。如果您了解更改控制器或模型逻辑,则会非常有帮助。 - dhaval

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.不要忘记在你的数据库表#_users中添加一个在registration.xml中添加的字段。

0

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

如果您无法这样做,我会确保在更新网站之前备份修改过的文件。 Joomla 3.1.x是短期版本,因此您更容易遇到这些文件被更改的风险,而不是在Joomla 2.5.x网站上工作时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接