function fn_get_product_data_for_compare($product_ids, $action) { $auth =& $_SESSION['auth']; $comparison_data = array('product_features' => array(0 => array())); $tmp = array(); foreach ($product_ids as $product_id) { $inventory_product_ids = array(); $product_data = fn_get_product_data($product_id, $auth, CART_LANGUAGE, '', false, true, false, false); fn_gather_additional_product_data($product_data, false, false, false, true, false); if (!empty($product_data['product_features'])) { foreach ($product_data['product_features'] as $k => $v) { if ($v['feature_type'] == 'G' && empty($v['subfeatures'])) { continue; } $_features = $v['feature_type'] == 'G' ? $v['subfeatures'] : array($k => $v); $group_id = $v['feature_type'] == 'G' ? $k : 0; $comparison_data['feature_groups'][$k] = $v['description']; foreach ($_features as $_k => $_v) { if (in_array($_k, $_SESSION['excluded_features'])) { if (empty($comparison_data['hidden_features'][$_k])) { $comparison_data['hidden_features'][$_k] = $_v['description']; } continue; } if (!empty($_v['full_description'])) { $comparison_data['product_features_full_description'][$_k] = $_v['full_description']; } if (empty($comparison_data['product_features'][$group_id][$_k])) { $comparison_data['product_features'][$group_id][$_k] = $_v['description']; } } } } $inventory_product_ids = db_get_row("SELECT MIN(b.price ) AS min_price, MAX(b.price ) AS max_price FROM ?:products as a JOIN ?:product_options_inventory_prices as b ON a.product_id=b.product_id WHERE a.product_id = ?i GROUP BY a.product_id", $product_id); if ($inventory_product_ids && count($inventory_product_ids) > 0) { $product_data['price_range'] = $inventory_product_ids; } $comparison_data['products'][] = $product_data; unset($product_data); } if ($action != 'show_all' && !empty($comparison_data['product_features'])) { $value = ''; foreach ($comparison_data['product_features'] as $group_id => $v) { foreach ($v as $feature_id => $_v) { unset($value); $c = $action == 'similar_only' ? true : false; foreach ($comparison_data['products'] as $product) { $features = !empty($group_id) && isset($product['product_features'][$group_id]) ? $product['product_features'][$group_id]['subfeatures'] : $product['product_features']; if (empty($features[$feature_id])) { $c = !$c; break; } if (!isset($value)) { $value = fn_get_feature_selected_value($features[$feature_id]); continue; } elseif ($value != fn_get_feature_selected_value($features[$feature_id])) { $c = !$c; break; } } if ($c == false) { unset($comparison_data['product_features'][$group_id][$feature_id]); } } } } return $comparison_data; }
function fn_get_product_data_for_compare($product_ids, $action) { $auth =& $_SESSION['auth']; $comparison_data = array('product_features' => array(0 => array())); $tmp = array(); foreach ($product_ids as $product_id) { $product_data = fn_get_product_data($product_id, $auth, CART_LANGUAGE, '', false, true, false, false); fn_gather_additional_product_data($product_data, false, false, false, true, false); if (!empty($product_data['product_features'])) { foreach ($product_data['product_features'] as $k => $v) { if ($v['feature_type'] == 'G' && empty($v['subfeatures'])) { continue; } $_features = $v['feature_type'] == 'G' ? $v['subfeatures'] : array($k => $v); $group_id = $v['feature_type'] == 'G' ? $k : 0; $comparison_data['feature_groups'][$k] = $v['description']; foreach ($_features as $_k => $_v) { if (in_array($_k, $_SESSION['excluded_features'])) { if (empty($comparison_data['hidden_features'][$_k])) { $comparison_data['hidden_features'][$_k] = $_v['description']; } continue; } if (empty($comparison_data['product_features'][$group_id][$_k])) { $comparison_data['product_features'][$group_id][$_k] = $_v['description']; } } } } $comparison_data['products'][] = $product_data; unset($product_data); } if ($action != 'show_all' && !empty($comparison_data['product_features'])) { $value = ''; foreach ($comparison_data['product_features'] as $group_id => $v) { foreach ($v as $feature_id => $_v) { unset($value); $c = $action == 'similar_only' ? true : false; foreach ($comparison_data['products'] as $product) { $features = !empty($group_id) && isset($product['product_features'][$group_id]) ? $product['product_features'][$group_id]['subfeatures'] : $product['product_features']; if (empty($features[$feature_id])) { $c = !$c; break; } if (!isset($value)) { $value = fn_get_feature_selected_value($features[$feature_id]); continue; } elseif ($value != fn_get_feature_selected_value($features[$feature_id])) { $c = !$c; break; } } if ($c == false) { unset($comparison_data['product_features'][$group_id][$feature_id]); } } } } return $comparison_data; }
function fn_get_product_data_for_compare($product_ids, $action) { $auth =& Tygh::$app['session']['auth']; $comparison_data = array('product_features' => array(0 => array())); $tmp = array(); foreach ($product_ids as $product_id) { $product_data = fn_get_product_data($product_id, $auth, CART_LANGUAGE, '', false, true, false, false, false, false); list($product_data['product_features']) = fn_get_product_features(array('product_id' => $product_id, 'product_company_id' => !empty($product_data['company_id']) ? $product_data['company_id'] : 0, 'statuses' => array('A'), 'variants' => true, 'plain' => false, 'existent_only' => true, 'variants_selected_only' => true), 0); fn_gather_additional_product_data($product_data, false, false, false, true, false); if (!empty($product_data['product_features'])) { foreach ($product_data['product_features'] as $k => $v) { if ($v['display_on_product'] === 'N' && $v['display_on_catalog'] == 'N' && $v['display_on_header'] == 'N') { continue; } if ($v['feature_type'] == ProductFeatures::GROUP && empty($v['subfeatures'])) { continue; } $_features = $v['feature_type'] == ProductFeatures::GROUP ? $v['subfeatures'] : array($k => $v); $group_id = $v['feature_type'] == ProductFeatures::GROUP ? $k : 0; $comparison_data['feature_groups'][$k] = $v['description']; foreach ($_features as $_k => $_v) { if (in_array($_k, Tygh::$app['session']['excluded_features'])) { if (empty($comparison_data['hidden_features'][$_k])) { $comparison_data['hidden_features'][$_k] = $_v['description']; } continue; } if (empty($comparison_data['product_features'][$group_id][$_k])) { $comparison_data['product_features'][$group_id][$_k] = $_v['description']; } } } } $comparison_data['products'][] = $product_data; unset($product_data); } if ($action != 'show_all' && !empty($comparison_data['product_features'])) { $value = ''; foreach ($comparison_data['product_features'] as $group_id => $v) { foreach ($v as $feature_id => $_v) { unset($value); $c = $action == 'similar_only' ? true : false; foreach ($comparison_data['products'] as $product) { $features = !empty($group_id) && isset($product['product_features'][$group_id]['subfeatures']) ? $product['product_features'][$group_id]['subfeatures'] : $product['product_features']; if (empty($features[$feature_id])) { $c = !$c; break; } if (!isset($value)) { $value = fn_get_feature_selected_value($features[$feature_id]); continue; } elseif ($value != fn_get_feature_selected_value($features[$feature_id])) { $c = !$c; break; } } if ($c == false) { unset($comparison_data['product_features'][$group_id][$feature_id]); } } } } return $comparison_data; }