OG Features - модуль позволяющий администратору сайта определять, какой функционал в группе может включаться и отключаться владельцем группы.
Например, это могут быть произвольные типы контента, вьюхи, панели. Яркий пример использования этого модуля, это сборка Drupal Commons, где через og_features сделаны такие фичи для групп как:
- Blog
- Discussions
- Documents
- Events
- Group Aggregator
- Polling
- Wiki
- Q&A
Сам процесс создания фичи для OG Features нетривиален.
Для этого вам нужно создать свой модуль, где нужно реализовать хук hook_og_features_registry().
Например, у нас модуль называется modulename и мы хотим определить фичу my_feature, код будет следующий, код взяд из модуля, комментарии оставлены оригинальные и строкой ниже добавлены мои:
$registry = array();
// Feature: my_feature.
// Создание объекта фичи.
$feature = new stdClass;
// The feature id
//Указываем id фичи, оно должно быть уникальным в пределах сайта
$feature->id = 'my_feature';
// The name that will show up on the feature toggle form
//Название фичи, которое будет показываться в группе на странице управления фичами
$feature->name = t('Blog');
// The description that will show up on the feature toggle form
//Описание, показываемое на странице управления фичами
$feature->description = t('Provide a simple blog for your group');
// The components of the feature that will be enabled/disabled
//Компоненты которые включает фича
$feature->components = array(
'views' => array(
'og_tab_blogs',
),
'node' => array(
'blog',
),
'context' => array(
'group_blogs',
),
'path' => array(
'node/%node/aggregator',
),
'pane' => array(
'og_content_tracker-panel_pane_1',
),
'og link' => array(
'og_invite', // The key of the link in the group details block
),
);
// It's recommended that you key the feature with the name of the
// module/feature that is supplying this, so that any custom page
// callbacks provided by this module/feature become disabled within
// the group
//помещаем фичу в "контейнер", это позволит нам в модуле определить несколько фич, если требуется
$registry[$feature->id] = $feature;
// Feature: my_second_feature
//объявляем вторую фичу
$feature = new stdClass;
// You can continue to add as many as you'd like
//в дальнейшем процесс никак не отличается от первой фичи, в конце делаем так же $registry[$feature->id] = $feature;
return $registry;
}
Комментарии
спасибо, полезно
+1.
Полезный модуль, не знал о его существовании, но жаль что он только для 6ки.
Но отчаиваться не надо, ведь есть модуль Spaces, который позволяет делать почти все то же самое.