Capacités

Capacités des entités

Définition des capacités

Il n’est pas nécessaire de définir ou d’enregistrer explicitement une nouvelle capacité dans le système. Par exemple, le plugin search utilise la capacité searchable.

Enregistrement des capacités

Si une entité prend en charge une certaine capacité (ou fonctionnalité), celle-ci doit être enregistrée dans le système. Cela peut être fait en enregistrant la capacité dans la section entities du elgg-plugin.php du plugin.

'entities' => [
        [
                'type' => 'object',
                'subtype' => 'blog',
                'capabilities' => [
                        'searchable' => true,
                ],
        ],
],

Il existe également une option pour activer (ou désactiver) une capacité pour un certain type/sous-type d’entité à l’aide de l’une des fonctions suivantes :

  • elgg_entity_enable_capability($type, $subtype, $capability) utilisez ceci pour activer une certaine capacité

  • elgg_entity_disable_capability($type, $subtype, $capability) utilisez ceci pour désactiver une certaine capacité

Vérification des capacités

Il existe plusieurs fonctions d’aide pour vérifier si une certaine capacité est prise en charge dans le système. Vous pouvez vérifier si une entité prend en charge une certaine capacité en utilisant la fonction $entity->hasCapability($capability). Alternativement, si vous n’avez pas d’entité à votre disposition, vous pouvez utiliser elgg_entity_has_capability($type, $subtype, $capability).

Il existe également une fonction pour obtenir un tableau de tous les types/sous-types du système prenant en charge une certaine capacité.

$types_subtypes = elgg_entity_types_with_capability('searchable');

// output
[
        'object' => [
                'blog',
                'page',
        ],
        'group' => [
                'group',
        ],
]