public static function cacheProductsFeatures($product_ids) { if (!JeproshopFeatureModelFeature::isFeaturePublished()) { return; } $product_implode = array(); foreach ($product_ids as $product_id) { if ((int) $product_id && !array_key_exists($product_id, self::$_cacheFeatures)) { $product_implode[] = (int) $product_id; } } if (!count($product_implode)) { return; } $db = JFactory::getBO(); $query = "SELECT feature_id, product_id, feature_value_id FROM " . $db->quoteName('#__jeproshop_feature_product') . " WHERE "; $query .= $db->quoteName('product_id') . " IN (" . implode($product_implode, ',') . ")"; $db->setQuery($query); $result = $db->loadObjectList(); foreach ($result as $row) { if (!array_key_exists($row->product_id, self::$_cacheFeatures)) { self::$_cacheFeatures[$row->product_id] = array(); } self::$_cacheFeatures[$row->product_id][] = $row; } }