You are here

function uc_product_kit_load in Ubercart 7.3

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

Implements hook_load().

File

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

Code

function uc_product_kit_load($nodes) {
  $vids = array();
  foreach ($nodes as $nid => $node) {
    $vids[$nid] = $node->vid;
  }
  $all_products = array();
  $result = db_query("SELECT nid, product_id, mutable, qty, discount, ordering, synchronized FROM {uc_product_kits} WHERE vid IN (:vids) ORDER BY nid, ordering", array(
    ':vids' => $vids,
  ));
  while ($prod = $result
    ->fetchObject()) {
    $nodes[$prod->nid]->mutable = $prod->mutable;
    $nodes[$prod->nid]->synchronized = $prod->synchronized;

    // Add the component information.
    $data = array();
    if ($prod->mutable != UC_PRODUCT_KIT_MUTABLE) {
      $data = array(
        'kit_id' => $prod->nid,
        'kit_discount' => $prod->discount,
      );
    }
    $product = uc_product_load_variant($prod->product_id, $data);
    $product->qty = $prod->qty;
    $product->discount = $prod->discount;
    $product->ordering = $prod->ordering;

    // Add product to the kit.
    $nodes[$prod->nid]->products[$product->nid] = $product;
  }

  // Add product data to kits.
  uc_product_load($nodes);
}