$per_page = (int) Tools::getValue('pagination'); $start = $per_page * $page - $per_page; $limit = ' LIMIT ' . $start . ', ' . $per_page . ' '; $configuration_view_obj = new GiveItConfigurationView(); $products_data = $configuration_view_obj->getProductsByCategory($id_category, $id_shop, $id_lang, $order_by, $order_way, $filter, $limit); $list_total = count($configuration_view_obj->getProductsByCategory($id_category, $id_shop, $id_lang, $order_by, $order_way, $filter, $limit, true)); $pagination = version_compare(_PS_VERSION_, '1.6', '>=') ? array(20, 50, 100, 300, 1000) : array(20, 50, 100, 300); $total_pages = ceil($list_total / $per_page); if (!$total_pages) { $total_pages = 1; } $selected_pagination = Tools::getValue('pagination', isset(Context::getContext()->cookie->{'project_pagination'}) ? Context::getContext()->cookie->{'project_pagination'} : null); Context::getContext()->smarty->assign(array('products' => $products_data, 'page' => $page, 'selected_pagination' => $selected_pagination, 'pagination' => $pagination, 'total_pages' => $total_pages, 'list_total' => $list_total, 'cookie_order_by' => $order_by, 'cookie_order_way' => $order_way)); if (version_compare(_PS_VERSION_, '1.6', '>=')) { die(Context::getContext()->smarty->fetch(_GIVEIT_TPL_DIR_ . 'admin/selected_category_ps16.tpl')); } else { die(Context::getContext()->smarty->fetch(_GIVEIT_TPL_DIR_ . 'admin/selected_category.tpl')); } } if (Tools::isSubmit('getCombinationSetting')) { $id_product = (int) Tools::getValue('id_product'); $id_combination = (int) Tools::getValue('id_combination'); die(GiveItProduct::buttonIsDisplayed($id_product, $id_combination)); } if (Tools::isSubmit('setCombinationSetting')) { $id_product = (int) Tools::getValue('id_product'); $id_combination = (int) Tools::getValue('id_combination'); $setting_value = Tools::getValue('setting_value'); $id_shop = (int) Tools::getValue('id_shop'); die(GiveItProduct::saveProductCombinationSetting($id_product, $id_combination, $setting_value, $id_shop)); }
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; }