You are here

function og_menu_nodeapi in Organic Groups Menu (OG Menu) 6.2

Same name and namespace in other branches
  1. 6 og_menu.module \og_menu_nodeapi()

Implementation of hook_nodeapi().

File

./og_menu.module, line 340
Integrates Menu with Organic Groups. Lots of menu forms duplication in OG context.

Code

function og_menu_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  if (og_is_group_type($node->type)) {
    switch ($op) {
      case 'insert':
        if ($node->og_menu) {
          db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES ('%s', '%s', '%s')", 'menu-og-' . $node->nid, $node->title, t('Menu for') . ' ' . check_plain($node->title));
          og_menu_update_menu('menu-og-' . $node->nid, $node->nid);
        }
        break;
      case 'update':
        if ($node->og_menu) {
          $menu = og_menu_get_group_menus(array(
            $node->nid,
          ));
          if (empty($menu)) {
            db_query("INSERT INTO {menu_custom} (menu_name, title, description) VALUES ('%s', '%s', '%s')", 'menu-og-' . $node->nid, $node->title, t('Menu for') . ' ' . check_plain($node->title));
            og_menu_update_menu('menu-og-' . $node->nid, $node->nid);
          }
        }
        else {
          db_query("DELETE FROM {menu_custom} WHERE menu_name = '%s'", 'menu-og-' . $node->nid);
          og_menu_update_menu('menu-og-' . $node->nid);
        }
        break;
      case 'prepare':
        $node->og_menu = og_menu_get_group_menus(array(
          $node->nid,
        ));
        break;
      case 'delete':
        db_query("DELETE FROM {menu_custom} WHERE menu_name = '%s'", 'menu-og-' . $node->nid);
        og_menu_update_menu('menu-og-' . $node->nid);
        break;
    }
  }
}