Current Path : /var/www/storage2/modification/catalog/controller/product/ |
Current File : /var/www/storage2/modification/catalog/controller/product/compare.php |
<?php class ControllerProductCompare extends Controller { public function index() { $this->load->language('product/compare'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (!isset($this->session->data['compare'])) { $this->session->data['compare'] = array(); } if (isset($this->request->get['remove'])) { $key = array_search($this->request->get['remove'], $this->session->data['compare']); if ($key !== false) { unset($this->session->data['compare'][$key]); $this->session->data['success'] = $this->language->get('text_remove'); } $this->response->redirect($this->url->link('product/compare')); } $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/compare') ); if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['review_status'] = $this->config->get('config_review_status'); $data['products'] = array(); $data['attribute_groups'] = array(); foreach ($this->session->data['compare'] as $key => $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_compare_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_compare_height')); } else { $image = defined('JOURNAL3_ACTIVE') ? $this->model_tool_image->resize('placeholder.png', $this->journal3->settings->get('image_dimensions_compare.width'), $this->journal3->settings->get('image_dimensions_compare.height')) : false; } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($product_info['quantity'] <= 0) { $availability = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $availability = $product_info['quantity']; } else { $availability = $this->language->get('text_instock'); } $attribute_data = array(); $attribute_groups = $this->model_catalog_product->getProductAttributes($product_id); foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { $attribute_data[$attribute['attribute_id']] = $attribute['text']; } } $data['products'][$product_id] = array( 'classes' => array( defined('JOURNAL3_ACTIVE') ? $this->journal3->productExcludeButton($product_info, $price, $special) : null, ), 'price_value' => defined('JOURNAL3_ACTIVE') ? ($product_info['special'] ? $product_info['special'] > 0 : $product_info['price'] > 0) : null, 'product_id' => $product_info['product_id'], 'name' => $product_info['name'], 'thumb' => $image, 'price' => $price, 'special' => $special, 'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, 200) . '..', 'model' => $product_info['model'], 'manufacturer' => $product_info['manufacturer'], 'availability' => $availability, 'minimum' => $product_info['minimum'] > 0 ? $product_info['minimum'] : 1, 'rating' => (int)$product_info['rating'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']), 'weight' => $this->weight->format($product_info['weight'], $product_info['weight_class_id']), 'length' => $this->length->format($product_info['length'], $product_info['length_class_id']), 'width' => $this->length->format($product_info['width'], $product_info['length_class_id']), 'height' => $this->length->format($product_info['height'], $product_info['length_class_id']), 'attribute' => $attribute_data, 'href' => $this->url->link('product/product', 'product_id=' . $product_id), 'remove' => $this->url->link('product/compare', 'remove=' . $product_id) ); foreach ($attribute_groups as $attribute_group) { $data['attribute_groups'][$attribute_group['attribute_group_id']]['name'] = $attribute_group['name']; foreach ($attribute_group['attribute'] as $attribute) { $data['attribute_groups'][$attribute_group['attribute_group_id']]['attribute'][$attribute['attribute_id']]['name'] = $attribute['name']; } } } else { unset($this->session->data['compare'][$key]); } } $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/compare', $data)); } public function add() { $this->load->language('product/compare'); $json = array(); if (!isset($this->session->data['compare'])) { $this->session->data['compare'] = array(); } if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (!in_array($this->request->post['product_id'], $this->session->data['compare'])) { if (count($this->session->data['compare']) >= 4) { array_shift($this->session->data['compare']); } $this->session->data['compare'][] = $this->request->post['product_id']; } $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('product/compare')); if (defined('JOURNAL3_ACTIVE')) { $json['notification'] = $this->journal3->loadController('journal3/notification/compare', array('product_info' => $product_info, 'message' => $json['success'])); $json['count'] = isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0; } if (defined('JOURNAL3_ACTIVE')) { $json['total'] = $this->journal3->countBadge($this->language->get('text_compare'), isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0); } else { $json['total'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } }