Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

VladimirV

Newbie
  
  • Posts

    26
  • Joined

  • Last visited

Everything posted by VladimirV

  1. Добрый вечер, у вас получилось решить проблему, я тоже с этим столкнулся
  2. Ну вот теперь новый вопрос всплыл, изменился формат вывода price и total за это как я понял отвечает в контроллере $this->currency->format а я то из массива выдергиваю в шаблоне и price и total, как применить что бы был одинаковый формат в частности мне нужно убрать нули после точки и вывести валюту
  3. Все разобрался, всем спасибо за помощь, особая благодарность AlexDX <?php foreach($order['product_info'] as $product_info) { ?> <?php echo $product_info['name']; ?> <?php } ?>
  4. Спасибо огромное, да я увидел что в массиве есть все необходимые мне: ключи и их значения. Я не могу понять как в шаблоне вывести например значение ключа name из этого массива?
  5. Вы мне уже почти все объяснили но я не пойму: В контролере добавил путь к модели и в переменную product_info передал массив, внутри массива orders $data['orders'] = array(); $this->load->model('extension/payment/ocstore_payeer'); $this->load->model('extension/payment/ocstore_yk'); $this->load->model('account/order'); $order_total = $this->model_account_order->getTotalOrders(); $results = $this->model_account_order->getOrders(($page - 1) * 10, 10); foreach ($results as $result) { $product_total = $this->model_account_order->getTotalOrderProductsByOrderId($result['order_id']); $voucher_total = $this->model_account_order->getTotalOrderVouchersByOrderId($result['order_id']); $ocstore_yk_onpay_info = $this->model_extension_payment_ocstore_yk->checkLaterpay($result['order_id']); $data['orders'][] = array( 'product_info' => $this->model_account_order->getOrderProducts($result['order_id']), 'price' => $result['price'], 'quantity' => $result['quantity'], 'order_id' => $result['order_id'], 'name' => $result['firstname'] . ' ' . $result['lastname'], 'status' => $result['status'], 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), /*'products' => ($product_total + $voucher_total),*/ 'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']), 'ocstore_payeer_onpay' => $this->model_extension_payment_ocstore_payeer->checkLaterpay($result['order_id']) ? $this->url->link('extension/payment/ocstore_payeer/laterpay', sprintf('order_id=%s&order_tt=%s', $result['order_id'], $result['total'], 'SSL')) : '', 'ocstore_yk_onpay' => $ocstore_yk_onpay_info['onpay'] ? $this->url->link('extension/payment/ocstore_yk/laterpay', sprintf('order_id=%s&order_ttl=%s&paymentType=%s', $result['order_id'], $result['total'], $ocstore_yk_onpay_info['payment_code']), 'SSL') : '', 'view' => $this->url->link('account/order/info', 'order_id=' . $result['order_id'], true), ); } в шаблоне внутри цикла <?php foreach ($orders as $order) { ?> вставляю <?php echo $order['product_info']; ?> получаю: Notice: Undefined index: product_info Почему шаблон не видит переменную с массивом. И не пойму как теперь из этого массива путем перебора получить имя модель и пр., пробовал через <?php foreach ($products as $product) { ?> ошибка
  6. В catalog\controller\account\order.php я взял код из метода Info вставил в тело функции index, вы сказали не туда, подскажите пожалуйста куда ее нужно вставить. И вы сказали не то заменил на $products = $this->model_account_order->getOrderProducts($this->request->get['order_id']); ошибка Notice: Undefined index: order_id Подскажите что куда и почему. Я вижу обращение к модели но почему оно не работает не могу понять <?php class ControllerAccountOrder extends Controller { public function index() { if (!$this->customer->isLogged()) { $this->session->data['redirect'] = $this->url->link('account/order', '', true); $this->response->redirect($this->url->link('account/login', '', true)); } $this->load->language('account/order'); $this->document->setTitle($this->language->get('heading_title')); $url = ''; if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_account'), 'href' => $this->url->link('account/account', '', true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('account/order', $url, true) ); $data['heading_title'] = $this->language->get('heading_title'); $data['heading_subtitle'] = $this->language->get('heading_subtitle'); $data['text_empty'] = $this->language->get('text_empty'); $data['column_name'] = $this->language->get('column_name'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['column_order_id'] = $this->language->get('column_order_id'); $data['column_customer'] = $this->language->get('column_customer'); $data['column_product'] = $this->language->get('column_product'); $data['column_total'] = $this->language->get('column_total'); $data['column_status'] = $this->language->get('column_status'); $data['column_date_added'] = $this->language->get('column_date_added'); $data['button_view'] = $this->language->get('button_view'); $data['button_ocstore_payeer_onpay'] = $this->language->get('button_ocstore_payeer_onpay'); $data['button_ocstore_yk_onpay'] = $this->language->get('button_ocstore_yk_onpay'); $data['button_continue'] = $this->language->get('button_continue'); if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $data['orders'] = array(); $this->load->model('extension/payment/ocstore_payeer'); $this->load->model('extension/payment/ocstore_yk'); $this->load->model('account/order'); $order_total = $this->model_account_order->getTotalOrders(); $results = $this->model_account_order->getOrders(($page - 1) * 10, 10); foreach ($results as $result) { $product_total = $this->model_account_order->getTotalOrderProductsByOrderId($result['order_id']); $voucher_total = $this->model_account_order->getTotalOrderVouchersByOrderId($result['order_id']); $ocstore_yk_onpay_info = $this->model_extension_payment_ocstore_yk->checkLaterpay($result['order_id']); $data['orders'][] = array( 'order_id' => $result['order_id'], 'name' => $result['firstname'] . ' ' . $result['lastname'], 'status' => $result['status'], 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), 'products' => ($product_total + $voucher_total), 'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']), 'ocstore_payeer_onpay' => $this->model_extension_payment_ocstore_payeer->checkLaterpay($result['order_id']) ? $this->url->link('extension/payment/ocstore_payeer/laterpay', sprintf('order_id=%s&order_tt=%s', $result['order_id'], $result['total'], 'SSL')) : '', 'ocstore_yk_onpay' => $ocstore_yk_onpay_info['onpay'] ? $this->url->link('extension/payment/ocstore_yk/laterpay', sprintf('order_id=%s&order_ttl=%s&paymentType=%s', $result['order_id'], $result['total'], $ocstore_yk_onpay_info['payment_code']), 'SSL') : '', 'view' => $this->url->link('account/order/info', 'order_id=' . $result['order_id'], true), ); } $pagination = new Pagination(); $pagination->total = $order_total; $pagination->page = $page; $pagination->limit = 10; $pagination->url = $this->url->link('account/order', 'page={page}', true); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($order_total) ? (($page - 1) * 10) + 1 : 0, ((($page - 1) * 10) > ($order_total - 10)) ? $order_total : ((($page - 1) * 10) + 10), $order_total, ceil($order_total / 10)); $data['continue'] = $this->url->link('account/account', '', true); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); // Products $data['products'] = array(); $products = $this->model_account_order->getOrderProducts($this->request->get['order_id']); foreach ($products as $product) { $option_data = array(); $product_info = $this->model_catalog_product->getProduct($product['product_id']); if ($product_info) { $reorder = $this->url->link('account/order/reorder', 'order_id=' . $order_id . '&order_product_id=' . $product['order_product_id'], true); } else { $reorder = ''; } $data['products'][] = array( 'name' => $product['name'], 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), 'reorder' => $reorder, 'return' => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true) ); } $this->response->setOutput($this->load->view('account/order_list', $data)); }
  7. Ну это же как я понял для вывода в админке, или я ошибаюсь? а мне нужно в ...index.php?route=account/order Вот в контроллере вставляю в теле функции index свой код, но в шаблоне пишет Notice: Undefined variable: products не пойму почему, есть же запрос к модели, что не так, кде ошибка? $data['products'] = array(); $this->load->model('catalog/product'); $this->load->model('account/order'); $this->load->model('tool/upload'); $this->load->model('tool/image'); $products = $this->model_account_order->getOrderProducts($result['order_id']); foreach ($products as $product) { $product_info = $this->model_catalog_product->getProduct($product['product_id']); $data['products'][] = array( 'name' => $product['name'], 'model' => $product['model'], 'quantity' => $product['quantity'], ); }
  8. Вот код в контроллере который как я понимаю отвечает за обращение к модели для получения из бд нужных мне значений переменных. Я получаю Notice: Undefined index: order_id Подскажите в правильном ли я направлении двигаюсь и теперь как правильно мне получить значение order_id если подскажите код с пояснениями моих ошибок буду очень благодарен // Products $data['products'] = array(); $products = $this->model_account_order->getOrderProducts($this->request->get['order_id']); foreach ($products as $product) { $option_data = array(); $options = $this->model_account_order->getOrderOptions($this->request->get['order_id'], $product['order_product_id']); foreach ($options as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $product_info = $this->model_catalog_product->getProduct($product['product_id']); if ($product_info) { $reorder = $this->url->link('account/order/reorder', 'order_id=' . $order_id . '&order_product_id=' . $product['order_product_id'], true); } else { $reorder = ''; } $data['products'][] = array( 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), 'reorder' => $reorder, 'return' => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true) ); }
  9. Очень нужно. В шаблон я цикл вставил <?php foreach ($products as $product) { ?> <?php echo $product['name']; ?> <?php echo $product['price']; ?> <?php echo $product['quantity']; ?> <?php echo $product['total']; ?> <!-- <?php foreach ($product['option'] as $option) { ?> &nbsp; - <?php echo $option['name']; ?>: <?php echo $option['value']; ?> <?php } ?> --> <?php } ?> В модели все запросы как я понимаю есть ее трогать не нужно. Остается правильно отредактировать контроллер и вот здесь у меня возникал проблема так как опыта и знаний не хватает.
  10. Извините за ошибку я изночально написал в списке товаров и этим ввел в заблуждение, я имел ввиду в списке заказов .../index.php?route=account/order
  11. В списке заказов нужно нажать на ссылку просмотр. тогда перебрасывает на другую страницу с полной информацией по данному заказу. Я же пытаюсь вывести эту информацию на странице списка заказов. На screenshote выделена красным информация которую я пытаюсь безуспешно вывести.
  12. Подскажите как вывести информацию о товаре в списке товаров(не админка) , плагинов не нашел, и решений без плагинов не нашел. Если есть какая нибудь информация дайте ссылочку
  13. Проблема была в том что был установлен плагин с функцией reloadAll, вообщем мой клик не успевал срабатывать.
  14. $('#customer_register').change(function() {if($(this).is(":checked")) { $('#simplecheckout_button_next').trigger('click');}}); Подскажите, в чем моя ошибка. Я хочу что бы при клике по чекбоксу происходил переход по ссылке.Сейчас при клике и чекбокс включается, и по ссылке клик происходит но так, если бы чекбокс был отключен. Складывается впечатление, что сначала происходит клик по ссылке а потом уже срабатывает чекбокс. Хотя в ручном режиме все срабатывает.
  15. thentru огромное спасибо, проблема решена!
  16. я с поддержкой хостинга уже 2 часа безуспешно общаюсь, сказали обращайся в поддержку cms, хотя я понимаю скорее всего вопрос в настройке сервера. Но суть в том что в настройках php - кодировка, я ничего не указал, соответственно по умолчанию должно быть utf-8, по крайней мере так оно работает на 5,4, но увы=(
  17. Установил openstore 2.3, после изменения версии php c 4.5 на 5.6 вместо русских букв в названии магазина разные символы. (Кодировка не указана ни в том ни в том случае)
  18. Здравствуйте решил добавить к фильтру возможность присваивать каждому элементу фильтра, изображение. ocStore-2.3.0.2.2 тема дефолтная, фильтр штатный В таблице бд добавил колонку image. скриншот прилагаю. Правил -admin/model/catalog/filter в теле функции addFilter добавил: if (isset($data['image'])}{ .... <?php class ModelCatalogFilter extends Model { public function addFilter($data) { $this->db->query("INSERT INTO `" . DB_PREFIX . "filter_group` SET sort_order = '" . (int)$data['sort_order'] . "'"); $filter_group_id = $this->db->getLastId(); foreach ($data['filter_group_description'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "filter_group_description SET filter_group_id = '" . (int)$filter_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "'"); } if (isset($data['filter'])) { foreach ($data['filter'] as $filter) { $this->db->query("INSERT INTO " . DB_PREFIX . "filter SET filter_group_id = '" . (int)$filter_group_id . "', sort_order = '" . (int)$filter['sort_order'] . "', image = '" . (int)$filter['sort_order']. "'"); $filter_id = $this->db->getLastId(); if (isset($data['image'])) { $this->db->query("UPDATE" . DB_PREFIX . "filter SET image = '" . $this->db->escape($data['image']) . "' WHERE filter_id = '" . (int)$filter_id . "'"); } foreach ($filter['filter_description'] as $language_id => $filter_description) { $this->db->query("INSERT INTO " . DB_PREFIX . "filter_description SET filter_id = '" . (int)$filter_id . "', language_id = '" . (int)$language_id . "', filter_group_id = '" . (int)$filter_group_id . "', name = '" . $this->db->escape($filter_description['name']) . "'"); } } } return $filter_group_id; } в admin/controller/catalog/filter, в теле функции getForm: if (isset($this->request->get['filter_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { $filter_info = $this->model_catalog_filter->getFilter($this->request->get['filter_id']); } if (isset($this->request->post['image'])) { $data['image'] = $this->request->post['image']; } elseif (!empty($filter_info)) { $data['image'] = $filter_info['image']; } else { $data['image'] = ''; } $this->load->model('tool/image'); if (isset($this->request->post['image']) && is_file(DIR_IMAGE . $this->request->post['image'])) { $data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100); } elseif (!empty($filter_info) && is_file(DIR_IMAGE . $filter_info['image'])) { $data['thumb'] = $this->model_tool_image->resize($filter_info['image'], 100, 100); } else { $data['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100); } $data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100); в шаблоне: <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"> <img src="<?php echo $thumb; ?>" alt="img" title="" data-placeholder="<?php echo $placeholder; ?>" /> </a> <input type="hidden" name="image" value="<?php echo $image; ?>" id="input-image" /> В итоге изображение загружается в каталог image, но адрес не сохраняется в созданной мной колонке таблицы ну и соответственно не выводиться в админке, что я делаю не так? подскажите, очень хочется разобраться, информации очень мало на эту тему, заранее большое спасибо!
  19. Здравствуйте, прошу помощи в решение проблемы, пытаюсь адаптировать модуль ProScroller 2 2.0.0 под ocStore-2.3.0.2.2 Установил плагин, и в тех файлах где указывался путь model/module поменял на model/extension/module В результате в админ панели все хорошо а вот на странице сайта: Warning: Invalid argument supplied for foreach() in D:\OSPanel\domains\opencart\system\engine\loader.php on line 53Notice: Undefined property: Proxy::getProducts in D:\OSPanel\domains\opencart\catalog\controller\extension\module\proscroller.php on line 124
  20. Прошу помощи, решил вывести минимальную цену не в категориях а через модуль: ksl_OC_category, подскажите что нужно дописать в контроллере. Сейчас выводит: Notice: Undefined variable: category_id in /home/ih506839/public_html/catalog/controller/extension/module/categoryKsl.php on line 112 ocStore 2.3.0.2.2 в catalog>model>catalog>product добавил: public function getMinPriceFromCategory($category_id) { $query = $this->db->query("SELECT LEAST(p.price,IFNULL(ps.price, p.price)) min_price FROM `" . DB_PREFIX . "category` c RIGHT JOIN `" . DB_PREFIX . "product_to_category` p2c ON p2c.category_id = c.category_id RIGHT JOIN `" . DB_PREFIX . "product` p ON p2c.product_id = p.product_id LEFT JOIN `" . DB_PREFIX . "product_special` ps ON p.product_id = ps.product_id AND ps.date_end >= NOW() AND ps.date_start <= NOW() WHERE c.category_id = " . (int)$category_id . " AND p.status = 1 AND c.status = 1 ORDER BY min_price LIMIT 0,1 "); if ($query->num_rows) { return $query->row['min_price']; } else { return 0; } } в шаблоне category.tpl: <?php echo $min_price; ?> Вот сам контроллер: <?php class ControllerExtensionModuleCategoryKsl extends Controller { public function index() { //Определяем текущую категорию (path из GET запроса) if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; //родительская } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; //дочерняя } else { $data['child_id'] = 0; } if($data['child_id']) $data['category_id'] = null; $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); //Загружаем модель которая работает с таблицей настроек модулей (oc_setting) $this->load->model('setting/setting'); //Получаем значение - показывать ли изображения $category_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_images']; //Получаем значение - размеры изображений $category_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_height']; $category_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_weight']; //Для дочерних категорий $category_children = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children']; $category_child_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images']; $category_child_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height']; $category_child_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight']; //Массив категорий, которые не нужно выводить if(isset($this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'])){ $categoryKsl_checkbox = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox']; } else $categoryKsl_checkbox = null; foreach ($categories as $category) { //Пропускаем, если в настройках указано отключить данную категорию if (isset($categoryKsl_checkbox[$category['category_id']])) { continue; } $children_data = array(); if ($category_children) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { //Пропускаем, если в настройках указано отключить данную категорию if (isset($categoryKsl_checkbox[$child['category_id']])) { continue; } $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); //Работа с изображениями if ($category_child_images && is_file(DIR_IMAGE . $child['image'])) { $this->load->model('tool/image'); //метод создает изображения указанного размера $image = $this->model_tool_image->resize($child['image'], $category_child_images_weight, $category_child_images_height); } else { $image = ''; } $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']), 'image' => $image, ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); //Работа с изображениями if ($category_images && is_file(DIR_IMAGE . $category['image'])) { $this->load->model('tool/image'); //метод создает изображения указанного размера $image = $this->model_tool_image->resize($category['image'], $category_images_weight, $category_images_height); } else { $image = ''; } $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']), 'image' => $image, ); } $data['min_price'] = $this->model_catalog_product->getMinPriceFromCategory($category_id); //Добавляем свои стили $this->document->addStyle('catalog/view/theme/default/stylesheet/categoryKSL.css'); return $this->load->view('extension/module/categoryKsl', $data); } }
  21. Снова прошу вашей помощи, решил вывести мин. цену не в категориях а через модуль: ksl_OC_category, подскажите что нужно дописать в контроллере. Сейчас выводит: Notice: Undefined variable: category_id in /home/ih506839/public_html/catalog/controller/extension/module/categoryKsl.php on line 112 Вот сам контроллер: <?php class ControllerExtensionModuleCategoryKsl extends Controller { public function index() { //Определяем текущую категорию (path из GET запроса) if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_id'] = $parts[0]; //родительская } else { $data['category_id'] = 0; } if (isset($parts[1])) { $data['child_id'] = $parts[1]; //дочерняя } else { $data['child_id'] = 0; } if($data['child_id']) $data['category_id'] = null; $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); //Загружаем модель которая работает с таблицей настроек модулей (oc_setting) $this->load->model('setting/setting'); //Получаем значение - показывать ли изображения $category_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_images']; //Получаем значение - размеры изображений $category_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_height']; $category_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_weight']; //Для дочерних категорий $category_children = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children']; $category_child_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images']; $category_child_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height']; $category_child_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight']; //Массив категорий, которые не нужно выводить if(isset($this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'])){ $categoryKsl_checkbox = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox']; } else $categoryKsl_checkbox = null; foreach ($categories as $category) { //Пропускаем, если в настройках указано отключить данную категорию if (isset($categoryKsl_checkbox[$category['category_id']])) { continue; } $children_data = array(); if ($category_children) { $children = $this->model_catalog_category->getCategories($category['category_id']); foreach($children as $child) { //Пропускаем, если в настройках указано отключить данную категорию if (isset($categoryKsl_checkbox[$child['category_id']])) { continue; } $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true); //Работа с изображениями if ($category_child_images && is_file(DIR_IMAGE . $child['image'])) { $this->load->model('tool/image'); //метод создает изображения указанного размера $image = $this->model_tool_image->resize($child['image'], $category_child_images_weight, $category_child_images_height); } else { $image = ''; } $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']), 'image' => $image, ); } } $filter_data = array( 'filter_category_id' => $category['category_id'], 'filter_sub_category' => true ); //Работа с изображениями if ($category_images && is_file(DIR_IMAGE . $category['image'])) { $this->load->model('tool/image'); //метод создает изображения указанного размера $image = $this->model_tool_image->resize($category['image'], $category_images_weight, $category_images_height); } else { $image = ''; } $data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']), 'image' => $image, ); } $data['min_price'] = $this->model_catalog_product->getMinPriceFromCategory($category_id); //Добавляем свои стили $this->document->addStyle('catalog/view/theme/default/stylesheet/categoryKSL.css'); return $this->load->view('extension/module/categoryKsl', $data); } }
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.