diff --git a/og_menu.module b/og_menu.module index 8aedf40..5f7b75a 100644 --- a/og_menu.module +++ b/og_menu.module @@ -207,7 +207,8 @@ function og_menu_block_view($delta = '') { $block = array(); if ($delta == 'og_single_menu_block') { $context = og_context(); - $group = isset($context->gid) ? $context->gid : 0; + + $group = isset($context['gid']) ? $context['gid'] : 0; $menus = og_menu_get_menus(array($group)); $menu = array_shift($menus); @@ -227,9 +228,10 @@ function og_menu_block_view($delta = '') { $gids = array(); if ($node) { if (og_is_group_content_type('node', $node->type)) { - $nodegroups = og_load_multiple(og_get_entity_groups('node', $node)); - foreach ($nodegroups as $ng) - $gids[] = $ng->gid; + $nodegroups = og_get_entity_groups('node', $node); + if (!empty($nodegroups['node'])) { + $gids = $nodegroups['node']; + } } elseif (og_is_group_type('node', $node->type)) { $group = og_get_group('node', $node->nid); @@ -260,7 +262,7 @@ function og_menu_block_view($delta = '') { */ function og_menu_get_context() { $context = og_context(); - return (isset($context->gid) ? $context->gid : 0); + return (isset($context['gid']) ? $context['gid'] : 0); } /** @@ -445,8 +447,8 @@ function og_menu_form_menu_delete_menu_confirm_alter(&$form, &$form_state) { */ function og_menu_node_prepare($node) { // $node is a group type. - if (og_is_group_type('node', $node->type)) { - $node->og_menu = og_menu_get_menus(); + if (og_is_group_type('node', $node->type) && !empty($node->nid)) { + $node->og_menu = og_menu_get_menus(array($node->nid)); } // $node is not a new node and is a group content type, menu link is not set. // @todo This used to exclude users with user_access('administer menu'), test the consequences of this change. @@ -482,14 +484,13 @@ function og_menu_node_prepare($node) { */ function og_menu_node_insert($node) { if (og_is_group_type('node', $node->type)) { - $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING)); if ($node->og_menu) { menu_save(array( - 'menu_name' => 'menu-og-' . $og->gid, + 'menu_name' => 'menu-og-' . $node->nid, 'title' => $node->title, 'description' => t('OG Menu for') . ' ' . check_plain($node->title), )); - og_menu_update_menu('menu-og-' . $og->gid, $og->gid); + og_menu_update_menu('menu-og-' . $node->nid, $node->nid); } } } @@ -499,21 +500,20 @@ function og_menu_node_insert($node) { */ function og_menu_node_update($node) { if (og_is_group_type('node', $node->type)) { - $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING)); if ($node->og_menu) { - $menu = og_menu_get_menus(array($og->gid)); + $menu = og_menu_get_menus(array($node->nid)); if (empty($menu)) { menu_save(array( - 'menu_name' => 'menu-og-' . $og->gid, + 'menu_name' => 'menu-og-' . $node->nid, 'title' => $node->title, 'description' => t('OG Menu for') . ' ' . check_plain($node->title), )); - og_menu_update_menu('menu-og-' . $og->gid, $og->gid); + og_menu_update_menu('menu-og-' . $node->nid, $node->nid); } } else { // We can't assume that the menu name is 'menu-og-[gid]' - we need to look up menus associated with this group - $result = db_query('SELECT menu_name FROM {og_menu} WHERE gid = :gid', array(':gid' => $og->gid))->fetchCol(); + $result = db_query('SELECT menu_name FROM {og_menu} WHERE gid = :gid', array(':gid' => $node->nid))->fetchCol(); foreach ($result as $menu_name) { menu_delete(array( 'menu_name' => $menu_name, @@ -614,9 +614,10 @@ function og_menu_get_menus($gids = NULL, $user = NULL) { global $user; } if (!$gids) { - $nodegroups = og_load_multiple(og_get_entity_groups('user', $user)); - foreach ($nodegroups as $ng) - $gids[] = $ng->gid; + $nodegroups = og_get_entity_groups('user'); + if (!empty($nodegroups['node'])) { + $gids = $nodegroups['node']; + } } $menus = array(); if ($gids) { @@ -634,7 +635,6 @@ function og_menu_get_menus($gids = NULL, $user = NULL) { $menus[] = $menu; } } - return $menus; } diff --git a/og_menu.pages.inc b/og_menu.pages.inc index 41bc024..d736519 100644 --- a/og_menu.pages.inc +++ b/og_menu.pages.inc @@ -9,9 +9,6 @@ * Menu callback which shows an overview page of all the custom menus in user's groups and their descriptions. */ function og_menu_overview_page($node) { - $gid = og_get_group_ids('node', array($node->nid), FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING)); - $gid = $gid[$node->nid]; - // Set the title of the page. drupal_set_title(t('List menus for @title', array('@title' => $node->title)), PASS_THROUGH); @@ -20,7 +17,7 @@ function og_menu_overview_page($node) { LEFT JOIN {menu_custom} m ON om.menu_name = m.menu_name WHERE om.gid = :gid - ORDER BY title", array(':gid' => $gid)); + ORDER BY title", array(':gid' => $node->nid)); $header = array(t('Title'), array('data' => t('Operations'), 'colspan' => '3')); $rows = array(); foreach ($result as $menu) { @@ -45,7 +42,6 @@ function og_menu_overview_page($node) { function og_menu_edit_menu_form($form, &$form_state, $type, $menu = array()) { module_load_include('inc', 'menu', 'menu.admin'); $node = menu_get_object('node', 1); - $og = og_get_group('node', $node->nid, FALSE, array(OG_STATE_ACTIVE, OG_STATE_PENDING)); // Set the title of the page. switch ($type) { @@ -60,7 +56,7 @@ function og_menu_edit_menu_form($form, &$form_state, $type, $menu = array()) { $form = drupal_retrieve_form('menu_edit_menu', $form_state, $type, $menu); $form['og_menu_gid'] = array( '#type' => 'value', - '#value' => $og->gid, + '#value' => $node->nid, ); // Add submit handlers. $form['#submit'][] = 'menu_edit_menu_submit'; @@ -162,7 +158,7 @@ function og_menu_edit_item_form($form, &$form_state, $type, $item, $menu, $node) module_load_include('inc', 'menu', 'menu.admin'); $form = drupal_retrieve_form('menu_edit_item', $form_state, $form, $type, $item, $menu); $list = array(); - $menus = og_menu_get_menus(array(og_get_group('node', $node->nid)->gid)); + $menus = og_menu_get_menus(array($node->nid)); foreach ($menus as $option) { $list[$option->mname] = $option->mtitle; }