function og_menu_form_menu_edit_menu_alter in Organic Groups Menu (OG Menu) 7.3
Same name and namespace in other branches
- 7.2 og_menu.module \og_menu_form_menu_edit_menu_alter()
Implements hook_form_FORMID_alter().
File
- ./
og_menu.module, line 485 - 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(
'' => '--',
);
// Populate gids.
if (user_access('administer group')) {
$query = db_select('node', 'n');
$query
->distinct();
$query
->join('og_membership', 'og', 'n.nid = og.gid');
$query
->fields('og', array(
'gid',
));
$query
->fields('n', array(
'title',
));
$result = $query
->execute();
foreach ($result as $group) {
$options[$group->gid] = $group->title;
}
}
else {
global $user;
$gids = og_menu_get_node_groups('user', $user);
$groups = node_load_multiple($gids);
if (!empty($groups)) {
foreach ($groups as $gid => $group) {
$options[$gid] = $group->title;
}
}
}
$ogm = db_select('og_menu', 'gid')
->fields('gid')
->condition('menu_name', $form['menu_name']['#default_value'], '=')
->execute()
->fetchAssoc();
$gid = $ogm['gid'];
$og = $gid ? entity_load_single('node', $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->title . ' [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;
}
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';
}
}