Index: sites/all/modules/og_menu/og_menu.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/og_menu/og_menu.module,v retrieving revision 1.1.4.1 diff -u -p -r1.1.4.1 og_menu.module --- sites/all/modules/og_menu/og_menu.module 30 Jan 2009 18:59:16 -0000 1.1.4.1 +++ sites/all/modules/og_menu/og_menu.module 6 Jun 2009 18:30:36 -0000 @@ -108,58 +108,62 @@ function og_menu_block($op = 'list', $de * Uses _og_menu_delete_confirm_submit() to delete options when menu is deleted */ function og_menu_form_alter(&$form, $form_state, $form_id) { - switch($form_id) { - case 'page_node_form': - //print print_r($form); - + // Test for a 'group post' content type form + $group_post_types = og_get_types('group_post'); + foreach($group_post_types as $type) { + if($form_id == $type . "_node_form") { if (!user_access('administer group menu')) { - global $user; - - // get menu options for user - $result = db_query(" - SELECT * - FROM {menu_custom} - JOIN ( - {og_uid}, - {og_menu_groups} - ) - ON ( - {menu_custom}.menu_name = {og_menu_groups}.mid - AND - {og_menu_groups}.gid = {og_uid}.nid - ) - WHERE {og_uid}.uid = $user->uid - ORDER BY menu_name - ;" - ); - - // filter Parent item list to reveal only member associated groups as parents - $filtered = array(); - - while ($menu = db_fetch_array($result)) { - //$menus[] = $menu['menu_name']; - - foreach ($form['menu']['parent']['#options'] as $key => $item) { - $pos = strpos($key, $menu['menu_name']); - // use === to check position since we're expecting the needle to be in position 0 - if ($pos !== FALSE) - $filtered[$key] = $item; + global $user; + + // get menu options for user + $result = db_query(" + SELECT * + FROM {menu_custom} + JOIN ( + {og_uid}, + {og_menu_groups} + ) + ON ( + {menu_custom}.menu_name = {og_menu_groups}.mid + AND + {og_menu_groups}.gid = {og_uid}.nid + ) + WHERE {og_uid}.uid = $user->uid + ORDER BY menu_name + ;" + ); + + // filter Parent item list to reveal only member associated groups as parents + $filtered = array(); + + while ($menu = db_fetch_array($result)) { + //$menus[] = $menu['menu_name']; + + foreach ($form['menu']['parent']['#options'] as $key => $item) { + $pos = strpos($key, $menu['menu_name']); + // use === to check position since we're expecting the needle to be in position 0 + if ($pos !== FALSE) + $filtered[$key] = $item; + } } + + // update list + $form['menu']['parent'] = array( + '#type' => 'select', + '#title' => 'Parent page', + '#default-value' => $form['menu']['parent']['#default_value'], + '#options' => $filtered, + '#description' => $form['menu']['parent']['#description'], + '#attributes' => $form['menu']['parent']['#attributes'], + ); } + + break; - // update list - $form['menu']['parent'] = array( - '#type' => 'select', - '#title' => 'Parent page', - '#default-value' => $form['menu']['parent']['#default_value'], - '#options' => $filtered, - '#description' => $form['menu']['parent']['#description'], - '#attributes' => $form['menu']['parent']['#attributes'], - ); - } - - break; - /// + } + } + + switch($form_id) { case 'menu_edit_item': // only change method for adding item if in a group menu if (in_array($form['menu']['original_item']['#value']['menu_name'], _og_menu_menus())) { @@ -512,4 +516,3 @@ function _og_menu_get_menu_block() { // return block return $block; } -