DarkJoker Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так проблема такая: Фильтр товаров отображаться но не ищет не по одному параметру. 1.5.5.1.2 ocStore как вылечить? 2015-03-27 12:31:28 - PHP Notice: Undefined index: name in /home/xxx/admin/view/template/catalog/product_list.tpl on line 113 Надіслати Поділитися на інших сайтах More sharing options...
DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 На этой строке у меня <td class="left"><?php foreach ($product['category'] as $cat) echo $cat['name'] . '<br />'; ?></td> Надіслати Поділитися на інших сайтах More sharing options...
AlexDW Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 вспоминать - чего делали что такое случилось лезть в admin\controller\catalog\product.php, смотреть что с 'category' => $this->model_catalog_product->getProductCatNames($result['product_id']), и что именно в admin\model\catalog\product.php в getProductCatNames Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 class ControllerCatalogProduct extends Controller { private $error = array(); public function index() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); $this->getList(); } public function filter() { $json = array(); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = null; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = null; } if (isset($this->request->get['filter_manufacturer_id'])) { $filter_manufacturer_id = $this->request->get['filter_manufacturer_id']; } else { $filter_manufacturer_id = null; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } if (isset($this->request->get['filter_price'])) { $filter_price = $this->request->get['filter_price']; } else { $filter_price = null; } if (isset($this->request->get['filter_quantity'])) { $filter_quantity = $this->request->get['filter_quantity']; } else { $filter_quantity = null; } if (isset($this->request->get['filter_status'])) { $filter_status = $this->request->get['filter_status']; } else { $filter_status = null; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'pd.name'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . $this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data = array( 'filter_name' => $filter_name, 'filter_category_id' => $filter_category_id, 'filter_manufacturer_id' => $filter_manufacturer_id, 'filter_model' => $filter_model, 'filter_price' => $filter_price, 'filter_quantity' => $filter_quantity, 'filter_status' => $filter_status, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $this->config->get('config_admin_limit'), 'limit' => $this->config->get('config_admin_limit') ); $this->load->model('tool/image'); $this->load->model('catalog/product'); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); $json['products'] = array(); foreach ($results as $result) { $action = array(); $action[] = array( 'text' => $this->language->get('text_edit'), 'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL') ); if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $image = $this->model_tool_image->resize($result['image'], 40, 40); } else { $image = $this->model_tool_image->resize('no_image.jpg', 40, 40); } $special = false; $product_specials = $this->model_catalog_product->getProductSpecials($result['product_id']); foreach ($product_specials as $product_special) { if (($product_special['date_start'] == '0000-00-00' || $product_special['date_start'] > date('Y-m-d')) && ($product_special['date_end'] == '0000-00-00' || $product_special['date_end'] < date('Y-m-d'))) { $special = $product_special['price']; break; } } $json['products'][] = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'category' => $this->model_catalog_product->getProductCatNames($result['product_id']), 'manufacturer' => $result['m_name'], 'model' => $result['model'], 'price' => $result['price'], 'special' => $special, 'image' => $image, 'quantity' => $result['quantity'], 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 'action' => $action ); } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $this->config->get('config_admin_limit'); $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL'); $json['pagination'] = $pagination->render(); $this->response->setOutput(json_encode($json)); } public function insert() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_catalog_product->addProduct($this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getForm(); } public function update() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_catalog_product->editProduct($this->request->get['product_id'], $this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getForm(); } public function delete() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (isset($this->request->post['selected']) && $this->validateDelete()) { foreach ($this->request->post['selected'] as $product_id) { $this->model_catalog_product->deleteProduct($product_id); } $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getList(); } public function copy() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (isset($this->request->post['selected']) && $this->validateCopy()) { foreach ($this->request->post['selected'] as $product_id) { $this->model_catalog_product->copyProduct($product_id); } $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getList(); } private function getList() { if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = null; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = null; } if (isset($this->request->get['filter_manufacturer_id'])) { $filter_manufacturer_id = $this->request->get['filter_manufacturer_id']; } else { $filter_manufacturer_id = null; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } if (isset($this->request->get['filter_price'])) { $filter_price = $this->request->get['filter_price']; } else { $filter_price = null; } if (isset($this->request->get['filter_quantity'])) { $filter_quantity = $this->request->get['filter_quantity']; } else { $filter_quantity = null; } if (isset($this->request->get['filter_status'])) { $filter_status = $this->request->get['filter_status']; } else { $filter_status = null; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'pd.name'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['page'] = $page; $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'), 'separator' => ' :: ' ); $this->data['insert'] = $this->url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['copy'] = $this->url->link('catalog/product/copy', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['delete'] = $this->url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['products'] = array(); $data = array( 'filter_name' => $filter_name, 'filter_manufacturer_id' => $filter_manufacturer_id, 'filter_category_id' => $filter_category_id, 'filter_model' => $filter_model, 'filter_price' => $filter_price, 'filter_quantity' => $filter_quantity, 'filter_status' => $filter_status, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $this->config->get('config_admin_limit'), 'limit' => $this->config->get('config_admin_limit') ); $this->load->model('tool/image'); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); foreach ($results as $result) { $action = array(); $action[] = array( 'text' => $this->language->get('text_edit'), 'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL') ); if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $image = $this->model_tool_image->resize($result['image'], 40, 40); } else { $image = $this->model_tool_image->resize('no_image.jpg', 40, 40); } $special = false; $product_specials = $this->model_catalog_product->getProductSpecials($result['product_id']); foreach ($product_specials as $product_special) { if (($product_special['date_start'] == '0000-00-00' || $product_special['date_start'] > date('Y-m-d')) && ($product_special['date_end'] == '0000-00-00' || $product_special['date_end'] < date('Y-m-d'))) { $special = $product_special['price']; break; } } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'category' => $this->model_catalog_product->getProductCatNames($result['product_id']), 'manufacturer' => $result['m_name'], 'name' => $result['name'], 'model' => $result['model'], 'price' => $result['price'], 'special' => $special, 'image' => $image, 'quantity' => $result['quantity'], 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 'action' => $action ); } $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_enabled'] = $this->language->get('text_enabled'); $this->data['text_disabled'] = $this->language->get('text_disabled'); $this->data['text_no_results'] = $this->language->get('text_no_results'); $this->data['text_image_manager'] = $this->language->get('text_image_manager'); $this->data['column_category'] = $this->language->get('column_category'); $this->data['column_manufacturer'] = $this->language->get('column_manufacturer'); $this->data['column_image'] = $this->language->get('column_image'); $this->data['column_name'] = $this->language->get('column_name'); $this->data['column_model'] = $this->language->get('column_model'); $this->data['column_price'] = $this->language->get('column_price'); $this->data['column_quantity'] = $this->language->get('column_quantity'); $this->data['column_status'] = $this->language->get('column_status'); $this->data['column_action'] = $this->language->get('column_action'); $this->data['button_copy'] = $this->language->get('button_copy'); $this->data['button_insert'] = $this->language->get('button_insert'); $this->data['button_delete'] = $this->language->get('button_delete'); $this->data['button_clear'] = $this->language->get('button_clear'); $this->data['token'] = $this->session->data['token']; if (isset($this->error['warning'])) { $this->data['error_warning'] = $this->error['warning']; } else { $this->data['error_warning'] = ''; } if (isset($this->session->data['success'])) { $this->data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $this->data['success'] = ''; } $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if ($order == 'ASC') { $url .= '&order=DESC'; } else { $url .= '&order=ASC'; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['sort_name'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=pd.name' . $url, 'SSL'); $this->data['sort_model'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.model' . $url, 'SSL'); $this->data['sort_price'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.price' . $url, 'SSL'); $this->data['sort_quantity'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.quantity' . $url, 'SSL'); $this->data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.status' . $url, 'SSL'); $this->data['sort_order'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.sort_order' . $url, 'SSL'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $this->config->get('config_admin_limit'); $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL'); $this->data['pagination'] = $pagination->render(); $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_manufacturer_id'] = $filter_manufacturer_id; $this->data['filter_name'] = $filter_name; $this->data['filter_model'] = $filter_model; $this->data['filter_price'] = $filter_price; $this->data['filter_quantity'] = $filter_quantity; $this->data['filter_status'] = $filter_status; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->load->model('catalog/category'); $this->load->model('catalog/manufacturer'); $this->data['categories'] = $this->model_catalog_category->getCategories(0); $this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers(); $this->template = 'catalog/product_list.tpl'; $this->children = array( 'common/header', 'common/footer' ); $this->response->setOutput($this->render()); } protected function getForm() { $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_enabled'] = $this->language->get('text_enabled'); $this->data['text_disabled'] = $this->language->get('text_disabled'); $this->data['text_none'] = $this->language->get('text_none'); $this->data['text_yes'] = $this->language->get('text_yes'); $this->data['text_no'] = $this->language->get('text_no'); $this->data['text_select_all'] = $this->language->get('text_select_all'); $this->data['text_unselect_all'] = $this->language->get('text_unselect_all'); $this->data['text_plus'] = $this->language->get('text_plus'); $this->data['text_minus'] = $this->language->get('text_minus'); $this->data['text_default'] = $this->language->get('text_default'); $this->data['text_image_manager'] = $this->language->get('text_image_manager'); $this->data['text_browse'] = $this->language->get('text_browse'); $this->data['text_clear'] = $this->language->get('text_clear'); $this->data['text_option'] = $this->language->get('text_option'); $this->data['text_option_value'] = $this->language->get('text_option_value'); $this->data['text_select'] = $this->language->get('text_select'); $this->data['text_none'] = $this->language->get('text_none'); $this->data['text_percent'] = $this->language->get('text_percent'); $this->data['text_amount'] = $this->language->get('text_amount'); $this->data['text_hidelink'] = $this->language->get('text_hidelink'); $this->data['entry_name'] = $this->language->get('entry_name'); $this->data['entry_meta_description'] = $this->language->get('entry_meta_description'); $this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['entry_store'] = $this->language->get('entry_store'); $this->data['entry_keyword'] = $this->language->get('entry_keyword'); $this->data['entry_model'] = $this->language->get('entry_model'); $this->data['entry_sku'] = $this->language->get('entry_sku'); $this->data['entry_upc'] = $this->language->get('entry_upc'); $this->data['entry_ean'] = $this->language->get('entry_ean'); $this->data['entry_jan'] = $this->language->get('entry_jan'); $this->data['entry_isbn'] = $this->language->get('entry_isbn'); $this->data['entry_mpn'] = $this->language->get('entry_mpn'); $this->data['entry_location'] = $this->language->get('entry_location'); $this->data['entry_minimum'] = $this->language->get('entry_minimum'); $this->data['entry_manufacturer'] = $this->language->get('entry_manufacturer'); $this->data['entry_shipping'] = $this->language->get('entry_shipping'); $this->data['entry_date_available'] = $this->language->get('entry_date_available'); $this->data['entry_quantity'] = $this->language->get('entry_quantity'); $this->data['entry_stock_status'] = $this->language->get('entry_stock_status'); $this->data['entry_price'] = $this->language->get('entry_price'); $this->data['entry_tax_class'] = $this->language->get('entry_tax_class'); $this->data['entry_points'] = $this->language->get('entry_points'); $this->data['entry_option_points'] = $this->language->get('entry_option_points'); $this->data['entry_subtract'] = $this->language->get('entry_subtract'); $this->data['entry_weight_class'] = $this->language->get('entry_weight_class'); $this->data['entry_weight'] = $this->language->get('entry_weight'); $this->data['entry_dimension'] = $this->language->get('entry_dimension'); $this->data['entry_length'] = $this->language->get('entry_length'); $this->data['entry_image'] = $this->language->get('entry_image'); $this->data['entry_download'] = $this->language->get('entry_download'); $this->data['entry_category'] = $this->language->get('entry_category'); $this->data['entry_filter'] = $this->language->get('entry_filter'); $this->data['entry_related'] = $this->language->get('entry_related'); $this->data['entry_attribute'] = $this->language->get('entry_attribute'); $this->data['entry_text'] = $this->language->get('entry_text'); $this->data['entry_option'] = $this->language->get('entry_option'); $this->data['entry_option_value'] = $this->language->get('entry_option_value'); $this->data['entry_required'] = $this->language->get('entry_required'); $this->data['entry_sort_order'] = $this->language->get('entry_sort_order'); $this->data['entry_status'] = $this->language->get('entry_status'); $this->data['entry_customer_group'] = $this->language->get('entry_customer_group'); $this->data['entry_date_start'] = $this->language->get('entry_date_start'); $this->data['entry_date_end'] = $this->language->get('entry_date_end'); $this->data['entry_priority'] = $this->language->get('entry_priority'); $this->data['entry_tag'] = $this->language->get('entry_tag'); $this->data['entry_customer_group'] = $this->language->get('entry_customer_group'); $this->data['entry_reward'] = $this->language->get('entry_reward'); $this->data['entry_layout'] = $this->language->get('entry_layout'); $this->data['entry_main_category'] = $this->language->get('entry_main_category'); $this->data['entry_seo_title'] = $this->language->get('entry_seo_title'); $this->data['entry_seo_h1'] = $this->language->get('entry_seo_h1'); $this->data['button_save'] = $this->language->get('button_save'); $this->data['button_cancel'] = $this->language->get('button_cancel'); $this->data['button_add_attribute'] = $this->language->get('button_add_attribute'); $this->data['button_add_option'] = $this->language->get('button_add_option'); $this->data['button_add_option_value'] = $this->language->get('button_add_option_value'); $this->data['button_add_discount'] = $this->language->get('button_add_discount'); $this->data['button_add_special'] = $this->language->get('button_add_special'); $this->data['button_add_image'] = $this->language->get('button_add_image'); $this->data['button_remove'] = $this->language->get('button_remove'); $this->data['tab_general'] = $this->language->get('tab_general'); $this->data['tab_data'] = $this->language->get('tab_data'); $this->data['tab_attribute'] = $this->language->get('tab_attribute'); $this->data['tab_option'] = $this->language->get('tab_option'); $this->data['tab_discount'] = $this->language->get('tab_discount'); $this->data['tab_special'] = $this->language->get('tab_special'); $this->data['tab_image'] = $this->language->get('tab_image'); $this->data['tab_links'] = $this->language->get('tab_links'); $this->data['tab_reward'] = $this->language->get('tab_reward'); $this->data['tab_design'] = $this->language->get('tab_design'); if (isset($this->error['warning'])) { $this->data['error_warning'] = $this->error['warning']; } else { $this->data['error_warning'] = ''; } if (isset($this->error['name'])) { $this->data['error_name'] = $this->error['name']; } else { $this->data['error_name'] = array(); } if (isset($this->error['meta_description'])) { $this->data['error_meta_description'] = $this->error['meta_description']; } else { $this->data['error_meta_description'] = array(); } if (isset($this->error['description'])) { $this->data['error_description'] = $this->error['description']; } else { $this->data['error_description'] = array(); } if (isset($this->error['model'])) { $this->data['error_model'] = $this->error['model']; } else { $this->data['error_model'] = ''; } if (isset($this->error['date_available'])) { $this->data['error_date_available'] = $this->error['date_available']; } else { $this->data['error_date_available'] = ''; } $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'), 'separator' => ' :: ' ); if (!isset($this->request->get['product_id'])) { $this->data['action'] = $this->url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL'); } else { $this->data['action'] = $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $this->request->get['product_id'] . $url, 'SSL'); } $this->data['cancel'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'); if (isset($this->request->get['product_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']); } $this->data['token'] = $this->session->data['token']; $this->load->model('localisation/language'); $this->data['languages'] = $this->model_localisation_language->getLanguages(); if (isset($this->request->post['product_description'])) { $this->data['product_description'] = $this->request->post['product_description']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($this->request->get['product_id']); } else { $this->data['product_description'] = array(); } $language_id = $this->config->get('config_language_id'); if (isset($this->data['product_description'][$language_id]['name'])) { $this->data['heading_title'] = $this->data['product_description'][$language_id]['name']; } if (isset($this->request->post['model'])) { $this->data['model'] = $this->request->post['model']; } elseif (!empty($product_info)) { $this->data['model'] = $product_info['model']; } else { $this->data['model'] = ''; } if (isset($this->request->post['sku'])) { $this->data['sku'] = $this->request->post['sku']; } elseif (!empty($product_info)) { $this->data['sku'] = $product_info['sku']; } else { $this->data['sku'] = ''; } if (isset($this->request->post['upc'])) { $this->data['upc'] = $this->request->post['upc']; } elseif (!empty($product_info)) { $this->data['upc'] = $product_info['upc']; } else { $this->data['upc'] = ''; } if (isset($this->request->post['ean'])) { $this->data['ean'] = $this->request->post['ean']; } elseif (!empty($product_info)) { $this->data['ean'] = $product_info['ean']; } else { $this->data['ean'] = ''; } if (isset($this->request->post['jan'])) { $this->data['jan'] = $this->request->post['jan']; } elseif (!empty($product_info)) { $this->data['jan'] = $product_info['jan']; } else { $this->data['jan'] = ''; } if (isset($this->request->post['isbn'])) { $this->data['isbn'] = $this->request->post['isbn']; } elseif (!empty($product_info)) { $this->data['isbn'] = $product_info['isbn']; } else { $this->data['isbn'] = ''; } if (isset($this->request->post['mpn'])) { $this->data['mpn'] = $this->request->post['mpn']; } elseif (!empty($product_info)) { $this->data['mpn'] = $product_info['mpn']; } else { $this->data['mpn'] = ''; } if (isset($this->request->post['location'])) { $this->data['location'] = $this->request->post['location']; } elseif (!empty($product_info)) { $this->data['location'] = $product_info['location']; } else { $this->data['location'] = ''; } $this->load->model('setting/store'); $this->data['stores'] = $this->model_setting_store->getStores(); if (isset($this->request->post['product_store'])) { $this->data['product_store'] = $this->request->post['product_store']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_store'] = $this->model_catalog_product->getProductStores($this->request->get['product_id']); } else { $this->data['product_store'] = array(0); } if (isset($this->request->post['keyword'])) { $this->data['keyword'] = $this->request->post['keyword']; } elseif (!empty($product_info)) { $this->data['keyword'] = $product_info['keyword']; } else { $this->data['keyword'] = ''; } if (isset($this->request->post['image'])) { $this->data['image'] = $this->request->post['image']; } elseif (!empty($product_info)) { $this->data['image'] = $product_info['image']; } else { $this->data['image'] = ''; } $this->load->model('tool/image'); if (isset($this->request->post['image']) && file_exists(DIR_IMAGE . $this->request->post['image'])) { $this->data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100); } elseif (!empty($product_info) && $product_info['image'] && file_exists(DIR_IMAGE . $product_info['image'])) { $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], 100, 100); } else { $this->data['thumb'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); $this->data['image'] = 'no_image.jpg'; } $this->load->model('catalog/manufacturer'); $this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers(); if (isset($this->request->post['shipping'])) { $this->data['shipping'] = $this->request->post['shipping']; } elseif (!empty($product_info)) { $this->data['shipping'] = $product_info['shipping']; } else { $this->data['shipping'] = 1; } if (isset($this->request->post['price'])) { $this->data['price'] = $this->request->post['price']; } elseif (!empty($product_info)) { $this->data['price'] = $product_info['price']; } else { $this->data['price'] = ''; } $this->load->model('localisation/tax_class'); $this->data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses(); if (isset($this->request->post['tax_class_id'])) { $this->data['tax_class_id'] = $this->request->post['tax_class_id']; } elseif (!empty($product_info)) { $this->data['tax_class_id'] = $product_info['tax_class_id']; } else { $this->data['tax_class_id'] = 0; } if (isset($this->request->post['date_available'])) { $this->data['date_available'] = $this->request->post['date_available']; } elseif (!empty($product_info)) { $this->data['date_available'] = date('Y-m-d', strtotime($product_info['date_available'])); } else { $this->data['date_available'] = date('Y-m-d', time() - 86400); } if (isset($this->request->post['quantity'])) { $this->data['quantity'] = $this->request->post['quantity']; } elseif (!empty($product_info)) { $this->data['quantity'] = $product_info['quantity']; } else { $this->data['quantity'] = 1; } if (isset($this->request->post['minimum'])) { $this->data['minimum'] = $this->request->post['minimum']; } elseif (!empty($product_info)) { $this->data['minimum'] = $product_info['minimum']; } else { $this->data['minimum'] = 1; } if (isset($this->request->post['subtract'])) { $this->data['subtract'] = $this->request->post['subtract']; } elseif (!empty($product_info)) { $this->data['subtract'] = $product_info['subtract']; } else { $this->data['subtract'] = 1; } if (isset($this->request->post['sort_order'])) { $this->data['sort_order'] = $this->request->post['sort_order']; } elseif (!empty($product_info)) { $this->data['sort_order'] = $product_info['sort_order']; } else { $this->data['sort_order'] = 1; } $this->load->model('localisation/stock_status'); $this->data['stock_statuses'] = $this->model_localisation_stock_status->getStockStatuses(); if (isset($this->request->post['stock_status_id'])) { $this->data['stock_status_id'] = $this->request->post['stock_status_id']; } elseif (!empty($product_info)) { $this->data['stock_status_id'] = $product_info['stock_status_id']; } else { $this->data['stock_status_id'] = $this->config->get('config_stock_status_id'); } if (isset($this->request->post['status'])) { $this->data['status'] = $this->request->post['status']; } elseif (!empty($product_info)) { $this->data['status'] = $product_info['status']; } else { $this->data['status'] = 1; } if (isset($this->request->post['weight'])) { $this->data['weight'] = $this->request->post['weight']; } elseif (!empty($product_info)) { $this->data['weight'] = $product_info['weight']; } else { $this->data['weight'] = ''; } $this->load->model('localisation/weight_class'); $this->data['weight_classes'] = $this->model_localisation_weight_class->getWeightClasses(); if (isset($this->request->post['weight_class_id'])) { $this->data['weight_class_id'] = $this->request->post['weight_class_id']; } elseif (!empty($product_info)) { $this->data['weight_class_id'] = $product_info['weight_class_id']; } else { $this->data['weight_class_id'] = $this->config->get('config_weight_class_id'); } if (isset($this->request->post['length'])) { $this->data['length'] = $this->request->post['length']; } elseif (!empty($product_info)) { $this->data['length'] = $product_info['length']; } else { $this->data['length'] = ''; } if (isset($this->request->post['width'])) { $this->data['width'] = $this->request->post['width']; } elseif (!empty($product_info)) { $this->data['width'] = $product_info['width']; } else { $this->data['width'] = ''; } if (isset($this->request->post['height'])) { $this->data['height'] = $this->request->post['height']; } elseif (!empty($product_info)) { $this->data['height'] = $product_info['height']; } else { $this->data['height'] = ''; } $this->load->model('localisation/length_class'); $this->data['length_classes'] = $this->model_localisation_length_class->getLengthClasses(); if (isset($this->request->post['length_class_id'])) { $this->data['length_class_id'] = $this->request->post['length_class_id']; } elseif (!empty($product_info)) { $this->data['length_class_id'] = $product_info['length_class_id']; } else { $this->data['length_class_id'] = $this->config->get('config_length_class_id'); } $this->load->model('catalog/manufacturer'); if (isset($this->request->post['manufacturer_id'])) { $this->data['manufacturer_id'] = $this->request->post['manufacturer_id']; } elseif (!empty($product_info)) { $this->data['manufacturer_id'] = $product_info['manufacturer_id']; } else { $this->data['manufacturer_id'] = 0; } if (isset($this->request->post['manufacturer'])) { $this->data['manufacturer'] = $this->request->post['manufacturer']; } elseif (!empty($product_info)) { $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($product_info['manufacturer_id']); if ($manufacturer_info) { $this->data['manufacturer'] = $manufacturer_info['name']; } else { $this->data['manufacturer'] = ''; } } else { $this->data['manufacturer'] = ''; } // Categories $this->load->model('catalog/category'); if (isset($this->request->post['product_category'])) { $categories = $this->request->post['product_category']; } elseif (isset($this->request->get['product_id'])) { $categories = $this->model_catalog_product->getProductCategories($this->request->get['product_id']); } else { $categories = array(); } $this->data['categories'] = $this->model_catalog_category->getCategories(0); $this->data['product_categories'] = array(); foreach ($categories as $category_id) { $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->data['product_categories'][] = array( 'category_id' => $category_info['category_id'], 'name' => ($category_info['path'] ? $category_info['path'] . ' > ' : '') . $category_info['name'] ); } } // Filters $this->load->model('catalog/filter'); if (isset($this->request->post['product_filter'])) { $filters = $this->request->post['product_filter']; } elseif (isset($this->request->get['product_id'])) { $filters = $this->model_catalog_product->getProductFilters($this->request->get['product_id']); } else { $filters = array(); } $this->data['product_filters'] = array(); foreach ($filters as $filter_id) { $filter_info = $this->model_catalog_filter->getFilter($filter_id); if ($filter_info) { $this->data['product_filters'][] = array( 'filter_id' => $filter_info['filter_id'], 'name' => $filter_info['group'] . ' > ' . $filter_info['name'] ); } } // Attributes $this->load->model('catalog/attribute'); if (isset($this->request->post['product_attribute'])) { $product_attributes = $this->request->post['product_attribute']; } elseif (isset($this->request->get['product_id'])) { $product_attributes = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); } else { $product_attributes = array(); } $this->data['product_attributes'] = array(); foreach ($product_attributes as $product_attribute) { $attribute_info = $this->model_catalog_attribute->getAttribute($product_attribute['attribute_id']); if ($attribute_info) { $this->data['product_attributes'][] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $attribute_info['name'], 'product_attribute_description' => $product_attribute['product_attribute_description'] ); } } // Options $this->load->model('catalog/option'); if (isset($this->request->post['product_option'])) { $product_options = $this->request->post['product_option']; } elseif (isset($this->request->get['product_id'])) { $product_options = $this->model_catalog_product->getProductOptions($this->request->get['product_id']); } else { $product_options = array(); } $this->data['product_options'] = array(); foreach ($product_options as $product_option) { if ($product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') { $product_option_value_data = array(); foreach ($product_option['product_option_value'] as $product_option_value) { $product_option_value_data[] = array( 'product_option_value_id' => $product_option_value['product_option_value_id'], 'option_value_id' => $product_option_value['option_value_id'], 'quantity' => $product_option_value['quantity'], 'subtract' => $product_option_value['subtract'], 'price' => $product_option_value['price'], 'price_prefix' => $product_option_value['price_prefix'], 'points' => $product_option_value['points'], 'points_prefix' => $product_option_value['points_prefix'], 'weight' => $product_option_value['weight'], 'weight_prefix' => $product_option_value['weight_prefix'] ); } $this->data['product_options'][] = array( 'product_option_id' => $product_option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $product_option['option_id'], 'name' => $product_option['name'], 'type' => $product_option['type'], 'required' => $product_option['required'] ); } else { $this->data['product_options'][] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $product_option['name'], 'type' => $product_option['type'], 'option_value' => $product_option['option_value'], 'required' => $product_option['required'] ); } } $this->data['option_values'] = array(); foreach ($this->data['product_options'] as $product_option) { if ($product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') { if (!isset($this->data['option_values'][$product_option['option_id']])) { $this->data['option_values'][$product_option['option_id']] = $this->model_catalog_option->getOptionValues($product_option['option_id']); } } } $this->load->model('sale/customer_group'); $this->data['customer_groups'] = $this->model_sale_customer_group->getCustomerGroups(); if (isset($this->request->post['product_discount'])) { $this->data['product_discounts'] = $this->request->post['product_discount']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_discounts'] = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); } else { $this->data['product_discounts'] = array(); } if (isset($this->request->post['product_special'])) { $this->data['product_specials'] = $this->request->post['product_special']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_specials'] = $this->model_catalog_product->getProductSpecials($this->request->get['product_id']); } else { $this->data['product_specials'] = array(); } // Images if (isset($this->request->post['product_image'])) { $product_images = $this->request->post['product_image']; } elseif (isset($this->request->get['product_id'])) { $product_images = $this->model_catalog_product->getProductImages($this->request->get['product_id']); } else { $product_images = array(); } $this->data['product_images'] = array(); foreach ($product_images as $product_image) { if ($product_image['image'] && file_exists(DIR_IMAGE . $product_image['image'])) { $image = $product_image['image']; } else { $image = 'no_image.jpg'; } $this->data['product_images'][] = array( 'image' => $image, 'thumb' => $this->model_tool_image->resize($image, 100, 100), 'sort_order' => $product_image['sort_order'] ); } $this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); // Downloads $this->load->model('catalog/download'); if (isset($this->request->post['product_download'])) { $product_downloads = $this->request->post['product_download']; } elseif (isset($this->request->get['product_id'])) { $product_downloads = $this->model_catalog_product->getProductDownloads($this->request->get['product_id']); } else { $product_downloads = array(); } $this->data['product_downloads'] = array(); foreach ($product_downloads as $download_id) { $download_info = $this->model_catalog_download->getDownload($download_id); if ($download_info) { $this->data['product_downloads'][] = array( 'download_id' => $download_info['download_id'], 'name' => $download_info['name'] ); } } if (isset($this->request->post['main_category_id'])) { $this->data['main_category_id'] = $this->request->post['main_category_id']; } elseif (isset($product_info)) { $this->data['main_category_id'] = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']); } else { $this->data['main_category_id'] = 0; } if (isset($this->request->post['product_category'])) { $this->data['product_category'] = $this->request->post['product_category']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_category'] = $this->model_catalog_product->getProductCategories($this->request->get['product_id']); } else { $this->data['product_category'] = array(); } if (isset($this->request->post['product_related'])) { $products = $this->request->post['product_related']; } elseif (isset($this->request->get['product_id'])) { $products = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); } else { $products = array(); } $this->data['product_related'] = array(); foreach ($products as $product_id) { $related_info = $this->model_catalog_product->getProduct($product_id); if ($related_info) { $this->data['product_related'][] = array( 'product_id' => $related_info['product_id'], 'name' => $related_info['name'] ); } } if (isset($this->request->post['points'])) { $this->data['points'] = $this->request->post['points']; } elseif (!empty($product_info)) { $this->data['points'] = $product_info['points']; } else { $this->data['points'] = ''; } if (isset($this->request->post['product_reward'])) { $this->data['product_reward'] = $this->request->post['product_reward']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_reward'] = $this->model_catalog_product->getProductRewards($this->request->get['product_id']); } else { $this->data['product_reward'] = array(); } if (isset($this->request->post['product_layout'])) { $this->data['product_layout'] = $this->request->post['product_layout']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_layout'] = $this->model_catalog_product->getProductLayouts($this->request->get['product_id']); } else { $this->data['product_layout'] = array(); } $this->load->model('design/layout'); $this->data['layouts'] = $this->model_design_layout->getLayouts(); $this->template = 'catalog/product_form.tpl'; $this->children = array( 'common/header', 'common/footer' ); $this->response->setOutput($this->render()); } protected function validateForm() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } foreach ($this->request->post['product_description'] as $language_id => $value) { if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) { $this->error['name'][$language_id] = $this->language->get('error_name'); } } if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) { $this->error['model'] = $this->language->get('error_model'); } if ($this->error && !isset($this->error['warning'])) { $this->error['warning'] = $this->language->get('error_warning'); } if (!$this->error) { return true; } else { return false; } } protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!$this->error) { return true; } else { return false; } } protected function validateCopy() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!$this->error) { return true; } else { return false; } } public function autocomplete() { $json = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_model']) || isset($this->request->get['filter_category_id'])) { $this->load->model('catalog/product'); $this->load->model('catalog/option'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = ''; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = 20; } $data = array( 'filter_name' => $filter_name, 'filter_model' => $filter_model, 'start' => 0, 'limit' => $limit ); if (isset($this->request->get['filter_category_id'])) { $data['filter_category_id'] = $this->request->get['filter_category_id']; } $results = $this->model_catalog_product->getProducts($data); foreach ($results as $result) { $option_data = array(); $product_options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach ($product_options as $product_option) { $option_info = $this->model_catalog_option->getOption($product_option['option_id']); if ($option_info) { if ($option_info['type'] == 'select' || $option_info['type'] == 'radio' || $option_info['type'] == 'checkbox' || $option_info['type'] == 'image') { $option_value_data = array(); foreach ($product_option['product_option_value'] as $product_option_value) { $option_value_info = $this->model_catalog_option->getOptionValue($product_option_value['option_value_id']); if ($option_value_info) { $option_value_data[] = array( 'product_option_value_id' => $product_option_value['product_option_value_id'], 'option_value_id' => $product_option_value['option_value_id'], 'name' => $option_value_info['name'], 'price' => (float)$product_option_value['price'] ? $this->currency->format($product_option_value['price'], $this->config->get('config_currency')) : false, 'price_prefix' => $product_option_value['price_prefix'] ); } } $option_data[] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $option_info['name'], 'type' => $option_info['type'], 'option_value' => $option_value_data, 'required' => $product_option['required'] ); } else { $option_data[] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $option_info['name'], 'type' => $option_info['type'], 'option_value' => $product_option['option_value'], 'required' => $product_option['required'] ); } } } $json[] = array( 'product_id' => $result['product_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 'model' => $result['model'], 'option' => $option_data, 'price' => $result['price'] ); } } $this->response->setOutput(json_encode($json)); } } ?> Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 убери это полотно :-x Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 (змінено) - Спойлер? не, не слышал :-D смотреть что именно в admin\model\catalog\product.php в getProductCatNames, сравнить с тем что в чистом файле из оригинального дистрибутива Змінено 27 березня 2015 користувачем AlexDW Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Ща сек)) Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Где там конфликтует? Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Попробовал заменить файлы и не фига Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет случайно вклинился или забыл перелогиниться? Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 Да вк забанили я через него заходил Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так кому интересно решение проблемы. Удалил последние товары (кто знаком с программированием были проблемы с ключами). Удалил 15 товаров и поис заработал. (проблема не решалась с помощью удаления модулей и заменой оригинальных файлов осталось только бд). Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 28 березня 2015 Share Опубліковано: 28 березня 2015 Да вк забанили я через него заходил Давай облегчим тебе столь сложную жизнь , пользования форумов с двух аккаунтов....... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Проблема с фильтром товаров в админке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 class ControllerCatalogProduct extends Controller { private $error = array(); public function index() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); $this->getList(); } public function filter() { $json = array(); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = null; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = null; } if (isset($this->request->get['filter_manufacturer_id'])) { $filter_manufacturer_id = $this->request->get['filter_manufacturer_id']; } else { $filter_manufacturer_id = null; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } if (isset($this->request->get['filter_price'])) { $filter_price = $this->request->get['filter_price']; } else { $filter_price = null; } if (isset($this->request->get['filter_quantity'])) { $filter_quantity = $this->request->get['filter_quantity']; } else { $filter_quantity = null; } if (isset($this->request->get['filter_status'])) { $filter_status = $this->request->get['filter_status']; } else { $filter_status = null; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'pd.name'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $url = ''; if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . $this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . $this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data = array( 'filter_name' => $filter_name, 'filter_category_id' => $filter_category_id, 'filter_manufacturer_id' => $filter_manufacturer_id, 'filter_model' => $filter_model, 'filter_price' => $filter_price, 'filter_quantity' => $filter_quantity, 'filter_status' => $filter_status, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $this->config->get('config_admin_limit'), 'limit' => $this->config->get('config_admin_limit') ); $this->load->model('tool/image'); $this->load->model('catalog/product'); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); $json['products'] = array(); foreach ($results as $result) { $action = array(); $action[] = array( 'text' => $this->language->get('text_edit'), 'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL') ); if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $image = $this->model_tool_image->resize($result['image'], 40, 40); } else { $image = $this->model_tool_image->resize('no_image.jpg', 40, 40); } $special = false; $product_specials = $this->model_catalog_product->getProductSpecials($result['product_id']); foreach ($product_specials as $product_special) { if (($product_special['date_start'] == '0000-00-00' || $product_special['date_start'] > date('Y-m-d')) && ($product_special['date_end'] == '0000-00-00' || $product_special['date_end'] < date('Y-m-d'))) { $special = $product_special['price']; break; } } $json['products'][] = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'category' => $this->model_catalog_product->getProductCatNames($result['product_id']), 'manufacturer' => $result['m_name'], 'model' => $result['model'], 'price' => $result['price'], 'special' => $special, 'image' => $image, 'quantity' => $result['quantity'], 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 'action' => $action ); } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $this->config->get('config_admin_limit'); $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL'); $json['pagination'] = $pagination->render(); $this->response->setOutput(json_encode($json)); } public function insert() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_catalog_product->addProduct($this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getForm(); } public function update() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_catalog_product->editProduct($this->request->get['product_id'], $this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getForm(); } public function delete() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (isset($this->request->post['selected']) && $this->validateDelete()) { foreach ($this->request->post['selected'] as $product_id) { $this->model_catalog_product->deleteProduct($product_id); } $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getList(); } public function copy() { $this->language->load('catalog/product'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('catalog/product'); if (isset($this->request->post['selected']) && $this->validateCopy()) { foreach ($this->request->post['selected'] as $product_id) { $this->model_catalog_product->copyProduct($product_id); } $this->session->data['success'] = $this->language->get('text_success'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); } $this->getList(); } private function getList() { if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = null; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = null; } if (isset($this->request->get['filter_manufacturer_id'])) { $filter_manufacturer_id = $this->request->get['filter_manufacturer_id']; } else { $filter_manufacturer_id = null; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } if (isset($this->request->get['filter_price'])) { $filter_price = $this->request->get['filter_price']; } else { $filter_price = null; } if (isset($this->request->get['filter_quantity'])) { $filter_quantity = $this->request->get['filter_quantity']; } else { $filter_quantity = null; } if (isset($this->request->get['filter_status'])) { $filter_status = $this->request->get['filter_status']; } else { $filter_status = null; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'pd.name'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['page'] = $page; $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'), 'separator' => ' :: ' ); $this->data['insert'] = $this->url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['copy'] = $this->url->link('catalog/product/copy', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['delete'] = $this->url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL'); $this->data['products'] = array(); $data = array( 'filter_name' => $filter_name, 'filter_manufacturer_id' => $filter_manufacturer_id, 'filter_category_id' => $filter_category_id, 'filter_model' => $filter_model, 'filter_price' => $filter_price, 'filter_quantity' => $filter_quantity, 'filter_status' => $filter_status, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $this->config->get('config_admin_limit'), 'limit' => $this->config->get('config_admin_limit') ); $this->load->model('tool/image'); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); foreach ($results as $result) { $action = array(); $action[] = array( 'text' => $this->language->get('text_edit'), 'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL') ); if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $image = $this->model_tool_image->resize($result['image'], 40, 40); } else { $image = $this->model_tool_image->resize('no_image.jpg', 40, 40); } $special = false; $product_specials = $this->model_catalog_product->getProductSpecials($result['product_id']); foreach ($product_specials as $product_special) { if (($product_special['date_start'] == '0000-00-00' || $product_special['date_start'] > date('Y-m-d')) && ($product_special['date_end'] == '0000-00-00' || $product_special['date_end'] < date('Y-m-d'))) { $special = $product_special['price']; break; } } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'category' => $this->model_catalog_product->getProductCatNames($result['product_id']), 'manufacturer' => $result['m_name'], 'name' => $result['name'], 'model' => $result['model'], 'price' => $result['price'], 'special' => $special, 'image' => $image, 'quantity' => $result['quantity'], 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 'action' => $action ); } $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_enabled'] = $this->language->get('text_enabled'); $this->data['text_disabled'] = $this->language->get('text_disabled'); $this->data['text_no_results'] = $this->language->get('text_no_results'); $this->data['text_image_manager'] = $this->language->get('text_image_manager'); $this->data['column_category'] = $this->language->get('column_category'); $this->data['column_manufacturer'] = $this->language->get('column_manufacturer'); $this->data['column_image'] = $this->language->get('column_image'); $this->data['column_name'] = $this->language->get('column_name'); $this->data['column_model'] = $this->language->get('column_model'); $this->data['column_price'] = $this->language->get('column_price'); $this->data['column_quantity'] = $this->language->get('column_quantity'); $this->data['column_status'] = $this->language->get('column_status'); $this->data['column_action'] = $this->language->get('column_action'); $this->data['button_copy'] = $this->language->get('button_copy'); $this->data['button_insert'] = $this->language->get('button_insert'); $this->data['button_delete'] = $this->language->get('button_delete'); $this->data['button_clear'] = $this->language->get('button_clear'); $this->data['token'] = $this->session->data['token']; if (isset($this->error['warning'])) { $this->data['error_warning'] = $this->error['warning']; } else { $this->data['error_warning'] = ''; } if (isset($this->session->data['success'])) { $this->data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $this->data['success'] = ''; } $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if ($order == 'ASC') { $url .= '&order=DESC'; } else { $url .= '&order=ASC'; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['sort_name'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=pd.name' . $url, 'SSL'); $this->data['sort_model'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.model' . $url, 'SSL'); $this->data['sort_price'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.price' . $url, 'SSL'); $this->data['sort_quantity'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.quantity' . $url, 'SSL'); $this->data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.status' . $url, 'SSL'); $this->data['sort_order'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.sort_order' . $url, 'SSL'); $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . $this->request->get['filter_name']; } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $this->config->get('config_admin_limit'); $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL'); $this->data['pagination'] = $pagination->render(); $this->data['filter_category_id'] = $filter_category_id; $this->data['filter_manufacturer_id'] = $filter_manufacturer_id; $this->data['filter_name'] = $filter_name; $this->data['filter_model'] = $filter_model; $this->data['filter_price'] = $filter_price; $this->data['filter_quantity'] = $filter_quantity; $this->data['filter_status'] = $filter_status; $this->data['sort'] = $sort; $this->data['order'] = $order; $this->load->model('catalog/category'); $this->load->model('catalog/manufacturer'); $this->data['categories'] = $this->model_catalog_category->getCategories(0); $this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers(); $this->template = 'catalog/product_list.tpl'; $this->children = array( 'common/header', 'common/footer' ); $this->response->setOutput($this->render()); } protected function getForm() { $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_enabled'] = $this->language->get('text_enabled'); $this->data['text_disabled'] = $this->language->get('text_disabled'); $this->data['text_none'] = $this->language->get('text_none'); $this->data['text_yes'] = $this->language->get('text_yes'); $this->data['text_no'] = $this->language->get('text_no'); $this->data['text_select_all'] = $this->language->get('text_select_all'); $this->data['text_unselect_all'] = $this->language->get('text_unselect_all'); $this->data['text_plus'] = $this->language->get('text_plus'); $this->data['text_minus'] = $this->language->get('text_minus'); $this->data['text_default'] = $this->language->get('text_default'); $this->data['text_image_manager'] = $this->language->get('text_image_manager'); $this->data['text_browse'] = $this->language->get('text_browse'); $this->data['text_clear'] = $this->language->get('text_clear'); $this->data['text_option'] = $this->language->get('text_option'); $this->data['text_option_value'] = $this->language->get('text_option_value'); $this->data['text_select'] = $this->language->get('text_select'); $this->data['text_none'] = $this->language->get('text_none'); $this->data['text_percent'] = $this->language->get('text_percent'); $this->data['text_amount'] = $this->language->get('text_amount'); $this->data['text_hidelink'] = $this->language->get('text_hidelink'); $this->data['entry_name'] = $this->language->get('entry_name'); $this->data['entry_meta_description'] = $this->language->get('entry_meta_description'); $this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword'); $this->data['entry_description'] = $this->language->get('entry_description'); $this->data['entry_store'] = $this->language->get('entry_store'); $this->data['entry_keyword'] = $this->language->get('entry_keyword'); $this->data['entry_model'] = $this->language->get('entry_model'); $this->data['entry_sku'] = $this->language->get('entry_sku'); $this->data['entry_upc'] = $this->language->get('entry_upc'); $this->data['entry_ean'] = $this->language->get('entry_ean'); $this->data['entry_jan'] = $this->language->get('entry_jan'); $this->data['entry_isbn'] = $this->language->get('entry_isbn'); $this->data['entry_mpn'] = $this->language->get('entry_mpn'); $this->data['entry_location'] = $this->language->get('entry_location'); $this->data['entry_minimum'] = $this->language->get('entry_minimum'); $this->data['entry_manufacturer'] = $this->language->get('entry_manufacturer'); $this->data['entry_shipping'] = $this->language->get('entry_shipping'); $this->data['entry_date_available'] = $this->language->get('entry_date_available'); $this->data['entry_quantity'] = $this->language->get('entry_quantity'); $this->data['entry_stock_status'] = $this->language->get('entry_stock_status'); $this->data['entry_price'] = $this->language->get('entry_price'); $this->data['entry_tax_class'] = $this->language->get('entry_tax_class'); $this->data['entry_points'] = $this->language->get('entry_points'); $this->data['entry_option_points'] = $this->language->get('entry_option_points'); $this->data['entry_subtract'] = $this->language->get('entry_subtract'); $this->data['entry_weight_class'] = $this->language->get('entry_weight_class'); $this->data['entry_weight'] = $this->language->get('entry_weight'); $this->data['entry_dimension'] = $this->language->get('entry_dimension'); $this->data['entry_length'] = $this->language->get('entry_length'); $this->data['entry_image'] = $this->language->get('entry_image'); $this->data['entry_download'] = $this->language->get('entry_download'); $this->data['entry_category'] = $this->language->get('entry_category'); $this->data['entry_filter'] = $this->language->get('entry_filter'); $this->data['entry_related'] = $this->language->get('entry_related'); $this->data['entry_attribute'] = $this->language->get('entry_attribute'); $this->data['entry_text'] = $this->language->get('entry_text'); $this->data['entry_option'] = $this->language->get('entry_option'); $this->data['entry_option_value'] = $this->language->get('entry_option_value'); $this->data['entry_required'] = $this->language->get('entry_required'); $this->data['entry_sort_order'] = $this->language->get('entry_sort_order'); $this->data['entry_status'] = $this->language->get('entry_status'); $this->data['entry_customer_group'] = $this->language->get('entry_customer_group'); $this->data['entry_date_start'] = $this->language->get('entry_date_start'); $this->data['entry_date_end'] = $this->language->get('entry_date_end'); $this->data['entry_priority'] = $this->language->get('entry_priority'); $this->data['entry_tag'] = $this->language->get('entry_tag'); $this->data['entry_customer_group'] = $this->language->get('entry_customer_group'); $this->data['entry_reward'] = $this->language->get('entry_reward'); $this->data['entry_layout'] = $this->language->get('entry_layout'); $this->data['entry_main_category'] = $this->language->get('entry_main_category'); $this->data['entry_seo_title'] = $this->language->get('entry_seo_title'); $this->data['entry_seo_h1'] = $this->language->get('entry_seo_h1'); $this->data['button_save'] = $this->language->get('button_save'); $this->data['button_cancel'] = $this->language->get('button_cancel'); $this->data['button_add_attribute'] = $this->language->get('button_add_attribute'); $this->data['button_add_option'] = $this->language->get('button_add_option'); $this->data['button_add_option_value'] = $this->language->get('button_add_option_value'); $this->data['button_add_discount'] = $this->language->get('button_add_discount'); $this->data['button_add_special'] = $this->language->get('button_add_special'); $this->data['button_add_image'] = $this->language->get('button_add_image'); $this->data['button_remove'] = $this->language->get('button_remove'); $this->data['tab_general'] = $this->language->get('tab_general'); $this->data['tab_data'] = $this->language->get('tab_data'); $this->data['tab_attribute'] = $this->language->get('tab_attribute'); $this->data['tab_option'] = $this->language->get('tab_option'); $this->data['tab_discount'] = $this->language->get('tab_discount'); $this->data['tab_special'] = $this->language->get('tab_special'); $this->data['tab_image'] = $this->language->get('tab_image'); $this->data['tab_links'] = $this->language->get('tab_links'); $this->data['tab_reward'] = $this->language->get('tab_reward'); $this->data['tab_design'] = $this->language->get('tab_design'); if (isset($this->error['warning'])) { $this->data['error_warning'] = $this->error['warning']; } else { $this->data['error_warning'] = ''; } if (isset($this->error['name'])) { $this->data['error_name'] = $this->error['name']; } else { $this->data['error_name'] = array(); } if (isset($this->error['meta_description'])) { $this->data['error_meta_description'] = $this->error['meta_description']; } else { $this->data['error_meta_description'] = array(); } if (isset($this->error['description'])) { $this->data['error_description'] = $this->error['description']; } else { $this->data['error_description'] = array(); } if (isset($this->error['model'])) { $this->data['error_model'] = $this->error['model']; } else { $this->data['error_model'] = ''; } if (isset($this->error['date_available'])) { $this->data['error_date_available'] = $this->error['date_available']; } else { $this->data['error_date_available'] = ''; } $url = ''; if (isset($this->request->get['filter_category_id'])) { $url .= '&filter_category_id=' . (int)$this->request->get['filter_category_id']; } if (isset($this->request->get['filter_manufacturer_id'])) { $url .= '&filter_manufacturer_id=' . (int)$this->request->get['filter_manufacturer_id']; } if (isset($this->request->get['filter_name'])) { $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } if (isset($this->request->get['filter_price'])) { $url .= '&filter_price=' . $this->request->get['filter_price']; } if (isset($this->request->get['filter_quantity'])) { $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; } if (isset($this->request->get['filter_status'])) { $url .= '&filter_status=' . $this->request->get['filter_status']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'), 'separator' => ' :: ' ); if (!isset($this->request->get['product_id'])) { $this->data['action'] = $this->url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL'); } else { $this->data['action'] = $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $this->request->get['product_id'] . $url, 'SSL'); } $this->data['cancel'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'); if (isset($this->request->get['product_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']); } $this->data['token'] = $this->session->data['token']; $this->load->model('localisation/language'); $this->data['languages'] = $this->model_localisation_language->getLanguages(); if (isset($this->request->post['product_description'])) { $this->data['product_description'] = $this->request->post['product_description']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($this->request->get['product_id']); } else { $this->data['product_description'] = array(); } $language_id = $this->config->get('config_language_id'); if (isset($this->data['product_description'][$language_id]['name'])) { $this->data['heading_title'] = $this->data['product_description'][$language_id]['name']; } if (isset($this->request->post['model'])) { $this->data['model'] = $this->request->post['model']; } elseif (!empty($product_info)) { $this->data['model'] = $product_info['model']; } else { $this->data['model'] = ''; } if (isset($this->request->post['sku'])) { $this->data['sku'] = $this->request->post['sku']; } elseif (!empty($product_info)) { $this->data['sku'] = $product_info['sku']; } else { $this->data['sku'] = ''; } if (isset($this->request->post['upc'])) { $this->data['upc'] = $this->request->post['upc']; } elseif (!empty($product_info)) { $this->data['upc'] = $product_info['upc']; } else { $this->data['upc'] = ''; } if (isset($this->request->post['ean'])) { $this->data['ean'] = $this->request->post['ean']; } elseif (!empty($product_info)) { $this->data['ean'] = $product_info['ean']; } else { $this->data['ean'] = ''; } if (isset($this->request->post['jan'])) { $this->data['jan'] = $this->request->post['jan']; } elseif (!empty($product_info)) { $this->data['jan'] = $product_info['jan']; } else { $this->data['jan'] = ''; } if (isset($this->request->post['isbn'])) { $this->data['isbn'] = $this->request->post['isbn']; } elseif (!empty($product_info)) { $this->data['isbn'] = $product_info['isbn']; } else { $this->data['isbn'] = ''; } if (isset($this->request->post['mpn'])) { $this->data['mpn'] = $this->request->post['mpn']; } elseif (!empty($product_info)) { $this->data['mpn'] = $product_info['mpn']; } else { $this->data['mpn'] = ''; } if (isset($this->request->post['location'])) { $this->data['location'] = $this->request->post['location']; } elseif (!empty($product_info)) { $this->data['location'] = $product_info['location']; } else { $this->data['location'] = ''; } $this->load->model('setting/store'); $this->data['stores'] = $this->model_setting_store->getStores(); if (isset($this->request->post['product_store'])) { $this->data['product_store'] = $this->request->post['product_store']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_store'] = $this->model_catalog_product->getProductStores($this->request->get['product_id']); } else { $this->data['product_store'] = array(0); } if (isset($this->request->post['keyword'])) { $this->data['keyword'] = $this->request->post['keyword']; } elseif (!empty($product_info)) { $this->data['keyword'] = $product_info['keyword']; } else { $this->data['keyword'] = ''; } if (isset($this->request->post['image'])) { $this->data['image'] = $this->request->post['image']; } elseif (!empty($product_info)) { $this->data['image'] = $product_info['image']; } else { $this->data['image'] = ''; } $this->load->model('tool/image'); if (isset($this->request->post['image']) && file_exists(DIR_IMAGE . $this->request->post['image'])) { $this->data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100); } elseif (!empty($product_info) && $product_info['image'] && file_exists(DIR_IMAGE . $product_info['image'])) { $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], 100, 100); } else { $this->data['thumb'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); $this->data['image'] = 'no_image.jpg'; } $this->load->model('catalog/manufacturer'); $this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers(); if (isset($this->request->post['shipping'])) { $this->data['shipping'] = $this->request->post['shipping']; } elseif (!empty($product_info)) { $this->data['shipping'] = $product_info['shipping']; } else { $this->data['shipping'] = 1; } if (isset($this->request->post['price'])) { $this->data['price'] = $this->request->post['price']; } elseif (!empty($product_info)) { $this->data['price'] = $product_info['price']; } else { $this->data['price'] = ''; } $this->load->model('localisation/tax_class'); $this->data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses(); if (isset($this->request->post['tax_class_id'])) { $this->data['tax_class_id'] = $this->request->post['tax_class_id']; } elseif (!empty($product_info)) { $this->data['tax_class_id'] = $product_info['tax_class_id']; } else { $this->data['tax_class_id'] = 0; } if (isset($this->request->post['date_available'])) { $this->data['date_available'] = $this->request->post['date_available']; } elseif (!empty($product_info)) { $this->data['date_available'] = date('Y-m-d', strtotime($product_info['date_available'])); } else { $this->data['date_available'] = date('Y-m-d', time() - 86400); } if (isset($this->request->post['quantity'])) { $this->data['quantity'] = $this->request->post['quantity']; } elseif (!empty($product_info)) { $this->data['quantity'] = $product_info['quantity']; } else { $this->data['quantity'] = 1; } if (isset($this->request->post['minimum'])) { $this->data['minimum'] = $this->request->post['minimum']; } elseif (!empty($product_info)) { $this->data['minimum'] = $product_info['minimum']; } else { $this->data['minimum'] = 1; } if (isset($this->request->post['subtract'])) { $this->data['subtract'] = $this->request->post['subtract']; } elseif (!empty($product_info)) { $this->data['subtract'] = $product_info['subtract']; } else { $this->data['subtract'] = 1; } if (isset($this->request->post['sort_order'])) { $this->data['sort_order'] = $this->request->post['sort_order']; } elseif (!empty($product_info)) { $this->data['sort_order'] = $product_info['sort_order']; } else { $this->data['sort_order'] = 1; } $this->load->model('localisation/stock_status'); $this->data['stock_statuses'] = $this->model_localisation_stock_status->getStockStatuses(); if (isset($this->request->post['stock_status_id'])) { $this->data['stock_status_id'] = $this->request->post['stock_status_id']; } elseif (!empty($product_info)) { $this->data['stock_status_id'] = $product_info['stock_status_id']; } else { $this->data['stock_status_id'] = $this->config->get('config_stock_status_id'); } if (isset($this->request->post['status'])) { $this->data['status'] = $this->request->post['status']; } elseif (!empty($product_info)) { $this->data['status'] = $product_info['status']; } else { $this->data['status'] = 1; } if (isset($this->request->post['weight'])) { $this->data['weight'] = $this->request->post['weight']; } elseif (!empty($product_info)) { $this->data['weight'] = $product_info['weight']; } else { $this->data['weight'] = ''; } $this->load->model('localisation/weight_class'); $this->data['weight_classes'] = $this->model_localisation_weight_class->getWeightClasses(); if (isset($this->request->post['weight_class_id'])) { $this->data['weight_class_id'] = $this->request->post['weight_class_id']; } elseif (!empty($product_info)) { $this->data['weight_class_id'] = $product_info['weight_class_id']; } else { $this->data['weight_class_id'] = $this->config->get('config_weight_class_id'); } if (isset($this->request->post['length'])) { $this->data['length'] = $this->request->post['length']; } elseif (!empty($product_info)) { $this->data['length'] = $product_info['length']; } else { $this->data['length'] = ''; } if (isset($this->request->post['width'])) { $this->data['width'] = $this->request->post['width']; } elseif (!empty($product_info)) { $this->data['width'] = $product_info['width']; } else { $this->data['width'] = ''; } if (isset($this->request->post['height'])) { $this->data['height'] = $this->request->post['height']; } elseif (!empty($product_info)) { $this->data['height'] = $product_info['height']; } else { $this->data['height'] = ''; } $this->load->model('localisation/length_class'); $this->data['length_classes'] = $this->model_localisation_length_class->getLengthClasses(); if (isset($this->request->post['length_class_id'])) { $this->data['length_class_id'] = $this->request->post['length_class_id']; } elseif (!empty($product_info)) { $this->data['length_class_id'] = $product_info['length_class_id']; } else { $this->data['length_class_id'] = $this->config->get('config_length_class_id'); } $this->load->model('catalog/manufacturer'); if (isset($this->request->post['manufacturer_id'])) { $this->data['manufacturer_id'] = $this->request->post['manufacturer_id']; } elseif (!empty($product_info)) { $this->data['manufacturer_id'] = $product_info['manufacturer_id']; } else { $this->data['manufacturer_id'] = 0; } if (isset($this->request->post['manufacturer'])) { $this->data['manufacturer'] = $this->request->post['manufacturer']; } elseif (!empty($product_info)) { $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($product_info['manufacturer_id']); if ($manufacturer_info) { $this->data['manufacturer'] = $manufacturer_info['name']; } else { $this->data['manufacturer'] = ''; } } else { $this->data['manufacturer'] = ''; } // Categories $this->load->model('catalog/category'); if (isset($this->request->post['product_category'])) { $categories = $this->request->post['product_category']; } elseif (isset($this->request->get['product_id'])) { $categories = $this->model_catalog_product->getProductCategories($this->request->get['product_id']); } else { $categories = array(); } $this->data['categories'] = $this->model_catalog_category->getCategories(0); $this->data['product_categories'] = array(); foreach ($categories as $category_id) { $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->data['product_categories'][] = array( 'category_id' => $category_info['category_id'], 'name' => ($category_info['path'] ? $category_info['path'] . ' > ' : '') . $category_info['name'] ); } } // Filters $this->load->model('catalog/filter'); if (isset($this->request->post['product_filter'])) { $filters = $this->request->post['product_filter']; } elseif (isset($this->request->get['product_id'])) { $filters = $this->model_catalog_product->getProductFilters($this->request->get['product_id']); } else { $filters = array(); } $this->data['product_filters'] = array(); foreach ($filters as $filter_id) { $filter_info = $this->model_catalog_filter->getFilter($filter_id); if ($filter_info) { $this->data['product_filters'][] = array( 'filter_id' => $filter_info['filter_id'], 'name' => $filter_info['group'] . ' > ' . $filter_info['name'] ); } } // Attributes $this->load->model('catalog/attribute'); if (isset($this->request->post['product_attribute'])) { $product_attributes = $this->request->post['product_attribute']; } elseif (isset($this->request->get['product_id'])) { $product_attributes = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); } else { $product_attributes = array(); } $this->data['product_attributes'] = array(); foreach ($product_attributes as $product_attribute) { $attribute_info = $this->model_catalog_attribute->getAttribute($product_attribute['attribute_id']); if ($attribute_info) { $this->data['product_attributes'][] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $attribute_info['name'], 'product_attribute_description' => $product_attribute['product_attribute_description'] ); } } // Options $this->load->model('catalog/option'); if (isset($this->request->post['product_option'])) { $product_options = $this->request->post['product_option']; } elseif (isset($this->request->get['product_id'])) { $product_options = $this->model_catalog_product->getProductOptions($this->request->get['product_id']); } else { $product_options = array(); } $this->data['product_options'] = array(); foreach ($product_options as $product_option) { if ($product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') { $product_option_value_data = array(); foreach ($product_option['product_option_value'] as $product_option_value) { $product_option_value_data[] = array( 'product_option_value_id' => $product_option_value['product_option_value_id'], 'option_value_id' => $product_option_value['option_value_id'], 'quantity' => $product_option_value['quantity'], 'subtract' => $product_option_value['subtract'], 'price' => $product_option_value['price'], 'price_prefix' => $product_option_value['price_prefix'], 'points' => $product_option_value['points'], 'points_prefix' => $product_option_value['points_prefix'], 'weight' => $product_option_value['weight'], 'weight_prefix' => $product_option_value['weight_prefix'] ); } $this->data['product_options'][] = array( 'product_option_id' => $product_option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $product_option['option_id'], 'name' => $product_option['name'], 'type' => $product_option['type'], 'required' => $product_option['required'] ); } else { $this->data['product_options'][] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $product_option['name'], 'type' => $product_option['type'], 'option_value' => $product_option['option_value'], 'required' => $product_option['required'] ); } } $this->data['option_values'] = array(); foreach ($this->data['product_options'] as $product_option) { if ($product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') { if (!isset($this->data['option_values'][$product_option['option_id']])) { $this->data['option_values'][$product_option['option_id']] = $this->model_catalog_option->getOptionValues($product_option['option_id']); } } } $this->load->model('sale/customer_group'); $this->data['customer_groups'] = $this->model_sale_customer_group->getCustomerGroups(); if (isset($this->request->post['product_discount'])) { $this->data['product_discounts'] = $this->request->post['product_discount']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_discounts'] = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); } else { $this->data['product_discounts'] = array(); } if (isset($this->request->post['product_special'])) { $this->data['product_specials'] = $this->request->post['product_special']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_specials'] = $this->model_catalog_product->getProductSpecials($this->request->get['product_id']); } else { $this->data['product_specials'] = array(); } // Images if (isset($this->request->post['product_image'])) { $product_images = $this->request->post['product_image']; } elseif (isset($this->request->get['product_id'])) { $product_images = $this->model_catalog_product->getProductImages($this->request->get['product_id']); } else { $product_images = array(); } $this->data['product_images'] = array(); foreach ($product_images as $product_image) { if ($product_image['image'] && file_exists(DIR_IMAGE . $product_image['image'])) { $image = $product_image['image']; } else { $image = 'no_image.jpg'; } $this->data['product_images'][] = array( 'image' => $image, 'thumb' => $this->model_tool_image->resize($image, 100, 100), 'sort_order' => $product_image['sort_order'] ); } $this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); // Downloads $this->load->model('catalog/download'); if (isset($this->request->post['product_download'])) { $product_downloads = $this->request->post['product_download']; } elseif (isset($this->request->get['product_id'])) { $product_downloads = $this->model_catalog_product->getProductDownloads($this->request->get['product_id']); } else { $product_downloads = array(); } $this->data['product_downloads'] = array(); foreach ($product_downloads as $download_id) { $download_info = $this->model_catalog_download->getDownload($download_id); if ($download_info) { $this->data['product_downloads'][] = array( 'download_id' => $download_info['download_id'], 'name' => $download_info['name'] ); } } if (isset($this->request->post['main_category_id'])) { $this->data['main_category_id'] = $this->request->post['main_category_id']; } elseif (isset($product_info)) { $this->data['main_category_id'] = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']); } else { $this->data['main_category_id'] = 0; } if (isset($this->request->post['product_category'])) { $this->data['product_category'] = $this->request->post['product_category']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_category'] = $this->model_catalog_product->getProductCategories($this->request->get['product_id']); } else { $this->data['product_category'] = array(); } if (isset($this->request->post['product_related'])) { $products = $this->request->post['product_related']; } elseif (isset($this->request->get['product_id'])) { $products = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); } else { $products = array(); } $this->data['product_related'] = array(); foreach ($products as $product_id) { $related_info = $this->model_catalog_product->getProduct($product_id); if ($related_info) { $this->data['product_related'][] = array( 'product_id' => $related_info['product_id'], 'name' => $related_info['name'] ); } } if (isset($this->request->post['points'])) { $this->data['points'] = $this->request->post['points']; } elseif (!empty($product_info)) { $this->data['points'] = $product_info['points']; } else { $this->data['points'] = ''; } if (isset($this->request->post['product_reward'])) { $this->data['product_reward'] = $this->request->post['product_reward']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_reward'] = $this->model_catalog_product->getProductRewards($this->request->get['product_id']); } else { $this->data['product_reward'] = array(); } if (isset($this->request->post['product_layout'])) { $this->data['product_layout'] = $this->request->post['product_layout']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_layout'] = $this->model_catalog_product->getProductLayouts($this->request->get['product_id']); } else { $this->data['product_layout'] = array(); } $this->load->model('design/layout'); $this->data['layouts'] = $this->model_design_layout->getLayouts(); $this->template = 'catalog/product_form.tpl'; $this->children = array( 'common/header', 'common/footer' ); $this->response->setOutput($this->render()); } protected function validateForm() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } foreach ($this->request->post['product_description'] as $language_id => $value) { if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) { $this->error['name'][$language_id] = $this->language->get('error_name'); } } if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) { $this->error['model'] = $this->language->get('error_model'); } if ($this->error && !isset($this->error['warning'])) { $this->error['warning'] = $this->language->get('error_warning'); } if (!$this->error) { return true; } else { return false; } } protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!$this->error) { return true; } else { return false; } } protected function validateCopy() { if (!$this->user->hasPermission('modify', 'catalog/product')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!$this->error) { return true; } else { return false; } } public function autocomplete() { $json = array(); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_model']) || isset($this->request->get['filter_category_id'])) { $this->load->model('catalog/product'); $this->load->model('catalog/option'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = ''; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = 20; } $data = array( 'filter_name' => $filter_name, 'filter_model' => $filter_model, 'start' => 0, 'limit' => $limit ); if (isset($this->request->get['filter_category_id'])) { $data['filter_category_id'] = $this->request->get['filter_category_id']; } $results = $this->model_catalog_product->getProducts($data); foreach ($results as $result) { $option_data = array(); $product_options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach ($product_options as $product_option) { $option_info = $this->model_catalog_option->getOption($product_option['option_id']); if ($option_info) { if ($option_info['type'] == 'select' || $option_info['type'] == 'radio' || $option_info['type'] == 'checkbox' || $option_info['type'] == 'image') { $option_value_data = array(); foreach ($product_option['product_option_value'] as $product_option_value) { $option_value_info = $this->model_catalog_option->getOptionValue($product_option_value['option_value_id']); if ($option_value_info) { $option_value_data[] = array( 'product_option_value_id' => $product_option_value['product_option_value_id'], 'option_value_id' => $product_option_value['option_value_id'], 'name' => $option_value_info['name'], 'price' => (float)$product_option_value['price'] ? $this->currency->format($product_option_value['price'], $this->config->get('config_currency')) : false, 'price_prefix' => $product_option_value['price_prefix'] ); } } $option_data[] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $option_info['name'], 'type' => $option_info['type'], 'option_value' => $option_value_data, 'required' => $product_option['required'] ); } else { $option_data[] = array( 'product_option_id' => $product_option['product_option_id'], 'option_id' => $product_option['option_id'], 'name' => $option_info['name'], 'type' => $option_info['type'], 'option_value' => $product_option['option_value'], 'required' => $product_option['required'] ); } } } $json[] = array( 'product_id' => $result['product_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 'model' => $result['model'], 'option' => $option_data, 'price' => $result['price'] ); } } $this->response->setOutput(json_encode($json)); } } ?> Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 убери это полотно :-x Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 (змінено) - Спойлер? не, не слышал :-D смотреть что именно в admin\model\catalog\product.php в getProductCatNames, сравнить с тем что в чистом файле из оригинального дистрибутива Змінено 27 березня 2015 користувачем AlexDW Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Ща сек)) Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Где там конфликтует? Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Попробовал заменить файлы и не фига Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет случайно вклинился или забыл перелогиниться? Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 Да вк забанили я через него заходил Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так кому интересно решение проблемы. Удалил последние товары (кто знаком с программированием были проблемы с ключами). Удалил 15 товаров и поис заработал. (проблема не решалась с помощью удаления модулей и заменой оригинальных файлов осталось только бд). Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 28 березня 2015 Share Опубліковано: 28 березня 2015 Да вк забанили я через него заходил Давай облегчим тебе столь сложную жизнь , пользования форумов с двух аккаунтов....... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Проблема с фильтром товаров в админке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень
AlexDW Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 (змінено) - Спойлер? не, не слышал :-D смотреть что именно в admin\model\catalog\product.php в getProductCatNames, сравнить с тем что в чистом файле из оригинального дистрибутива Змінено 27 березня 2015 користувачем AlexDW Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Ща сек)) Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Где там конфликтует? Надіслати Поділитися на інших сайтах More sharing options... DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Попробовал заменить файлы и не фига Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет случайно вклинился или забыл перелогиниться? Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 Да вк забанили я через него заходил Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так кому интересно решение проблемы. Удалил последние товары (кто знаком с программированием были проблемы с ключами). Удалил 15 товаров и поис заработал. (проблема не решалась с помощью удаления модулей и заменой оригинальных файлов осталось только бд). Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 28 березня 2015 Share Опубліковано: 28 березня 2015 Да вк забанили я через него заходил Давай облегчим тебе столь сложную жизнь , пользования форумов с двух аккаунтов....... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Проблема с фильтром товаров в админке
DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Ща сек)) Надіслати Поділитися на інших сайтах More sharing options...
DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Где там конфликтует? Надіслати Поділитися на інших сайтах More sharing options...
DarkJoker Опубліковано: 27 березня 2015 Автор Share Опубліковано: 27 березня 2015 Попробовал заменить файлы и не фига Надіслати Поділитися на інших сайтах More sharing options...
garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет Надіслати Поділитися на інших сайтах More sharing options...
Tom Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 короче всю папку admin и всё равно не ищет случайно вклинился или забыл перелогиниться? Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 Да вк забанили я через него заходил Надіслати Поділитися на інших сайтах More sharing options... garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так кому интересно решение проблемы. Удалил последние товары (кто знаком с программированием были проблемы с ключами). Удалил 15 товаров и поис заработал. (проблема не решалась с помощью удаления модулей и заменой оригинальных файлов осталось только бд). Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 28 березня 2015 Share Опубліковано: 28 березня 2015 Да вк забанили я через него заходил Давай облегчим тебе столь сложную жизнь , пользования форумов с двух аккаунтов....... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 Да вк забанили я через него заходил Надіслати Поділитися на інших сайтах More sharing options...
garfild304 Опубліковано: 27 березня 2015 Share Опубліковано: 27 березня 2015 И так кому интересно решение проблемы. Удалил последние товары (кто знаком с программированием были проблемы с ключами). Удалил 15 товаров и поис заработал. (проблема не решалась с помощью удаления модулей и заменой оригинальных файлов осталось только бд). Надіслати Поділитися на інших сайтах More sharing options...
Tom Опубліковано: 28 березня 2015 Share Опубліковано: 28 березня 2015 Да вк забанили я через него заходил Давай облегчим тебе столь сложную жизнь , пользования форумов с двух аккаунтов....... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts