Настройка сервисов рабочей группы
Исходные данные: вследствие некоторых событий, программно создается рабочая группа при помощи команды
CSocNetGroup::CreateGroup |
Требуется:
непосредственно после создания отключать у группы сервисы Задачи, Диск, Wiki
Решение:
за подключенные сервисы (они же - Возможности) отвечает класс
CSocNetFeatures
|
После создания (программно) группы вывести на странице следующий код:
$res = CSocNetFeatures::GetList(array(),
|
$GROUP_ID
|
- ID только что созданной группы, а
'photo','files','tasks', 'wiki', 'group_lists'
|
Вышеизложенный код дает в результате своей работы пустой массив - Array()
Но, стоит нам отключить из публичной части средствами редактирования группы хотя бы один из сервисов, и мы уже получаем в результате работы кода массив вида:
Array ( [ID] =>10 [ENTITY_TYPE] => G [ENTITY_ID] => 16 [FEATURE] => forum [FEATURE_NAME] => [ACTIVE] => Y [=DATE_UPDATE] => now() [=DATE_CREATE] => now() ) ======== Array ( [ID] =>11 [ENTITY_TYPE] => G [ENTITY_ID] => 16 [FEATURE] => photo [FEATURE_NAME] => [ACTIVE] => Y [=DATE_UPDATE] => now() [=DATE_CREATE] => now() ) ======== Array ( [ID] =>12 [ENTITY_TYPE] => G [ENTITY_ID] => 16 [FEATURE] => calendar [FEATURE_NAME] => [ACTIVE] => Y [=DATE_UPDATE] => now() [=DATE_CREATE] => now() ) ========
|
ENTITY_TYPE - признак того, что речь идет о группе, ENTITY_ID - индекс сущности, для которой описывается сервис, в данном случае - группы, FEATURE - название сервиса, ACTIVE - признак активности.
Очевидно, что наша задача сводится к тому, чтобы для подлежащих отключению свойств признак активности проставить равным "N". Но как это сделать, если в момент создания группы массив свойств пуст, а появляется при первой попытке что-либо из свойств отключить?
Вероятно, нужно попытаться создать самостоятельно для данной группы те свойства, которые хотелось бы отключить, с признаком активности = "N", остальные же создадутся самостоятельно, с признаком активности равным "Y".
Итоговый код выглядит так:
/*====================== первая часть - создание группы
|
а вторая часть кода - создание необходимых сервисов, с признаком активности "N".
Таким образом, если задать для величин $SUBJECT, $DESCRIPTION, $GROUP_RESULT_NAME и $CREATOR реальные значения, получим на выходе группу с отключенными сервисами Фото, Вики, Задачи, Списки, Диск: