示例#1
0
 public static function getItems($product_id, $lang_id)
 {
     if (!JeproshopProductPack::isFeaturePublished()) {
         return array();
     }
     if (array_key_exists($product_id, self::$cachePackItems)) {
         return self::$cachePackItems[$product_id];
     }
     $db = JFactory::getDBO();
     $query = "SELECT product_item_id, quantity FROM " . $db->quoteName('#__jeproshop_pack') . " WHERE product_pack_id = " . (int) $product_id;
     $db->setQuery($query);
     $result = $db->loadObjectList();
     $array_result = array();
     foreach ($result as $row) {
         $product = new JeproshopProductModelProduct($row->product_item_id, false, $lang_id);
         $product->loadStockData();
         $product->pack_quantity = $row->quantity;
         $array_result[] = $product;
     }
     self::$cachePackItems[$product_id] = $array_result;
     return self::$cachePackItems[$product_id];
 }
示例#2
0
 public static function getPacksTable($product_id, $lang_id, $full = false, $limit = null)
 {
     if (!JeproshopProductPack::isFeaturePublished()) {
         return array();
     }
     $db = JFactory::getDBO();
     $query = "SELECT GROUP_CONCAT(pack." . $db->quoteName('product_pack_id') . ") FROM " . $db->quoteName('#__jeproshop_pack') . " AS pack WHERE pack." . $db->qsuoteName('product_item_id') . " = " . (int) $product_id;
     $db->quoteName($query);
     $packs = $db->loadResult();
     if (!(int) $packs) {
         return array();
     }
     $query = "SELECT product.*, product_shop.*, product_lang.*, MAX(image_shop." . $db->quoteName('image_id') . ") image_id, image_lang." . $db->quoteName('legend') . " FROM " . $db->quoteName('#__jeproshop_product') . " AS product NATURAL LEFT JOIN ";
     $query .= $db->quoteName('#__jeproshop_product_lang') . " AS product_lang " . JeproshopShopModelShop::addSqlAssociation('product') . " LEFT JOIN " . $db->quoteName('#__jeproshop_image') . " AS image ON (image." . $db->quoteName('product_id') . " = product.";
     $query .= $db->quoteName('product_id') . ") " . JeproshopShopModelShop::addSqlAssociation('image', false, 'image_shop.cover=1') . "\tLEFT JOIN " . $db->quoteName('#__jeproshop_image_lang') . " AS image_lang ON (image." . $db->quoteName('image_id');
     $query .= " = image_lang." . $db->quoteName('image_id') . " AND image_lang." . $db->quoteName('lang_id') . " = " . (int) $lang_id . ") WHERE product_lang." . $db->quoteName('lang_id') . " = " . (int) $lang_id . JeproshopShopModelShop::addSqlRestrictionOnLang('product_lang');
     $query .= "\tAND product." . $db->quoteName('product_id') . " IN (" . $packs . ") GROUP BY product_shop.product_id";
     if ($limit) {
         $query .= " LIMIT " . (int) $limit;
     }
     $db->setQuery($query);
     $result = $db->loadObjectList();
     if (!$full) {
         return $result;
     }
     $array_result = array();
     foreach ($result as $row) {
         if (!JeproshopProductPack::isPacked($row->product_id)) {
             $array_result[] = JeproshopProductModelProduct::getProductProperties($lang_id, $row);
         }
     }
     return $array_result;
 }