You are here

function uc_product_kit_nodeapi in Ubercart 6.2

Same name and namespace in other branches
  1. 5 uc_product_kit/uc_product_kit.module \uc_product_kit_nodeapi()

Implements hook_nodeapi().

Ensure product kit discounts are updated or components removed if their component nodes are updated or deleted.

File

uc_product_kit/uc_product_kit.module, line 401
The product kit module for Ubercart.

Code

function uc_product_kit_nodeapi(&$node, $op, $arg3 = NULL, $arg4 = NULL) {
  switch ($op) {
    case 'update':
      $result = db_query("SELECT DISTINCT nid FROM {uc_product_kits} WHERE product_id = %d", $node->nid);
      while ($k = db_fetch_object($result)) {
        $kit = node_load($k->nid, NULL, TRUE);
        node_save($kit);
      }
      break;
    case 'delete':
      $result = db_query("SELECT DISTINCT nid FROM {uc_product_kits} WHERE product_id = %d", $node->nid);
      while ($k = db_fetch_object($result)) {
        $kit = node_load($k->nid, NULL, TRUE);
        unset($kit->products[$node->nid]);
        if (empty($kit->products)) {
          node_delete($kit->nid);
        }
        else {
          node_save($kit);
        }
      }
      break;
  }
}