Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于创建和管理自定义用户组的Joomla(3.x)开发API?_Joomla - Fatal编程技术网

是否有用于创建和管理自定义用户组的Joomla(3.x)开发API?

是否有用于创建和管理自定义用户组的Joomla(3.x)开发API?,joomla,Joomla,我刚从Joomla 3.x开始,我正在为Joomla v3编写一个组件,该组件应该创建新的用户组来创建“组”——设计要求如下: 一个组织可以成立一个小组,为其成员提供一系列服务,包括交流,但也包括其他类型的服务 (其他服务是我认为社区和论坛joomla扩展不合适的原因——它们主要关注论坛和社交媒体服务,而不是我将实施的服务。) 该组织的其他人员/成员可向该团体注册,从而使其能够获得这些服务 ps:个人也可以建立个人帐户并访问一组服务。此人也可以在稍后阶段加入一个或多个组 如何编写创建新用户组的代

我刚从Joomla 3.x开始,我正在为Joomla v3编写一个组件,该组件应该创建新的用户组来创建“组”——设计要求如下:

  • 一个组织可以成立一个小组,为其成员提供一系列服务,包括交流,但也包括其他类型的服务 (其他服务是我认为社区和论坛joomla扩展不合适的原因——它们主要关注论坛和社交媒体服务,而不是我将实施的服务。)

  • 该组织的其他人员/成员可向该团体注册,从而使其能够获得这些服务

  • ps:个人也可以建立个人帐户并访问一组服务。此人也可以在稍后阶段加入一个或多个组

    如何编写创建新用户组的代码?我在上注意到一个可能的建议解决方案,但我很难理解如何使用建议的JTableUsergroup类,因为在上的文档有限。创建JTableUsergroup实例是否会导致创建新的客户用户组

    另一个问题:如何将用户添加到客户用户组?我发现的唯一提示是at-使用类JUserHelper的addUserToGroup方法

    许多Joomla开发概念都是很好的文档,但我找不到一个用于管理自定义用户组的概念


    感谢您的帮助;-)

    首先,总体而言,Joomla API的最佳一致性文档位于类的docblock中。老实说,我经常做的就是搜索API在核心中的使用位置。wiki中有一些很棒的叙述性文档,但总的来说,我总是从非常完整的docblock开始。然而,在这种情况下,它非常简单

    你需要做一些类似的事情

    $newrow = JTable::getInstance('Usergroup');
    //code to add your data
    
    $newtable->save(); // Shortcut for check, bind, store
    
    但是,如果我是你,我会仔细研究
    UsersModelGroup
    ,因为在这个过程中通常会发生很多其他事情,比如运行用户插件。因此,我可能会包括并扩展该模型(管理table类),而不是直接转到table类。事实上,您的整个组件甚至可以扩展几乎所有的用户组件,或者您也可以使用插件做您想做的事情,而不是重新设计整个组件


    在将用户分配到组方面,由于代码中存在一些遗留问题,这一点更为棘手。我认为setter后面跟着一个
    $user->save()
    ($user是一个JUser实例)可能是添加到组中的方法。我可能要做的是编写一个定制的
    JFormField
    ,它将管理opt-in组,因为核心用户组字段包含所有内容。您可以扩展该功能,并排除希望仅由管理员管理的组

    谢谢你的建议,埃琳