Рекомендуемые сообщения

UnclePasha    0

Всем привет! Разрабатываю свой первый модуль для Opencart 1.5.5.1.2 и возникла проблема с возвратом значений из контроллера в шаблон через AJAX. Изначально делал всё по руководствам в Интернете. 
 
Контроллер (прошу извинить, не понял, как форматировать код в спойлере): 

 


class ControllerModuleMyModule extends Controller {

private $error = array();

public function index() {
//Load the language file for this module
$this->load->language('module/my_module');

//Set the title from the language file $_['heading_title'] string
$this->document->setTitle($this->language->get('heading_title'));

//Load the settings model. You can also add any other models you want to load here.
$this->load->model('setting/setting');

//Save the settings if the user has submitted the admin form (ie if someone has pressed save).
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('my_module', $this->request->post);

$this->session->data['success'] = $this->language->get('text_success');

$this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
}

//This is how the language gets pulled through from the language file.
//
// If you want to use any extra language items - ie extra text on your admin page for any reason,
// then just add an extra line to the $text_strings array with the name you want to call the extra text,
// then add the same named item to the $_[] array in the language file.
//
// 'my_module_example' is added here as an example of how to add - see admin/language/english/module/my_module.php for the
// other required part.

$text_strings = array(
'heading_title',
'text_enabled',
'text_disabled',
'text_content_top',
'text_content_bottom',
'text_column_left',
'text_column_right',
'entry_layout',
'entry_limit',
'entry_image',
'entry_position',
'entry_status',
'entry_sort_order',
'button_save',
'button_cancel',
'button_add_module',
'button_remove',
'entry_cat_before',
'entry_part_name',
'entry_cat_after',
'entry_example' //this is an example extra field added
);

foreach ($text_strings as $text) {
$this->data[$text] = $this->language->get($text);
}
//END LANGUAGE

//The following code pulls in the required data from either config files or user
//submitted data (when the user presses save in admin). Add any extra config data
// you want to store.
//
// NOTE: These must have the same names as the form data in your my_module.tpl file
//
$config_data = array(
'my_module_example' //this becomes available in our view by the foreach loop just below.
);

foreach ($config_data as $conf) {
if (isset($this->request->post[$conf])) {
$this->data[$conf] = $this->request->post[$conf];
} else {
$this->data[$conf] = $this->config->get($conf);
}
}

//This creates an error message. The error['warning'] variable is set by the call to function validate() in this controller (below)
if (isset($this->error['warning'])) {
$this->data['error_warning'] = $this->error['warning'];
} else {
$this->data['error_warning'] = '';
}

//SET UP BREADCRUMB TRAIL. YOU WILL NOT NEED TO MODIFY THIS UNLESS YOU CHANGE YOUR MODULE NAME.
$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('text_module'),
'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => ' :: '
);

$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('module/my_module', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => ' :: '
);

$this->data['action'] = $this->url->link('module/my_module', 'token=' . $this->session->data['token'], 'SSL');

$this->data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL');


//This code handles the situation where you have multiple instances of this module, for different layouts.
$this->data['modules'] = array();

if (isset($this->request->post['my_module_module'])) {
$this->data['modules'] = $this->request->post['my_module_module'];
} elseif ($this->config->get('my_module_module')) {
$this->data['modules'] = $this->config->get('my_module_module');
}

$this->load->model('design/layout');

$this->data['layouts'] = $this->model_design_layout->getLayouts();

//Choose which template file will be used to display this request.
$this->template = 'module/my_module.tpl';
$this->children = array(
'common/header',
'common/footer',
);

/*My test module*/
//Taking all parent categories
$this->load->model('catalog/category');
$this->data['module_category'] = $this->model_catalog_category->getAllCategories();  //выводит список категорий в <select> 

/*End of test module*/
//Send the output.
$this->response->setOutput($this->render());

}

