-
Публікації
92 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Усі публікації користувача Alan8
-
buslikdrev, данной строчки нет. Это значит я скачал битый opencart или тема голимая?
-
buslikdrev, не совсем понимаю, что и где нужно править? Можете более детально объяснить, с данной версией opencart работаю впервые. До этого на 1.5 натягивал шаблон никаких проблем не было
-
Добрый день, я использую opencart 2.2. После обновления кэша модификаторов обнаружил таки ошибки, как их исправить и почему они возникли? 2017-06-27 0:34:46 - MOD: Modification Default FILE: system/engine/action.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 34 FILE: system/engine/loader.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 41 LINE: 92 LINE: 104 LINE: 142 FILE: system/library/config.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 23 FILE: system/library/language.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 35 LINE: 41 LINE: 47 FILE: system/library/template/basic.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 18 ---------------------------------------------------------------- MOD: AveThemes Framework FILE: system/library/response.php CODE: $this->output = $output; LINE: 24 FILE: system/library/db.php CODE: class DB { LINE: 1 CODE: return $this->adaptor->query($sql, $params); LINE: 16 CODE: return $this->db->query($sql); NOT FOUND! FILE: catalog/controller/information/sitemap.php CODE: $this->load->language('information/sitemap'); LINE: 3 FILE: admin/controller/common/login.php CODE: if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { LINE: 13 FILE: admin/view/template/tool/backup.tpl CODE: <div class="well well-sm" style="height: 150px; overflow: auto;"> LINE: 44 FILE: admin/controller/extension/modification.php CODE: $this->response->redirect($this->url->link('extension/modification', 'token=' . $this->session->data['token'] . $url, 'SSL')); NOT FOUND! FILE: admin/controller/extension/module.php CODE: $data['breadcrumbs'] = array(); LINE: 90 CODE: $this->response->setOutput($this->load->view('extension/module', $data)); LINE: 196 CODE: $this->response->setOutput($this->load->view('extension/module.tpl', $data)); NOT FOUND! FILE: admin/controller/common/menu.php CODE: public function index() { LINE: 2 FILE: admin/view/template/common/menu.tpl CODE: <li id="reports"><a class="parent"><i class="fa fa-bar-chart-o fa-fw"></i> <span><?php echo $text_reports; ?></span></a> LINE: 167 FILE: admin/model/localisation/language.php CODE: $language_id = $this->db->getLastId(); LINE: 7 CODE: public function deleteLanguage($language_id) { LINE: 209 FILE: admin/model/catalog/product.php CODE: $this->cache->delete('product'); LINE: 153 LINE: 322 LINE: 378 FILE: admin/controller/catalog/category.php CODE: $data['categories'] = array(); LINE: 179 CODE: $data['categories'][] = array( LINE: 195 CODE: 'sort_order' => $result['sort_order'], LINE: 209 FILE: admin/view/template/catalog/category_list.tpl CODE: <td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td> LINE: 36 CODE: <td class="text-left"><?php echo $category['name']; ?></td> LINE: 59 CODE: <td class="text-center" colspan="4"><?php echo $text_no_results; ?></td> LINE: 67 FILE: admin/model/catalog/category.php CODE: $this->cache->delete('category'); LINE: 51 LINE: 150 LINE: 171 FILE: admin/model/catalog/manufacturer.php CODE: $this->cache->delete('manufacturer'); LINE: 21 LINE: 47 LINE: 55 FILE: admin/model/catalog/information.php CODE: $this->cache->delete('information'); LINE: 27 LINE: 63 LINE: 73 FILE: admin/controller/module/bestseller.php CODE: $data['header'] = $this->load->controller('common/header'); LINE: 140 FILE: admin/controller/module/featured.php CODE: $data['header'] = $this->load->controller('common/header'); LINE: 166 FILE: admin/controller/module/latest.php CODE: $data['header'] = $this->load->controller('common/header'); LINE: 140 FILE: admin/controller/module/special.php CODE: $data['header'] = $this->load->controller('common/header'); LINE: 141 FILE: admin/view/template/module/bestseller.tpl CODE: <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label> LINE: 61 FILE: admin/view/template/module/featured.tpl CODE: <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label> LINE: 74 FILE: admin/view/template/module/latest.tpl CODE: <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label> LINE: 61 FILE: admin/view/template/module/special.tpl CODE: <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label> LINE: 61 FILE: catalog/controller/common/header.php CODE: public function index() { LINE: 2 CODE: $data['cart'] = $this->load->controller('common/cart'); LINE: 135 FILE: catalog/controller/common/column_left.php CODE: $layout_id = 0; LINE: 11 FILE: catalog/controller/common/column_right.php CODE: $layout_id = 0; LINE: 11 FILE: catalog/controller/common/content_top.php CODE: $layout_id = 0; LINE: 11 FILE: catalog/controller/common/content_bottom.php CODE: $layout_id = 0; LINE: 11 FILE: catalog/controller/common/footer.php CODE: // Whos Online LINE: 49 CODE: 'title' => $result['title'], LINE: 29 FILE: catalog/controller/product/product.php CODE: $data['images'] = array(); LINE: 309 CODE: $data['images'][] = array( LINE: 333 CODE: $data['rating'] = (int)$product_info['rating']; LINE: 426 CODE: $this->document->setTitle($product_info['meta_title']); LINE: 216 FILE: catalog/controller/product/category.php CODE: $this->document->setTitle($category_info['meta_title']); LINE: 93 FILE: catalog/controller/startup/seo_url.php CODE: $url = explode('=', $query->row['query']); LINE: 21 CODE: if ($query->row['query'] && $url[0] != 'information_id' && $url[0] != 'manufacturer_id' && $url[0] != 'category_id' && $url[0] != 'product_id') { LINE: 58 CODE: $this->request->get['route'] = 'information/information'; LINE: 76 CODE: if (isset($this->request->get['route'])) { LINE: 86 CODE: parse_str($url_info['query'], $data); LINE: 108 CODE: } elseif ($key == 'path') { LINE: 121 FILE: admin/controller/marketing/contact.php CODE: case 'newsletter': LINE: 120 FILE: catalog/controller/common/cart.php CODE: $data['text_loading'] = $this->language->get('text_loading'); LINE: 54 FILE: catalog/controller/checkout/cart.php CODE: $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total)); NOT FOUND! FILE: catalog/controller/module/bestseller.php CODE: public function index($setting) { LINE: 2 FILE: catalog/controller/module/featured.php CODE: public function index($setting) { LINE: 2 FILE: catalog/controller/module/latest.php CODE: public function index($setting) { LINE: 2 FILE: catalog/controller/module/special.php CODE: public function index($setting) { LINE: 2 CODE: if ((float)$result['special']) { LINE: 203 CODE: $special = false; LINE: 207 CODE: 'special' => $special, LINE: 302 FILE: catalog/controller/product/manufacturer.php CODE: if ((float)$result['special']) { LINE: 191 CODE: $special = false; LINE: 195 CODE: 'special' => $special, LINE: 217 FILE: catalog/controller/product/search.php CODE: if ((float)$result['special']) { LINE: 228 CODE: $special = false; LINE: 232 CODE: 'special' => $special, LINE: 254 FILE: catalog/controller/product/special.php CODE: if ((float)$result['special']) { LINE: 113 CODE: $special = false; LINE: 117 CODE: 'special' => $special, LINE: 139 FILE: catalog/controller/module/carousel.php CODE: $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css'); LINE: 8 FILE: catalog/controller/module/slideshow.php CODE: $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css'); LINE: 8 FILE: catalog/controller/module/banner.php CODE: $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css'); LINE: 8 ---------------------------------------------------------------- MOD: Export/Import Tool (V3.11) for OpenCart 2.x CODE: $data['text_backup'] = $this->language->get('text_backup'); LINE: 14 CODE: $data['backup'] = $this->url->link('tool/backup', 'token=' . $this->session->data['token'], LINE: 123 FILE: admin/language/en-gb/common/menu.php CODE: $_['text_backup'] LINE: 10 FILE: admin/language/ru-ru/common/menu.php CODE: $_['text_backup'] LINE: 10 CODE: <li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li> LINE: 161 FILE: admin/controller/common/column_left.php CODE: if ($this->user->hasPermission('access', 'tool/log')) { NOT FOUND! ---------------------------------------------------------------- MOD: Image Manager ++ FILE: admin/controller/common/header.php CODE: $data['styles'] = $this->document->getStyles(); LINE: 14 FILE: admin/controller/common/filemanager.php CODE: $this->response->setOutput($this->load->view('common/filemanager', $data)); LINE: 197 CODE: $this->response->setOutput($this->load->view('common/filemanager.tpl', $data)); NOT FOUND! FILE: admin/controller/catalog/product.php CODE: $this->load->model('design/layout'); LINE: 1334 FILE: admin/view/template/catalog/product_form.tpl CODE: <div class="tab-pane" id="tab-image"> LINE: 834 CODE: <tr id="image-row<?php echo $image_row; ?>"> LINE: 868 CODE: var image_row = <?php echo $image_row; ?>; LINE: 1383 CODE: function addImage() { LINE: 1389 CODE: html = '<tr id="image-row' + image_row + '">'; LINE: 1400 CODE: $('#images tbody').append(html); LINE: 1406 CODE: <?php echo $footer; ?> LINE: 1465 FILE: admin/controller/design/banner.php CODE: $data['header'] = $this->load->controller('common/header'); LINE: 254 LINE: 391 FILE: admin/view/template/design/banner_form.tpl CODE: <table id="images" class="table table-striped table-bordered table-hover"> LINE: 50 CODE: <td class="text-left"><?php echo $entry_title; ?></td> LINE: 58 CODE: <tr id="image-row<?php echo $image_row; ?>"> LINE: 68 CODE: var image_row = <?php echo $image_row; ?>; LINE: 98 CODE: function addImage() { LINE: 104 CODE: <td class="text-right" style="width: 10%;"><input type="text" name="banner_image[<?php echo $image_row; ?>][sort_order]" value="<?php echo $banner_image['sort_order']; ?>" placeholder="<?php echo $entry_sort_order; ?>" class="form-control" /></td> LINE: 80 CODE: html += ' <td class="text-right" style="width: 10%;"><input type="text" name="banner_image[' + image_row + '][sort_order]" value="" placeholder="<?php echo $entry_sort_order; ?>" class="form-control" /></td>'; LINE: 124 CODE: $('#images tbody').append(html); LINE: 128 CODE: <?php echo $footer; ?> LINE: 139 ---------------------------------------------------------------- MOD: Local copy OCMOD by iSenseLabs FILE: admin/controller/extension/installer.php CODE: 'url' => str_replace('&', '&', $this->url->link('extension/installer/ftp', 'token=' . $this->session->data['token'], LINE: 132 CODE: public function unzip() { LINE: 293 ----------------------------------------------------------------
-
Добрый вечер, у меня такая проблема, я создал дополнительное поле в админке (в котором есть краткое описание для товара), на странице продукта это поле вывел работает нормально. Но на странице категорий не могу вывести, нечего нет даже ошибки в консоли. Причем если я вывожу к примеру параметр (sku, model) то-есть любое встроенное поле то она выводится, а созданное мной поле нет. Причем на странице категорий используется фильтр (FilterPro), и при попытке вывести мое поле он ломается, но ошибки при этом нет. Кто знает подскажите
-
Добрый день друзья, у меня такая проблема неработает пагинация на страницы категорий, точнее вот такая проблемка, не правильно формируется строка при переходе на (2,3,4... страницы). Строка имеет такой вид: http://club-vld.tw1.ru/index.phproute=product/category&path=75#pmin=0&pmax=91990&pid=75&path=75&page=2&sort=p.sort_order&order=ASC&limit=15 Если перед "pmin" ставлю вместо "#" "$", то все работает. Как исправить формирование этой строки, как я понимаю там что то связано с json
-
Добрый день, у меня проблема с opencart 2. При внесении каких либо провак в файлы, product.php - изменения не применяются. Обновлял и чистил кэш модификаторов. Vqmod не стоит. Также не всегжа применяются изменения и к другим файлам с расширениями .tpl, php, .css. Что делать подскажите, никак не могу разобраться, думаю нужно очисттить кэш страницы вручную, а где лежать файлы не знаю.
-
Добрый день друзья, кто сталкивался с вызрузкой и загрузкой прайс листов в opencart? Из всего что нашел вот такой модуль (https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=17). Экспорт работает нормально, но иморт нет. Существуют ли нормальные бесплатные модули?
-
вот код фильтра: <?php /****************************************************** * @package AveThemes Framework Opencart 2.x * @version 1.0 * @author http://www.avethemes.com * @copyright Copyright (C) January 2015 www.avethemes.com <@emai:[email protected]@gmail.com>.All rights reserved. * @license GNU General Public License version 2 *******************************************************/ class ControllerAvethemesAveProductFilter extends Controller { public function index($setting=array()) { if(defined('ave_check')){ $language_data = $this->load->language('avethemes/shortcode_product_filter'); foreach($language_data as $key=>$value){ $data[$key] = $value; } $data['ave'] = $this->ave; $data['currency_code'] = $this->session->data['currency']; $data['setting'] = $setting; $ave_shortcodes_filter_setting = $this->config->get('ave_shortcodes_filter_setting'); if(isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); $category_id = array_pop($parts); $this->load->model('avethemes/filter_product'); $data['manufacturers'] = false; if(isset($ave_shortcodes_filter_setting['display_manufacturer'])){ if($ave_shortcodes_filter_setting['display_manufacturer'] != 'none') { $data['manufacturers'] = $this->model_avethemes_filter_product->getManufacturersByCategoryId($category_id); $data['display_manufacturer'] = $ave_shortcodes_filter_setting['display_manufacturer']; } } $data['options'] = $this->model_avethemes_filter_product->getOptionsByCategoryId($category_id); foreach($data['options'] as $i => $option) { if(isset($ave_shortcodes_filter_setting['display_option_' . $option['option_id']])){ $display_option = $ave_shortcodes_filter_setting['display_option_' . $option['option_id']]; if($display_option != 'none') { $data['options'][$i]['display'] = $display_option; }else{ $data['options'][$i]['display'] = 'none'; } } else { unset($data['options'][$i]); } } $data['attributes'] = $this->model_avethemes_filter_product->getAttributesByCategoryId($category_id); foreach($data['attributes'] as $j => $attribute_group) { foreach($attribute_group['attribute_values'] as $attribute_id => $attribute) { if(isset($ave_shortcodes_filter_setting['display_attribute_' . $attribute_id])){ $display_attribute = $ave_shortcodes_filter_setting['display_attribute_' . $attribute_id]; if($display_attribute != 'none') { $data['attributes'][$j]['attribute_values'][$attribute_id]['display'] = $display_attribute; }else{ unset($data['attributes'][$j]['attribute_values'][$attribute_id]); if(!$data['attributes'][$j]['attribute_values']) { unset($data['attributes'][$j]); } } } else { unset($data['attributes'][$j]['attribute_values'][$attribute_id]); if(!$data['attributes'][$j]['attribute_values']) { unset($data['attributes'][$j]); } } } } $data['category_id'] = $category_id; $data['path'] = $this->request->get['path']; $this->document->addStyle('assets/editor/shortcode/filter/filter.css'); if (isset($this->request->get['sort'])) { $data['sort'] = $this->request->get['sort']; } else { $data['sort'] = 'p.sort_order'; } if (isset($this->request->get['order'])) { $data['order'] = $this->request->get['order']; } else { $data['order'] = 'ASC'; } if (isset($this->request->get['page'])) { $data['page'] = $this->request->get['page']; } else { $data['page'] = 1; } if (isset($this->request->get['limit'])) { $data['limit'] = $this->request->get['limit']; } else { if((int)substr((string)str_replace('.','',VERSION),0,3) > 210) { $data['limit'] = $this->config->get($this->config->get('config_theme') . '_product_limit'); }else{ $data['limit'] = $this->config->get('config_product_limit'); } } $priceLimits = $this->model_avethemes_filter_product->getPriceLimits(array('category_id' => $category_id)); $data['pmin'] = $this->currency->convert($priceLimits['pmin'], $this->config->get('config_currency'), $this->session->data['currency']); $data['pmax'] = $this->currency->convert($priceLimits['pmax'], $this->config->get('config_currency'), $this->session->data['currency']); if((int)substr((string)str_replace('.','',VERSION),0,3) > 210) { $this_template = 'avethemes/required/shortcode_product_filter'; }elseif(file_exists(DIR_TEMPLATE.$this->config->get('config_template').'/template/avethemes/required/shortcode_product_filter.tpl')) { $this_template = $this->config->get('config_template') . '/template/avethemes/required/shortcode_product_filter.tpl'; } else { $this_template = 'default/template/avethemes/required/shortcode_product_filter.tpl'; } return $this->load->view($this_template, $data); } } } private function array_clean(array $haystack) { foreach($haystack as $key => $value) { if(is_array($value)) { $haystack[$key] = $this->array_clean($value); if(!count($haystack[$key])) { unset($haystack[$key]); } } elseif(is_string($value)) { $value = trim($value); if(!$value) { unset($haystack[$key]); } } } return $haystack; } public function parse_filter_data() { $language_data = $this->load->language('avethemes/shortcode_product_filter'); $ave_shortcodes_filter_setting = $this->config->get('ave_shortcodes_filter_setting'); $page = 1; if(isset($this->request->post['page'])) { $page = (int)$this->request->post['page']; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; }elseif(isset($this->request->post['sort'])) { $sort = $this->request->post['sort']; }else{ $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $sort = $this->request->get['order']; }elseif(isset($this->request->post['order'])) { $order = $this->request->post['order']; }else{ $order = 'ASC'; } if (isset($this->request->get['limit'])) { $sort = $this->request->get['limit']; }elseif(isset($this->request->post['limit'])) { $limit = $this->request->post['limit']; }else{ if((int)substr((string)str_replace('.','',VERSION),0,3) > 210) { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); }else{ $limit = $this->config->get('config_product_limit'); } } $this->load->model('avethemes/filter_product'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $manufacturer = false; if(isset($this->request->post['manufacturer'])) { $manufacturer = $this->array_clean($this->request->post['manufacturer']); if(!count($manufacturer)) { $manufacturer = false; } } $option_value = false; if(isset($this->request->post['option_value'])) { $option_value = $this->array_clean($this->request->post['option_value']); if(!count($option_value)) { $option_value = false; } } $attribute_value = false; if(isset($this->request->post['attribute_value'])) { $attribute_value = $this->array_clean($this->request->post['attribute_value']); if(!count($attribute_value)) { $attribute_value = false; } } $pid = isset($this->request->post['pid'])?$this->request->post['pid']:false; $pmin = isset($this->request->post['pmin'])?$this->request->post['pmin']:false; $pmax = isset($this->request->post['pmax'])?$this->request->post['pmax']:false; $filter_data = array( 'option_value' => $option_value, 'manufacturer' => $manufacturer, 'attribute_value' => $attribute_value, 'category_id' => $pid, 'pmin' => $pmin, 'pmax' => $pmax, 'start' => ($page - 1) * $limit, 'limit' => $limit, 'sort' => $sort, 'order' => $order ); $product_total = $this->model_avethemes_filter_product->getTotalProducts($filter_data); $totals_manufacturers = $this->model_avethemes_filter_product->getTotalManufacturers($filter_data); $totals_options = $this->model_avethemes_filter_product->getTotalOptions($filter_data); $totals_attributes = $this->model_avethemes_filter_product->getTotalAttributes($filter_data); $products = $this->model_avethemes_filter_product->getProducts($filter_data); $result = array(); $fmin = $fmax = false; if(isset($this->request->post['getPriceLimits']) && $this->request->post['getPriceLimits']) { $priceLimits = $this->model_avethemes_filter_product->getPriceLimits(array('category_id' => $this->request->post['pid'])); $fmin = $priceLimits['pmin']; $fmax = $priceLimits['pmax']; } if((int)substr((string)str_replace('.','',VERSION),0,3) > 210) { $prefix = $this->config->get('config_theme'); }else{ $prefix = 'config'; } $image_product_width = $this->config->get($prefix.'_image_product_width'); $image_product_height = $this->config->get($prefix.'_image_product_height'); $product_description_length = $this->config->get($prefix.'_product_description_length'); $special_label = $this->ave->get('category_special_label'); $no_image = $this->model_tool_image->resize('placeholder.png', $image_product_width, $image_product_height); foreach($products as $product) { if ($product['image']&&file_exists(DIR_IMAGE.$product['image'])) { $image = $this->model_tool_image->resize($product['image'], $image_product_width, $image_product_height); } else { $image = $no_image; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$product['special']&&$special_label==1) { $special = $this->currency->format($this->tax->calculate($product['special'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $sales_percent = str_replace('.00','',number_format((100-(($product['special']*100)/$product['price'])),0)); } else { $special = false; $sales_percent =false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format(((float)$product['special'] ? $product['special'] : $product['price']), $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$product['rating']; } else { $rating = false; } if($product['quantity'] <= 0) { $rstock = $product['stock_status']; } elseif($this->config->get('config_stock_display')) { $rstock = $product['quantity']; } else { $rstock = $this->language->get('text_instock'); } $result[] = array( 'product_id' => $product['product_id'], 'sku' => $ave_shortcodes_filter_setting['sku_display'] ? $product['sku'] : false, 'model' => $ave_shortcodes_filter_setting['model_display'] ? $product['model'] : false, 'brand' => $ave_shortcodes_filter_setting['brand_display'] ? $product['manufacturer'] : false, 'location' => $ave_shortcodes_filter_setting['location_display'] ? $product['location'] : false, 'upc' => $ave_shortcodes_filter_setting['upc_display'] ? $product['upc'] : false, 'stock' => $ave_shortcodes_filter_setting['stock_display'] ? $rstock : false, 'image' => $image, 'thumb' => $image, 'special' => $special, 'sales_percent' => $sales_percent, 'tax' => $tax, 'rating' => $rating, 'reviews' => sprintf($this->language->get('text_reviews'), (int)$product['reviews']), 'name' => $product['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, $product_description_length) . '..', 'price' => $price, 'href' => $this->url->link('product/product', 'path=' . $this->request->post['path'] . '&product_id=' . $product['product_id']) ); } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = 'page={page}'; $json['pagination'] = $pagination->render(); $json['pagination_results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? ((int)($page - 1) * $limit) + 1 : 0, (((int)($page - 1) * $limit) > (int)($product_total - $limit)) ? $product_total : (((int)($page - 1) * $limit) + $limit), (int)$product_total, (int)ceil($product_total / $limit)); $pmin = $this->currency->convert($pmin, $this->config->get('config_currency'), $this->session->data['currency']); $pmax = $this->currency->convert($pmax, $this->config->get('config_currency'), $this->session->data['currency']); $fmin = $this->currency->convert($fmin, $this->config->get('config_currency'), $this->session->data['currency']); $fmax = $this->currency->convert($fmax, $this->config->get('config_currency'), $this->session->data['currency']); $json['code'] = $this->session->data['currency']; $json['pmin'] = $pmin; $json['pmax'] = $pmax; $json['fmin'] = $fmin; $json['fmax'] = $fmax; $json['products'] = $result; $json['btn_cart'] = $this->ave->get('category_btn_cart'); $json['btn_whistlist'] = $this->ave->get('category_btn_whistlist'); $json['btn_compare'] = $this->ave->get('category_btn_compare'); foreach($language_data as $key=>$value){ $json[$key] = $value; } $json['totals_data'] = array( 'manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' => $totals_attributes ); if((int)substr((string)str_replace('.','',VERSION),0,3) > 210) { $this_template = 'avethemes/required/shortcode_product_filter_results'; }elseif(file_exists(DIR_TEMPLATE.$this->config->get('config_template').'/template/avethemes/required/shortcode_product_filter_results.tpl')) { $this_template = $this->config->get('config_template') . '/template/avethemes/required/shortcode_product_filter_results.tpl'; } else { $this_template = 'default/template/avethemes/required/shortcode_product_filter_results.tpl'; } $json['products_data'] = $this->load->view($this_template, $json); $json_encode = json_encode($json); $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput($json_encode); } } ?>
-
Добрый день друзья подскажите кто знает, у меня такая проблема, на странице категорий вывожу опции, вывожу их таким образм. В контроллер добаляю следующие: 1. После: $this->load->language('product/category');Добавить: $this->load->language('product/product');2. После: $data['button_grid'] = $this->language->get('button_grid');Добавить:$data['text_select'] = $this->language->get('text_select'); 3. Перед $data['products'][] = array('product_id' => $result['product_id'], $json = array(); if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; }$this->load->model('catalog/product');$product_info = $this->model_catalog_product->getProduct($product_id);if ($product_info) { $options = array(); foreach ($this->model_catalog_product->getProductOptions($product_info['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)); } else { $price = false; }$product_option_value_data[] = array('product_option_value_id' => $option_value['product_option_value_id'],'option_value_id' => $option_value['option_value_id'],'name' => $option_value['name'],'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),'price' => $price,'price_prefix' => $option_value['price_prefix'] ); }}$options[] = array('product_option_id' => $option['product_option_id'],'option_value' => $product_option_value_data,'option_id' => $option['option_id'],'name' => $option['name'],'type' => $option['type'],'value' => $option['value'],'required' => $option['required']);$options['product_id'] = $product_info['product_id'];$options['name'] = $product_info['name'];} if (!$json) {$json = $options;}} и в масив $data['products'][] = array(Добавить 'options' => $this->model_catalog_product->getProductOptions($result['product_id']), Короче разобрался как выводить, делаю вот так, в контроллере добавляю следующие: 1. После: $this->load->language('product/category');Добавить: $this->load->language('product/product');2. После: $data['button_grid'] = $this->language->get('button_grid');Добавить:$data['text_select'] = $this->language->get('text_select'); 3. Перед $data['products'][] = array('product_id' => $result['product_id'], $json = array(); if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; }$this->load->model('catalog/product');$product_info = $this->model_catalog_product->getProduct($product_id);if ($product_info) { $options = array(); foreach ($this->model_catalog_product->getProductOptions($product_info['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)); } else { $price = false; }$product_option_value_data[] = array('product_option_value_id' => $option_value['product_option_value_id'],'option_value_id' => $option_value['option_value_id'],'name' => $option_value['name'],'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),'price' => $price,'price_prefix' => $option_value['price_prefix']);}}$options[] = array('product_option_id' => $option['product_option_id'],'option_value' => $product_option_value_data,'option_id' => $option['option_id'],'name' => $option['name'],'type' => $option['type'],'value' => $option['value'],'required' => $option['required']);$options['product_id'] = $product_info['product_id'];$options['name'] = $product_info['name'];} if (!$json) {$json = $options;}} и в масив $data['products'][] = array(Добавить 'options' => $this->model_catalog_product->getProductOptions($result['product_id']), Далее в categoty.tpl добавляю следующие: В цикле <?php foreach ($products as $product) { ?> <?php if ($product['options']) { ?> <?php foreach ($product['options'] as $option) { ?> <!-- Код опции, можно взять из product.tpl. Например для Select --> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <!-- <label class="control-label"><?php echo $option['name']; ?></label> --> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="checkbox"> <label> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" /> <?php if ($option_value['image']) { ?> <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> <?php } ?> <?php echo $option_value['name']; ?> <!-- <?php if ($option_value['price']) { ?> --> <!-- (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) --> <?php } ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php } ?> <?php } ?> При выключенном фильтре опции отображаются все норм, но если включаю его то пишет Undefined variable: options. Кто знает как решить данную проблему подскажите, буду очень признателен!
-
Короче разобрался как выводить, делаю вот так, в контроллере добавляю следующие: 1. После: $this->load->language('product/category'); Добавить: $this->load->language('product/product'); 2. После: $data['button_grid'] = $this->language->get('button_grid'); Добавить: $data['text_select'] = $this->language->get('text_select'); 3. Перед $data['products'][] = array( 'product_id' => $result['product_id'], $json = array(); if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { $options = array(); foreach ($this->model_catalog_product->getProductOptions($product_info['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $options[] = array( 'product_option_id' => $option['product_option_id'], 'option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); $options['product_id'] = $product_info['product_id']; $options['name'] = $product_info['name']; } if (!$json) { $json = $options; } } и в масив $data['products'][] = array( Добавить 'options' => $this->model_catalog_product->getProductOptions($result['product_id']), Далее в categoty.tpl добавляю следующие: В цикле <?php foreach ($products as $product) { ?> <?php if ($product['options']) { ?> <?php foreach ($product['options'] as $option) { ?> <!-- Код опции, можно взять из product.tpl. Например для Select --> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <!-- <label class="control-label"><?php echo $option['name']; ?></label> --> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="checkbox"> <label> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" /> <?php if ($option_value['image']) { ?> <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> <?php } ?> <?php echo $option_value['name']; ?> <!-- <?php if ($option_value['price']) { ?> --> <!-- (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) --> <?php } ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php } ?> <?php } ?> И все работает нормально! Но есть один минус, это работает при выключенном фильтре. Если же включаю фильтр то сново пишет Undefined variable: options
- 16 відповідей
-
- opencart
- categories
-
(і ще %d)
Теги: