最近我偶然发现了 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.
答案 0 :(得分:8)
Joomla附带一个名为“profile”的用户插件,其中可能包含您想要添加的字段。
在管理员中转到扩展程序/插件,按类型过滤并选择“用户”,然后找到“个人资料”并将其打开。检查右侧的选项,启用插件和瞧。
警告:大多数模板会覆盖注册表单,但它们通常不会触发正确的插件事件。如果是这种情况,您的用户只会在注册中看到“标准”字段。如果你在插件中设置任何字段,它们将不会被注册,而是被重定向到完整的注册页面(用户组件),在那里他们将找到已经填入的字段,除了密码,这可能很烦人。
如果“个人资料”字段不足,请复制个人资料插件并自行构建。
不要像你那样修改配置文件插件或com_users文件,这是Joomla核心,下次升级时会被覆盖。
答案 1 :(得分: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,然后在函数寄存器()中更改自定义字段。
3.不要忘记在您在registration.xml中添加的数据库表#_users中添加一个字段
答案 2 :(得分:0)
根据您是否需要将自定义字段添加到数据库,您可以使用表单构建组件,例如RSForm!Pro或ChronoForms。它们都可以绑定到Joomla中的用户注册系统,并为您提供自定义电子邮件的灵活性,向数据库表添加信息等。这将使您免受可能消除修改的任何核心更新。我相信Chronoforms是免费的,只要你不介意回复表单中的开发人员。
如果你不能这样做,我会确保在更新网站之前备份了我修改过的文件。 Joomla 3.1.x是一个短期版本,因此与使用Joomla 2.5.x站点相比,这些文件的更改风险更高。