Возможности
Содержание
Возможности сущностей
Определение возможностей
Нет необходимости явно определять или регистрировать новую возможность в системе. Например, плагин 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',
],
]