function og_menu_form_menu_edit_menu_alter in Organic Groups Menu (OG Menu) 7.2
Same name and namespace in other branches
- 7.3 og_menu.module \og_menu_form_menu_edit_menu_alter()
Implements hook_form_FORMID_alter().
File
- ./
og_menu.module, line 401 - Integrates Menu with Organic Groups. Lots of menu forms duplication in OG context.
Code
function og_menu_form_menu_edit_menu_alter(&$form, &$form_state) {
$types = node_type_get_types();
$gtypes = array();
foreach ($types as $type) {
if (og_is_group_type('node', $type->type)) {
$gtypes[] = $type->type;
}
}
$types = $gtypes;
if (count($types) > 0) {
$options = array(
'' => '--',
);
$values = array();
// Populate gids
if (user_access('administer organic groups')) {
$result = db_query("SELECT gid, label FROM {og} WHERE entity_type='node'");
foreach ($result as $group) {
$options[$group->gid] = $group->label;
}
}
else {
global $user;
$groups = og_load_multiple(og_get_entity_groups('user', $user));
foreach ($groups as $group) {
$options[$group->gid] = $group->label;
}
}
$ogm = db_select('og_menu', 'gid')
->fields('gid')
->condition('menu_name', $form['menu_name']['#default_value'], '=')
->execute()
->fetchAssoc();
$gid = $ogm['gid'];
$og = $gid ? og_load($gid) : NULL;
// Add menu og assignment to the form
switch (variable_get('og_menu_assignment', 'autocomplete')) {
case 'autocomplete':
$form['og_menu_gid'] = array(
'#title' => t('Enable this menu for the following group'),
'#type' => 'textfield',
'#default_value' => !is_null($gid) ? $og->label . ' [gid:' . $gid . ']' : '',
'#autocomplete_path' => 'og_menu/autocomplete',
);
break;
case 'select':
$form['og_menu_gid'] = array(
'#title' => t('Enable this menu for the following group'),
'#type' => 'select',
'#options' => $options,
'#default_value' => !is_null($gid) ? $gid : '',
'#weight' => 1,
);
break;
default:
}
if (!user_access('administer menu')) {
$form['og_menu_gid']['#required'] = TRUE;
}
if (!isset($form['submit']['#weight'])) {
$form['submit']['#weight'] = 2;
}
$form['#submit'][] = 'og_menu_edit_menu_form_submit';
}
}