include_once dirname(__FILE__) . '/../../config/config.inc.php'; include_once dirname(__FILE__) . '/../../init.php'; include_once dirname(__FILE__) . '/giveit.php'; /*module core*/ include_once _GIVEIT_CLASSES_DIR_ . '/configuration.view.php'; $module_instance = new GiveIT(); if (!Tools::isSubmit('token') || Tools::isSubmit('token') && Tools::getValue('token') != sha1(_COOKIE_KEY_ . $module_instance->name)) { exit; } if (Tools::isSubmit('updateCombinationSettings')) { if ($combinations = Tools::getValue('combinations')) { $id_product = (int) Tools::getValue('id_product'); GiveItProduct::clearProductAssociations($id_product); foreach ($combinations as $id_product_attribute => $display_button) { if ($display_button !== '') { $product = new GiveItProduct(); $product->id_product = $id_product; $product->id_product_attribute = (int) $id_product_attribute; $product->display_button = (int) $display_button; if (!$product->save()) { die(Tools::jsonEncode(array('error' => sprintf($module_instance->l('Error on save settings for product #%d and product combination #%d', 'giveit.ajax.php'), $product->id_product, $product->id_product_attribute)))); } } } die(Tools::jsonEncode(array('success' => $module_instance->l('Product combination settings were successfully updated', 'giveit.ajax.php')))); } } if (Tools::isSubmit('getProductList')) { $id_category = (int) Tools::getValue('id_category'); $id_shop = (int) Tools::getValue('id_shop'); $id_lang = (int) Tools::getValue('id_lang');
public function getProductCombinations($product) { /* Build attributes combinations */ if (version_compare(_PS_VERSION_, '1.5', '<')) { $combinations = $product->getAttributeCombinaisons((int) $this->context->language->id); } else { $combinations = $product->getAttributeCombinations((int) $this->context->language->id); } $comb_array = array(); if (is_array($combinations)) { foreach ($combinations as $k => $combination) { $comb_array[$combination['id_product_attribute']]['id_product_attribute'] = $combination['id_product_attribute']; $comb_array[$combination['id_product_attribute']]['attributes'][] = array($combination['group_name'], $combination['attribute_name'], $combination['id_attribute']); } } if ($comb_array) { foreach ($comb_array as $id_product_attribute => $product_attribute) { $list = ''; /* In order to keep the same attributes order */ asort($product_attribute['attributes']); foreach ($product_attribute['attributes'] as $attribute) { $list .= $attribute[0] . ' - ' . $attribute[1] . ', '; } $list = rtrim($list, ', '); $comb_array[$id_product_attribute]['attributes'] = $list; $display_button = GiveItProduct::buttonIsDisplayed($product->id, $id_product_attribute); $comb_array[$id_product_attribute]['display_button'] = $display_button === false ? '' : (int) $display_button; $comb_array[$id_product_attribute]['quantity'] = Product::getQuantity($product->id, $id_product_attribute); } } else { $display_button = GiveItProduct::buttonIsDisplayed($product->id, 0); $display_button = $display_button === false ? '' : (int) $display_button; $comb_array[0] = array('id_product_attribute' => 0, 'attributes' => $product->name, 'display_button' => $display_button, 'quantity' => Product::getQuantity($product->id)); } return $comb_array; }