
Groupe - Révision d'un module pour Drupal
Créer des groupes d'utilisateurs avec accès à un contenu sélectionné est l'une des exigences fréquentes spécifiées dans les cahiers des charges pour les portails web. Le module Group permet d'économiser des centaines d'heures de programmation en fournissant des mécanismes prêts à l'emploi et facilement extensibles. Découvrez combien de fonctions utiles vous pouvez trouver dans ce module.
Group a été créé comme une alternative à Organic Groups (OG), dans lequel les mécanismes de relation sont basés sur des champs et du contenu. Créés dans le module group, en revanche, ont été des entités à part entière avec leurs propres champs qui peuvent être étendus et exportés. Chaque groupe peut avoir ses propres utilisateurs ou des permissions configurées de manière unique.
Dates
Les origines du module remontent à la version Drupal 7, pour laquelle la première version de développement a été publiée en 2010. La version Drupal 8 du module a été publiée pour la première fois en mars 2016 et est encore en développement aujourd'hui. La dernière version stable 1.2. a été publiée le 4 août 2020.
Popularité du module
Le module Group est assez populaire et est actuellement utilisé par plus de 9 000 sites web. La grande majorité, environ 8 200, sont des projets basés sur Drupal 8.
Créateurs du module
Le principal responsable du module est Kristiaan Van den Eynde (kristiaanvandeneynde), responsable de près de 900 commits sur le module. Le module est financièrement soutenu par Factorial GmbH et a été soutenu par d'autres entreprises et organisations par le passé. Bien sûr, le développement du module et de ses sous-modules est également soutenu par une large communauté de développeurs Drupal.
Jusqu'à présent, 56 développeurs ont contribué au développement du module ; la liste complète peut être trouvée ici : https://www.drupal.org/node/711148/committers
À quoi sert le module?
Le module Group résout un problème qui ne peut être résolu dans Drupal à l'aide de mécanismes intégrés. Il vous permet de diviser les utilisateurs en groupes au sein desquels vous pouvez à la fois gérer les droits des utilisateurs et créer du contenu dédié uniquement aux membres du groupe.
C'est un projet extrêmement complexe du point de vue de la programmation. Il contient plusieurs classes et fonctions qui fournissent des fonctionnalités clés telles que le support des permissions, le cache, ou l'intégration avec les modules de base de Drupal. Il existe un sous-module gnode dans le dépôt du module qui vous permet de créer des relations entre le contenu et les groupes. Le module Group peut également être étendu avec la fonctionnalité de création de sous-groupes, et cela est possible avec l'utilisation des modules Subgroup ou Subgroup (Graph).
Exemples d'utilisation :
- gestion de classes à l'école, où les enseignants fonctionnent comme administrateurs, les élèves sont membres d'un groupe donné et ils ont tous accès à des matériaux communs,
- accès à du contenu payant en limitant l'accessibilité des matériaux pour les membres du groupe (un exemple peut être trouvé dans notre article Drupal Commerce - Vendre des produits électroniques)
- portails pour des organisations/communautés avec une structure hiérarchique (plusieurs unités interdépendantes, mais avec des membres et administrateurs différents)
- organisation et gestion de conférences (inscription aux conférences, accès aux matériaux, discussions). Group est donc un excellent outil lorsque vous devez créer des groupes d'utilisateurs fermés avec accès à un contenu spécifique.
Le module Group est donc un excellent outil que nous utilisons dans le cadre de services Drupal pour créer des groupes fermés d'utilisateurs avec accès à un contenu spécifique.
Déballage
Vous pouvez télécharger le module à l'adresse https://www.drupal.org/project/group
Après l'installation, un nouveau groupe apparaîtra dans le menu Groups (/admin/group) entre les onglets Configuration et Utilisateurs dans le menu principal du système.
Group fournit un nouveau type d'entité, donc dans le sous-menu, vous trouverez des liens vers des pages telles que types de groupes ou liste. Il possède également une page de configuration, où il est possible de définir un skin d'administration pour l'édition des groupes, pages des utilisateurs de groupes, etc.
Le module Group ne nécessite aucune configuration spécifique pour pouvoir l'utiliser.
Utilisation du module
Pour créer des groupes, vous devez d'abord définir au moins un type de groupe. Pour cela, rendez-vous sur "/admin/group/types" et créez un nouveau type de groupe. Ce processus est similaire à la création d'un nouveau type de contenu ou d'un vocabulaire, mais comporte également des champs de configuration supplémentaires liés aux permissions des utilisateurs dans certains groupes.
Après avoir créé le type de groupe, vous pouvez configurer les champs du groupe, ainsi que les vues associées pour les formulaires et l'affichage du groupe.
Pour définir les droits, vous avez également la possibilité d'aller à l'onglet Permissions, sous lequel vous pouvez définir les permissions de base réparties en :
- utilisateurs anonymes,
- membres du groupe,
- utilisateurs ne faisant pas partie du groupe
- membres du groupe avec un rôle défini dans le groupe
Disponible est également une configuration avancée des permissions d'un utilisateur extérieur au groupe avec l'utilisation de rôles système.
Il est possible de définir des rôles pour un type de groupe donné (similaire aux rôles définis dans le noyau de Drupal). Il est possible de le faire dans l'onglet Rôles:
L'un des onglets les plus importants est Contenu, où vous pouvez installer des extensions disponibles pour un groupe, et celles-ci incluent des types de contenu, l'appartenance au groupe ou des sous-groupes (après avoir installé les modules mentionnés précédemment).
Après avoir passé en revue tous les formulaires, la création de nouveaux groupes de type donné devient très simple. Il vous suffit de vous rendre sur la page de liste des groupes (/admin/group) et d'ajouter les groupes dont vous avez besoin.
Comme vous pouvez le voir, il y a beaucoup d'options de configuration, en particulier en ce qui concerne les permissions du module. Cependant, elles sont nécessaires pour son bon fonctionnement et il est facile d'apprécier leurs avantages lors de l'utilisation du module. Vous pouvez trouver une application très intéressante du module Group dans la distribution Open Social.
Hooks et intégrations
Le module a la capacité de modifier les liens avec les opérations d'entité intégrées dans un bloc sur le site web du groupe à l'aide du hook_group_operations_alter hook, qui dans ses arguments accepte un tableau de liens et un objet group.
Group fournit une intégration avec les modules suivants :
- Views, offrant des plug-ins tels que : accès, argument, argument par défaut, relation.
- Tokens - 21 tokens pour le groupe et son contenu.
Résumé
Le module Group est très mature et complexe sur le plan programmatique. Il ajoute un mécanisme pour créer des groupes et leur contenu associé que vous ne pouvez pas trouver dans une installation CMS Drupal propre. Il a été écrit avec le plus grand soin pour la haute qualité du code, tout en garantissant son extension facile avec de nouvelles fonctionnalités. Si ce module correspond aux besoins de votre projet, nos consultants Drupal recommandent de l'utiliser sans hésitation.