Возможности

Возможности сущностей

Определение возможностей

Нет необходимости явно определять или регистрировать новую возможность в системе. Например, плагин search использует возможность searchable.

Регистрация возможностей

Если сущность поддерживает определённую возможность (или функцию), это должно быть зарегистрировано в системе. Это можно сделать, зарегистрировав возможность в секции entities файла elgg-plugin.php плагина.

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

Также есть возможность включить (или отключить) возможность для определённого типа/подтипа сущности с помощью одной из следующих функций:

  • elgg_entity_enable_capability($type, $subtype, $capability) используйте это для включения определённой возможности

  • elgg_entity_disable_capability($type, $subtype, $capability) используйте это для отключения определённой возможности

Проверка возможностей

Существуют вспомогательные функции для проверки, поддерживается ли определённая возможность в системе. Вы можете проверить, поддерживает ли сущность определённую возможность, используя функцию $entity->hasCapability($capability). В качестве альтернативы, если у вас нет сущности в распоряжении, вы можете использовать elgg_entity_has_capability($type, $subtype, $capability).

Также доступна функция для получения массива всех типов/подтипов в системе, которые поддерживают определённую возможность.

$types_subtypes = elgg_entity_types_with_capability('searchable');

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