public static function OgSelectionHandler::settingsForm in Organic groups 7.2
Override EntityReferenceHandler::settingsForm().
Overrides EntityReference_SelectionHandler_Generic::settingsForm
File
- plugins/
entityreference/ selection/ OgSelectionHandler.class.php, line 19
Class
- OgSelectionHandler
- OG selection handler.
Code
public static function settingsForm($field, $instance) {
$form = parent::settingsForm($field, $instance);
$entity_type = $field['settings']['target_type'];
$entity_info = entity_get_info($entity_type);
$bundles = array();
foreach ($entity_info['bundles'] as $bundle_name => $bundle_info) {
if (og_is_group_type($entity_type, $bundle_name)) {
$bundles[$bundle_name] = $bundle_info['label'];
}
}
if (!$bundles) {
$form['target_bundles'] = array(
'#type' => 'item',
'#title' => t('Target bundles'),
'#markup' => t('Error: The selected "Target type" %entity does not have bundles that are a group type', array(
'%entity' => $entity_info['label'],
)),
);
}
else {
$settings = $field['settings']['handler_settings'];
$settings += array(
'target_bundles' => array(),
'membership_type' => OG_MEMBERSHIP_TYPE_DEFAULT,
);
$form['target_bundles'] = array(
'#type' => 'select',
'#title' => t('Target bundles'),
'#options' => $bundles,
'#default_value' => $settings['target_bundles'],
'#size' => 6,
'#multiple' => TRUE,
'#description' => t('The bundles of the entity type acting as group, that can be referenced. Optional, leave empty for all bundles.'),
);
$options = array();
foreach (og_membership_type_load() as $og_membership) {
$options[$og_membership->name] = $og_membership->description;
}
$form['membership_type'] = array(
'#type' => 'select',
'#title' => t('OG membership type'),
'#description' => t('Select the membership type that will be used for a subscribing user.'),
'#options' => $options,
'#default_value' => $settings['membership_type'],
'#required' => TRUE,
);
}
return $form;
}