-
Публікації
1 508 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем SooR
-
-
Попробуйте заменить в
catalog/controller/information/article.php на строке 346 обработку функцией html_entity_decode на
html_entity_decode($переменная, ENT_QUOTES, 'UTF-8')
Вместо $переменная указать ту, которая там сейчас стоит.
-
Тогда так должно сработать
Спойлер<?php class ControllerExtensionModulePavautosearch extends Controller { private $mdata = array(); public function index($setting = array()) { if (!$setting) { $setting = $this->config->get('pavautosearch_module'); } echo '<div style="display:none">'; echo '<pre>'; print_r($setting); echo '</pre>'; echo '</div>'; // pavo 2.2 fix $this->load->language('extension/module/themecontrol'); $config_theme = $this->config->get('theme_default_directory'); $this->mdata['objlang'] = $this->language; $this->mdata['ourl'] = $this->url; $this->mdata['sconfig'] = $this->config; $this->mdata['themename'] = $config_theme; // pavo 2.2 fix static $module = 0; $this->load->language('extension/module/pavautosearch'); $this->load->model('tool/image'); $this->load->model('catalog/category'); $this->load->model('catalog/manufacturer'); $this->mdata['objlang'] = $this->language; if (file_exists('catalog/view/theme/' . $config_theme . '/stylesheet/pavautosearch.css')) { $this->document->addStyle('catalog/view/theme/' . $config_theme . '/stylesheet/pavautosearch.css'); } else { $this->document->addStyle('catalog/view/theme/default/stylesheet/pavautosearch.css'); } $this->mdata['additional_class'] = isset($setting['class'])?$setting['class']:''; $this->mdata['limit'] = isset($setting['limit'])?$setting['limit']:5; $this->mdata['show_category'] = isset($setting['show_category'])?$setting['show_category']:'1'; $this->mdata['show_image'] = isset($setting['show_image'])?$setting['show_image']:'1'; $this->mdata['show_price'] = isset($setting['show_price'])?$setting['show_price']:'1'; $this->mdata['categories'] = $this->mdata["manufacturers"] = array(); if($this->mdata['show_category']){ // 3 Level Category Search $this->mdata['categories'] = array(); $this->mdata['category_id'] = 0; $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->mdata['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } } $this->mdata['module'] = $module++; return $this->load->view('extension/module/pavautosearch', $this->mdata); } public function autocomplete() { $json = array(); $this->load->language('product/category'); if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_manufacturer_id']) || isset($this->request->get['filter_category_id'])) { $this->load->model('tool/image'); $this->load->model('catalog/product'); if (isset($this->request->get['filter_name'])) { $filter_name = $this->request->get['filter_name']; } else { $filter_name = ''; } if (isset($this->request->get['filter_category_id'])) { $filter_category_id = $this->request->get['filter_category_id']; } else { $filter_category_id = ''; } if (isset($this->request->get['description'])) { $description = $this->request->get['description']; } else { $description = ''; } if (isset($this->request->get['sub_category'])) { $sub_category = $this->request->get['sub_category']; } else { $sub_category = ''; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = 20; } if (isset($this->request->get['width'])) { $width = $this->request->get['width']; } else { $width = 100; } if (isset($this->request->get['height'])) { $height = $this->request->get['height']; } else { $height = 100; } $data = array( 'filter_name' => $filter_name, 'filter_tag' => $filter_name, 'filter_description' => $description, 'filter_sub_category' => $sub_category, 'filter_category_id' => $filter_category_id, 'start' => 0, 'limit' => $limit ); $results = $this->model_catalog_product->getProducts($data); $total = $this->model_catalog_product->getTotalProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $width, $height); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } $json[] = array( 'total' => $total, 'product_id' => $result['product_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 'model' => $result['model'], 'image' => $image, 'link' => $this->url->link('product/product','product_id='.$result['product_id']), 'special' => $special, 'tax' => $tax, 'price' => $price ); } } $this->response->setOutput(json_encode($json)); } } ?>
- 1
-
Тогда попробуйте так, хотя и поле key желательно бы знать.
-
Это value, а нужен code
Здесь, к примеру, в поле code указано theme_default
Спойлер -
Какой code имеет настройка этого модуля в таблице?
-
@abonnent , нужно изначально знать как подключается этот модуль, какого он типа? Если он добавляется в списке модулей, то должен получать $setting аргументом.
Вы должны сперва правильно сохранить настройки этого модуля (не в setting?), затем использовать его.
-
Еще такое бывает, когда отсутствуют файлы перевода модулей.
Тогда название будет браться из последнего подключенного файла локализации.
-
Все что хранится в setting попадает в $this->config и доступно по ключу, которым является колонка 'key' в этой таблице.
Используйте $this->config->get('mymodule_status'); вместо $setting['status'].
-
Есть два типа модулей: модули "одиночки" и модули, которые создаются добавлением в списке модулей.
Настройки первого типа сохраняются в таблице setting, второго - в module.
$setting идет в модулях второго типа (карусель, баннеры, последние...).
Модули без "подмодулей" такой переменной не получают (категории, фильтр, аккаунт...).
Чтобы получить настройки модуля из таблицы setting, используйте API конфига:
$this->config->get('mymodule_status');
-
@Tom , по-моему проще посмотреть что там в его filemanager.php. Боюсь, эти замены приведут к цепной реакции до ядра)
- 1
-
Что-то у вас там сильно изменено от оригинала.
Удаляйте filemanager.php, а filemanager.php.bak переименуйте в filemanager.php.
Нужно смотреть, заочные методы у меня исчерпаны.
- 1
-
А что в консоле пишет?
-
Попробуйте загрузить файл filemanager.php из оригинального OpenCart 2.3. Перед этим, измените название исходного файла на filemanager.php.bak
Извлеките архив в admin/controller/common/
-
Подозрение на то, что filemanager.php неверно считает количество файлов, создавая вторую страницу, на которой нет изображений.
Проверьте по ftp, могут ли быть изображения на второй странице менеджера?
-
-
Здравствуйте. Что происходит после нажатия на другую страницу?
Откройте консоль браузера (F12) и посмотрите наличие ошибок JavaScript (вкладка Console), если их нет, то нужно смотреть куда уходит запрос (вкладка Network) и что он возвращает.
-
@mmmtrade , Здравствуйте.
=== ВНИМАНИЕ ======================================================================== Перед обновлением ОБЯЗАТЕЛЬНО сделайте резервную копию базы данных вашего магазина! Установка иными способами не гарантирует правильную работоспособность модуля фильтра. Используйте метод установки описанный ниже. === ОБНОВЛЕНИЕ ====================================================================== 1. Перейдите в > Дополнения > Модули > Фильтр товаров OCFilter > "Редактировать" > Выключите модуль (статус - отключено) и сохраните настройки ________________________________________________________________________________ 2. Перейдите в > Дополнения > Менеджер дополнений > Установите флажок напротив "OCFilter Modification" > Нажмите на "Удалить" в верхнем правом углу страницы > Нажмите "Очистить" > Затем "Обновить" ________________________________________________________________________________ 3. Перейдите в > Дополнения > Установка дополнений > Установите ocfilter.update.ocmod.zip из папки UPDATE > ваша версия OpenCart ________________________________________________________________________________ 4. Перейдите в > Дополнения > Менеджер дополнений > Нажмите "Очистить" > Затем "Обновить" ________________________________________________________________________________ 5. Перейдите в > Дополнения > Модули > Фильтр товаров OCFilter > "Редактировать" Включите модуль и сохраните настройки
-
Сам на днях переносил модуль под 3-й, получал ошибку при загрузке, потом дошло, когда посмотрел в этот файл.
-
- 1
-
@Serwak , здравствуйте. Индексация фильтров теперь запрещена по умолчанию, открыты для индексации только посадочные страницы.
Редактор в некоторых сборках подключается по-своему, нужно посмотреть.
-
Самый простой вариант - дублировать себе письмо покупателя.
Идем в catalog/controller/mail/order.php и находим
$mail->setHtml($this->load->view('mail/order_add', $data)); $mail->send();
после вставляем
// Send to additional alert emails $emails = explode(',', $this->config->get('config_mail_alert_email')); $emails[] = $this->config->get('config_email'); foreach ($emails as $email) { if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) { $mail->setTo($email); $mail->send(); } }
находим
public function alert(&$route, &$args) {
после вставляем
return;
Решение не проверялось. Применять с осторожностью.
-
Вариант 1
В common/menu.twig подгружать два шаблона
{% include 'default/template/common/menu_desktop.twig' %} {% include 'default/template/common/menu_mobile.twig' %}
Вариант 2
В контроллере создать две переменные обработанных шаблонов
$data['menu_desktop'] = $this->load->view('common/menu_desktop', $data); $data['menu_mobile'] = $this->load->view('common/menu_mobile', $data);
В common/menu.twig
<div id="menu-desktop">{{ menu_desktop }}</div> <div id="menu-mobile">{{ menu_mobile }}</div>
- 3
-
@shankara , обычно не требуется. Пользоваться можно сразу.
-
Ошибка, строка сверху сайта
в Opencart 2.x / ocStore 2.x: Звіти про помилки
Опубліковано:
На других страницах было бы тоже самое. Там точка с запятой лишние в кодировке.