/*Моя функция для обработки AJAX*/
public function aj(){
      $this->load->language('module/my_module');
      $category_id = $this->request->get['category_id'];

      if ($category_id > 0) {
            //loading the AJAX
            $this->template = 'module/my_module.tpl';
            $this->load->model('catalog/product');
            $product = $this->model_catalog_product->getProduct($category_id);
            $data['product'] = $product;
            $this->response->setOutput($this->render());
}


/*
* This function is called to ensure that the settings chosen by the admin user are allowed/valid.
* You can add checks in here of your own.
*
*/

private function validate() {
if (!$this->user->hasPermission('modify', 'module/my_module')) {
$this->error['warning'] = $this->language->get('error_permission');
}

if (!$this->error) {
return TRUE;
} else {
return FALSE;
}
}

}
?>


 

AJAX функция в шаблоне (срабатывает при выборе нужного значения в списке <select>):

 $('#category').on('change', function() {
        $.ajax({
          type: 'get',
          url: 'index.php?route=module/my_module/aj&token=<?php echo $token; ?>',
          data: 'category_id='+this.value,
          dataType: 'html',
          beforeSend: function(){
              console.log("Send");
          },
          success: function(htmlText){
              console.log(htmlText);
        },
        error: function(xhr, textStatus, error){
          console.log(xhr.responseText);
          console.log(textStatus);
          console.log(error);
      }
    }); 

Первая проблема в том, что контроллер не может поймать параметры get запроса и, как следствие, обработать его. Вторая проблема - даже если я пишу простую переменную в функции-обработчике, в ответе console.log(xhr.responseText) выводит весь HTML код шаблона.

 

Я пробовал делать всё через JSON (создавал простой массив в функции контроллера и ставил его на вывод через $this->response->setOutput(json_encode($json))), но из-за проблемы с выводом в AJAX была ошибка парсинга JSON (т.к. выводится весь HTML код, а не ожидаемая пара "ключ-значение"). 

 

Что я делаю не так? 

 

Заранее благодарен за помощь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemPitov    409

если json

$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode( ..тут возврат массива в json.. ));
 $('#category').on('change', function() {

    var id = 'category_id='+this.value;

    $.ajax({
        type: 'GET',
        url: 'index.php?route=module/my_module/aj',
        data: id,
        dataType: 'html',
        beforeSend: function(){
          console.log("Send");
        },
        success: function(htmlText){
          console.log(htmlText);
        },
        error: function(xhr, textStatus, error){
          console.log(xhr.responseText);
          console.log(textStatus);
          console.log(error);
      }
    });
public function aj(){
  
    $this->load->language('module/my_module');
    if isset($this->request->get['category_id']) {

      $product = $this->model_catalog_product->getProduct($category_id);

      $this->response->setOutput($product);

      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/my_module.tpl'))  
          $this->template = $this->config->get('config_template') . '/template/module/my_module.tpl';
      else $this->template = 'default/template/module/my_module.tpl'; 
    } else  $this->response->setOutput('ERROR');

} 

Пробуйте так, писал на скорую руку мог и ошибиться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UnclePasha    0

если json

$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode( ..тут возврат массива в json.. ));
 $('#category').on('change', function() {

    var id = 'category_id='+this.value;

    $.ajax({
        type: 'GET',
        url: 'index.php?route=module/my_module/aj',
        data: id,
        dataType: 'html',
        beforeSend: function(){
          console.log("Send");
        },
        success: function(htmlText){
          console.log(htmlText);
        },
        error: function(xhr, textStatus, error){
          console.log(xhr.responseText);
          console.log(textStatus);
          console.log(error);
      }
    });
public function aj(){
  
    $this->load->language('module/my_module');
    if isset($this->request->get['category_id']) {

      $product = $this->model_catalog_product->getProduct($category_id);

      $this->response->setOutput($product);

      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/my_module.tpl'))  
          $this->template = $this->config->get('config_template') . '/template/module/my_module.tpl';
      else $this->template = 'default/template/module/my_module.tpl'; 
    } else  $this->response->setOutput('ERROR');

} 

Пробуйте так, писал на скорую руку мог и ошибиться

 

А где ставить заголовки и json output? В функции index или в функции для ajax? 

Пока создал функцию по образцу вашей, отредактировал ajax запрос, результат вывел в alert(htmlText), получилось то, что на скриншоте во вложении.  

post-711288-0-45204800-1464795167_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemPitov    409

для начала поясните что он должен делать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UnclePasha    0

для начала поясните что он должен делать

Он должен принимать через get запрос выбранную категорию (из списка <select> в шаблоне) в контроллер, затем переданная категория служит аргументом для функции getProductsByCategoryId, получаем массив товаров и парсим его обратно в .tpl файл. Это первое, что хочу сделать в модуле. Потом, на втором этапе, этот товар будет присвоен новой категории. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemPitov    409

Он должен принимать через get запрос выбранную категорию (из списка <select> в шаблоне) в контроллер, затем переданная категория служит аргументом для функции getProductsByCategoryId, получаем массив товаров и парсим его обратно в .tpl файл. Это первое, что хочу сделать в модуле. Потом, на втором этапе, этот товар будет присвоен новой категории. 

так откройте любой стандартный модуль и не посмотрите как там сделано и не выдумывайте велосипед 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UnclePasha    0

так откройте любой стандартный модуль и не посмотрите как там сделано и не выдумывайте велосипед 

 

А вы можете привести такой пример? Насколько я смотрел, функционал модулей в админпанели однообразен, там лишь форма с изменением положения модуля, кнопкой сохранения и удаления. А по ТЗ надо сделать функционал, который я описал выше, именно в админке. Это разве невозможно? Не сарказм, просто вопрос к профессионалу :)

Custom функций в стандартных модулях я также не увидел, только index() и validate(). Может, я действительно пошел не по тому пути? 

Изменено пользователем UnclePasha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemPitov    409

А вы можете привести такой пример? Насколько я смотрел, функционал модулей в админпанели однообразен, там лишь форма с изменением положения модуля, кнопкой сохранения и удаления. А по ТЗ надо сделать функционал, который я описал выше, именно в админке. Это разве невозможно? Не сарказм, просто вопрос к профессионалу :)

Custom функций в стандартных модулях я также не увидел, только index() и validate(). Может, я действительно пошел не по тому пути? 

Пишите в ЛС подробный функционал, я не совсем "вехал" что там должно быть  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От pikitos

      2 299.00 руб
      Скачать/Купить дополнение


      2.x Revolution. Адаптивный универсальный шаблон
       
      Демонстрация:
      Магазин техники Apple Магазин авто-запчастей Магазин пиццерии Магазин авто-товаров (пример 1) Магазин авто-товаров (пример 2) Магазин одежды и обуви Магазин косметики Админка доступ: demo / demo Ссылка на валидатор Ссылка на PageSpeed  
      Как купить и очень легко и быстро установить шаблон и начать работать показано на видео. Видео старое и качество огонь..
      Так же прошу учитывать мой часовой пояс: + 4 часа к Московскому времени (GMT+7). Это если вдруг у вас вечер, а ответа все нет, будет утром.
      !Внимание: Для шаблона начиная с версии 2.0 должны быть установлены на сервере - PHP версии 5.4 и выше + Ioncube Loader версии 5.0 и выше.
      Чтобы узнать вашу версию php и ioncube, скачайте файл, распакуйте, загрузите к себе в корень сайта и откройте по адресу http://ваш-сайт.ru/myinfo.php
      Шаблон Revolution - это результат многолетнего опыта работы с cms opencart и сферой e-commerce в целом. Главная идея - чистота, минимализм и выделение товара на главный план. Любое решение в шаблоне обосновано.
      Настройки шаблона продуманы и взаимосвязаны. В шаблоне продуманы многие мелочи. Если товара нет в наличии, быстрый заказ не доступен (но его можно включить, есть опция). Возможность использовать магазин как каталог, без кнопки купить и корзины в пару кликов. Если корзина стоит всплывающая, то убирается "стрелка вниз" на Корзине покупок указывающая на ее корзины. Меняется сортировка товаров в зависимости от доступности товара для заказа. И тому подобные взаимосвязи.
       
      Функционал:
      2 типа меню каталога товаров: Amazon меню и горизонтальное выпадающее. Быстрый поиск в шапке сайта с возможностью выбора категории поиска. Заказ обратного звонка в шапке сайта. Дополнительные контакты. Новые страницы каталога: Новинки и Хиты продаж. Встроенный модуль новостей с выбором товаров для новости. Отзывы на магазин. Информационные блоки на главной странице. 6 настраеваемых слайдеров товаров. Новинки, Хиты продаж, Акции и 3 пользовательских слайдера. Виджет vk на главной странице. Настраевыемые сортировки в каталоге товаров. Автоматические настраевыемые стикеры товаров: новинка, хит продаж, акция. Быстрый заказ товара. Полностью переделана страница сравнения товаров. Теперь она адаптивная, выбор параметров сравнения, идет сравнение товаров по категории, кнопка показа только отличий. Меняются и сохраняются кнопки после добавления товаров в сравнение или закладки. 3 вид отображения товаров в каталоге. Всплывающая корзина. Быстрый просмотр товара. В закладки добавление без регистрации. Выбор вывода характеристик в карточке товара с ограничением. Выбор какие данные показывать в карточке товара. В карточке товара зум для фото и слайдер дополнительных фото. Дополнительные вкладки для всех товаров с настройками. Дополнительные вкладки отдельно для каждого товара. Отображение новостей в карточке товара к которым он прикреплен. Подписка на новости, с выбором пользователей для рассылки в админке. Иконки социальных сетей в подвале сайта. Иконки платежных систем в подвале сайта. В контактах карта формируется автоматически из адреса. Внимание! На сайте auto.oc-mod.ru и moda.oc-mod.ru показана адаптация для модулей: Simple - упрощенная регистрация и заказ; filter Pro. В состав шаблона входит только адаптация для этих модулей (в архиве с шаблоном в папке "_Фиксы для других модулей"). Микро-разметка. ... еще много чего (допишется позже). Лицензия:
      Шаблон можно приобрести на форуме и запросить лицензионный ключ в личном сообщении, написав домен на котором он будет использоваться. Шаблон можно использовать только на одном домене. + Выдается ключ на тестовый домен. В след. версиях добавиться:
      Поддержка мультимагазина И что еще нужно пишите.. Включена адаптация для популярных модулей:
      Модуль Simple - упрощенная регистрация и заказ filter Pro более полное описание добавится попозже...
      .
      Добавил pikitos Добавлено 05.06.2016 Категория Платные шаблоны Системные требования PHP v5.4+ и Ioncube Loader v5.0+ Сайт разработчика oc-mod.ru Старая цена Метод активации По запросу в ЛС
      По запросу на почту
      По скайпу
      По емейлу
      Через официальный сайт дополнения Ioncube Loader Требуется OpenCart 2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От Kiselove
      Группировка товаров. Отображение на сайте. 

      Сейчас: 
      Группировка происходит за счет создания в админке серии товаров, к которой приписываются товары, входящие в эту серию. При отображении группы товаров на сайте в списке товаров цена подписана в формате "От…". Все товары данной группы можно увидеть, а также цены и вес, цвет и т.д., только зайдя в карточку товара. 

      Реализовать: 
      Вывод группы товара в списке с отображением всех атрибутов каждого товара в группе. Примеры с других магазинов в примечании. Т.е. у покупателя должна быть возможность моментального выбора нужного веса, цвета и т.д. в группе товаров, не заходя в карточку товара. Еще бывает что у товара до 20 разновидностей (обычно это одежда с размерами) – можно выводить списком тогда выпадающим, если атрибутов больше 6-7 
    • От androidpos

      3 000.00 руб
      Скачать/Купить дополнение


      54ФЗ Касса интернет-магазина (фискальный регистратор)
      Регистрация электронных платежей в соответствии с 54ФЗ. Данные с Вашего сайта поступают прямо на Ваш ПК и ФР. Никаких ежемесячных платежей и посредников по передаче данных. Любая модель регистраторов Штрих и Атол. Отправка данных ОФД, электронные чеки. Может работать с несколькими магазинами одновременно. OpenCart 1.5-2.0 - 2.3
       
      "Касса интернет-магазина" представляет собой комплекс из двух модулей - один устанавливается на сайте интернет-магазина, другой на ПК под управлением ОС Windows. К этому же ПК подключается фискальный регистратор (далее ФР).
      После оплаты покупателем товара и перехода статуса заказа в заранее выбранный при настройке, модуль сайта производит отправку информации об оплаченном заказе на ПК .Обработанные данные заносятся в базу и передаются на ФР. После регистрации происходит автоматическая передача данных ОФД (оператору фискальных данных), который в свою очередь фиксирует продажу и отправляет электронный чек покупателю на адрес, указанный при заказе. На всё уходит 1-2 сек.
      С текущей версии включена поддержка работы с курьерами.
      Требования к хостингу:
      - PHP от 5.4
      - ionCube Loader от 5.0 (два зашифрованных файла)
      - разрешённые исходящие соединения (на любом порту)
      Требования к ПК:
      - ОС Windows 7
      - .NET Framework 4.0
      - установленные драйвера ФР - в зависимости от выбранной модели
      - выделенный IP (локальной сети или ПК)
      Фискальный регистратор (ФР) - любая модель Штрих или Атол, поддерживающая 54ФЗ.
      Возможности модуля на хостинге:
      - ввод IP для связи
      - данные логина и пароля для связи
      - выбор отслеживаемого статуса заказа
      - создание и сохранение списка видов платежей, которые следует считать электронными и фиксировать по 54ФЗ.
      - отправка и учет всех видов бонусов и скидок в заказе
      - сохранение (для последующей передачи) неотправленных по какой-либо причине оплаченных заказов
      - приём и передача информации на ФР от модуля "Смартфон курьера для OpenCart +54ФЗ"
      Возможности модуля на ПК:
      - автоматическая авторизация подключения
      - работа по HTTP и HTTPS
      - фильтрация по IP
      - запись данных в базу, вывод журнала, просмотр отдельных заказов (чеков)
      - при отсутствии связи с ФР накопление незарегистрированных чеков
      - все функции управления ФР, возвраты
      - возможность отключения печати чеков на ленте, с записью только в ФН (что предусмотрено 54ФЗ для удалённых электронных платежей)
      - пробитие как он-лайн чеков (оплата на сайте\платёжной системе), так за наличный расчет
      - тест канала связи
      - тест модуля на сайте
      Кроме этого, система имеет закодированную передачу данных и стойкое шифрование (256 бит) авторизации.
      В архиве три установки на OC (1.5, 2.0-2.2, 2.3), установщик Windows.
      Лицензия (ключ) по запросу после приобретения.
      Драйвера для регистраторов, бесплатные демо-версии (v1.0.1), ссылки на демо доступы здесь.
      Сайт поддержки - help.android-pos.ru
       
      Быстро и бесплатно спрашиваем здесь:  WhatsApp
       
      Новая услуга - удалённое подключение под ключ (при выполнении требований к оборудованию и ПО). Подробнее - support@android-pos.ru или ЛС.
       
      Добавил androidpos Добавлено 01.07.2017 Категория Платежные системы Системные требования Сайт разработчика http://cash.android-pos.ru Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От androidpos
      Регистрация электронных платежей в соответствии с 54ФЗ. Данные с Вашего сайта поступают прямо на Ваш ПК и ФР. Никаких ежемесячных платежей и посредников по передаче данных. Любая модель регистраторов Штрих и Атол. Отправка данных ОФД, электронные чеки. Может работать с несколькими магазинами одновременно. OpenCart 1.5-2.0 - 2.3
       
      "Касса интернет-магазина" представляет собой комплекс из двух модулей - один устанавливается на сайте интернет-магазина, другой на ПК под управлением ОС Windows. К этому же ПК подключается фискальный регистратор (далее ФР).
      После оплаты покупателем товара и перехода статуса заказа в заранее выбранный при настройке, модуль сайта производит отправку информации об оплаченном заказе на ПК .Обработанные данные заносятся в базу и передаются на ФР. После регистрации происходит автоматическая передача данных ОФД (оператору фискальных данных), который в свою очередь фиксирует продажу и отправляет электронный чек покупателю на адрес, указанный при заказе. На всё уходит 1-2 сек.
      С текущей версии включена поддержка работы с курьерами.
      Требования к хостингу:
      - PHP от 5.4
      - ionCube Loader от 5.0 (два зашифрованных файла)
      - разрешённые исходящие соединения (на любом порту)
      Требования к ПК:
      - ОС Windows 7
      - .NET Framework 4.0
      - установленные драйвера ФР - в зависимости от выбранной модели
      - выделенный IP (локальной сети или ПК)
      Фискальный регистратор (ФР) - любая модель Штрих или Атол, поддерживающая 54ФЗ.
      Возможности модуля на хостинге:
      - ввод IP для связи
      - данные логина и пароля для связи
      - выбор отслеживаемого статуса заказа
      - создание и сохранение списка видов платежей, которые следует считать электронными и фиксировать по 54ФЗ.
      - отправка и учет всех видов бонусов и скидок в заказе
      - сохранение (для последующей передачи) неотправленных по какой-либо причине оплаченных заказов
      - приём и передача информации на ФР от модуля "Смартфон курьера для OpenCart +54ФЗ"
      Возможности модуля на ПК:
      - автоматическая авторизация подключения
      - работа по HTTP и HTTPS
      - фильтрация по IP
      - запись данных в базу, вывод журнала, просмотр отдельных заказов (чеков)
      - при отсутствии связи с ФР накопление незарегистрированных чеков
      - все функции управления ФР, возвраты
      - возможность отключения печати чеков на ленте, с записью только в ФН (что предусмотрено 54ФЗ для удалённых электронных платежей)
      - пробитие как он-лайн чеков (оплата на сайте\платёжной системе), так за наличный расчет
      - тест канала связи
      - тест модуля на сайте
      Кроме этого, система имеет закодированную передачу данных и стойкое шифрование (256 бит) авторизации.
      В архиве три установки на OC (1.5, 2.0-2.2, 2.3), установщик Windows.
      Лицензия (ключ) по запросу после приобретения.
      Драйвера для регистраторов, бесплатные демо-версии (v1.0.1), ссылки на демо доступы здесь.
      Сайт поддержки - help.android-pos.ru
       
      Быстро и бесплатно спрашиваем здесь:  WhatsApp
       
      Новая услуга - удалённое подключение под ключ (при выполнении требований к оборудованию и ПО). Подробнее - support@android-pos.ru или ЛС.
       
    • От KoRNeT
      У заказчика есть опция, в которой 22тыс. значений.
      При этом возникает проблема при редактировании товара (подгрузка всех значений (22к) в селект опции), а также проблема при переходе в раздел "Опции", при загрузке списка всех значений опции.
      Есть мысль о 2х решениях, но не знаю даст ли это плоды:
      1) систему кеширования на мемкэше
      2) каким то образом прикрутить пагинацию в раздел "Опции", чтобы было ограниченное количество значений опции на страницу (не знаю есть ли уже готовый модуль. Если есть, поделитесь пжлста).

      Все это на Opencart 1.5.6. 
      Если есть какие -нибудь другие варианты в вашей голове, или кто-то сталкивался с подобной проблемой, или знает модули, которые могут решить проблему, отпишитесь тут пожалуйста. Очень надеюсь на поддержку. 
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу