允许用户从自定义Joomla登录表单中选择用户组


Allow users to select user group from custom Joomla login form

我正在Joomla 3.0中开发一个网站。我想做的是创建一个自定义登录表单。我想这样做的原因是让用户在注册时可以选择他们想要加入的用户组。所以我需要在登录表单中创建一个下拉框。从这个下拉框中,用户可以选择所需的用户组。到目前为止,我已经尝试过使用各种插件和扩展,但问题是它们无法按照我想要的方式进行定制。所以,如果你知道如何实现我想要的结果,请与我分享。我想我将不得不尝试自己编写代码,但即使在这种情况下,我也需要很多帮助。给我一些建议并引用好的教程也会很有帮助
谢谢

PS:如果你有另一个版本的Joomla的解决方案,请与我分享。

也许UsergroupSelector插件可以帮助您实现这一点。这个插件在注册表中添加了一个字段。如果你不想使用默认的html,那么你需要在你的覆盖模板中添加一个选择框html。

在用户注册过程中添加自定义字段的最佳解决方案可能是使用插件。

你可以使用一个名为Multi-Profiles Registration的商业插件(此处演示),它似乎正是你想要的(我从未测试过它)。

这会花费你一些钱,节省你一些时间,但我会安排另一种方式,那就是开发你自己的插件。

幸运的是,这里有一个很好的教程,实际上是一本名为Joomla的书的一章!编程(尤其是教程的第5页)。

编写一个插件需要时间,我不会详细介绍所有细节。主要步骤包括:

  • 创建一个插件配置文件,其中将包括一个可供选择的组列表(表单元素)。在这里,您(或任何使用插件的人)将选择可用于注册的组(组可以通过UsersHelper::getGroups()获取)
  • 在注册表中添加一个选择框,其中包括插件配置中所需的用户组。这可以通过为模板(templates/<your template>/html/com_users/registration/approval.php)创建布局覆盖来实现,也可以通过插件在渲染事件的某个阶段将其注入文档来实现,如果该插件应该是可移植的,这可能是首选方法
  • 通过处理表单数据并覆盖onUserBeforeSave事件上的groups数据参数,插件设置所需的组