Extended group functionalities for Elgg
- Extended search and sort functionality
- API to add new group subtypes
- API to manage group hierarchies
- API for managing group fields
- API for restricting group tools, as well as using preset tools
Registering new subtypes and configuring them is made easy.
Here is an example of how to remove groups from the top level of the site, and making them subgroups of a new subtype called classroom.
$svc = elgg()->groups; /* @var $svc \hypeJunction\Groups\GroupsService */ $svc->registerSubtype('classroom', [ 'labels' => [ 'en' => [ 'item' => 'Classroom', 'collection' => 'Classrooms', ], ], 'root' => true, 'identifier' => 'classrooms', 'class' => \CustomPlugin\Classroom::class, 'collections' => [ 'all' => \CustomPlugin\DefaultClassroomCollection::class, 'owner' => \CustomPlugin\OwnedClassroomCollection::class, 'member' => \CustomPlugin\JoinedClassroomCollection::class, ], ]); $svc->registerSubtype('group', [ 'site_menu' => false, 'labels' => [ 'en' => [ 'item' => 'Group', 'collection' => 'Groups', ], ], 'root' => false, 'parents' => ['classroom'], 'identifier' => 'groups', ]);
You can put multiple subtypes into a collection by assigning them to the same
identifier, e.g. you could create
canada_province subtypes and register them for
Fields are managed by hypePost. Please see the documentation there for more information.