我刚刚开始使用Joomla 3.x,我正在为Joomla v3编写一个组件,该组件应该创建用于创建“组”的新用户组 - 设计要求是:
组织可以成立一个小组,向其成员提供对某些服务的访问 - 包括通信,还包括其他类型的服务 (其他服务是我认为社区和论坛joomla扩展不适合的原因 - 他们主要关注论坛和社交媒体服务,而不是我将实施的服务。)
该组织的其他人/成员可以注册到该组,允许他/她访问这些服务
ps:人们也可以设置个人帐户并访问该组服务。此人也可以在稍后阶段加入一个或多个小组
如何编写新用户组的代码?我在How to create custom User Group Programmatically in Joomla 3.x注意到了一个可能的建议解决方案,但我很难理解如何使用建议的JTableUsergroup类,因为http://docs.joomla.org/API17:JTableUsergroup(?)的文档有限。创建JTableUsergroup实例会导致创建新客户用户组?
另一个问题:如何将用户添加到客户用户组?我找到的唯一提示是在http://api.joomla.org/cms-3/classes/JUserHelper.html - 使用类JUserHelper的addUserToGroup方法。
许多Joomla开发概念都是很好的文档,但我找不到一个用于管理自定义用户组...
感谢您的帮助; - )
答案 0 :(得分:0)
首先,总体而言,Joomla API的最佳一致文档位于类的docblock中。那么说实话,我做了很多次是搜索核心API的使用位置。维基中有一些很棒的叙述文档,但总的来说我总是从非常完整的文档块开始。但在这种情况下,它非常简单。
你需要按照
的方式做点什么$newrow = JTable::getInstance('Usergroup');
//code to add your data
$newtable->save(); // Shortcut for check, bind, store
但是,如果我是你,我会仔细查看UsersModelGroup
,因为在此过程中通常会发生许多其他事情,例如运行用户插件。所以我可能会包含并扩展该模型(管理表类)而不是直接转到表类。实际上,您的整个组件甚至可以扩展几乎所有的用户组件,或者也许您可以使用插件执行所需的操作,而不是重新创建整个组件。
在将用户分配到由于代码中的一些遗留事物而更棘手的组方面。我认为setter后跟一个$user->save()
($ user是一个JUser实例)可能是添加到组时的方法。我可能会做的是编写一个自定义JFormField
来管理选择加入组,因为核心用户组字段包含所有内容。您可以扩展它并排除您只想由admin管理的组。