Множественный выбор параметра товара в Минимагазине NetCat

По-умолчанию Минимагазин NetCat предлагает для каждого уникального объекта генерировать отдельную кнопку "положить в корзину". То есть, скажем, если существует несколько модификаций товара, отличающихся только размером (ну, или цветом), то в полном выводе объекта нам придется генерировать столько кнопок "положить в корзину", сколько вариантов размеров существует. Например, 10. Данный рецепт позволяет обойти это ограничение: при выборе размера из выпадающего списка с помощью AJAX-запроса без перезагрузки страницы генерируется уникальная кнопка "положить в Корзину".

Версия NetCat: любая 4.x.x с модулем "Минимагазин"
Статус: стабильный, но инструкцию писал "программист" в плохом смысле слова. Куча кода и ничего не понятно.

В чем суть? (описание от автора решения, написана по памяти в 2015 году)

Положим у нас есть минимагазин, а в нем компонент "Товар: ботинки" и мы хотим сделать возможность выбирать ботинки разного размера. Делается это примерно так:

  1. создаем список Size, в нем все возможные размеры обуви
  2. создаем поле Size, множественный выбор, связываем со списком
  3. в выводе объекта генерим список размеров данного ботинка
    • теперь можно выбирать размеры, которые есть у данного конкретного ботинка. Осталась одна проблема: в минимагазине можно положить в корзину все, что угодно, у чего есть имя, цена и URL. Но не размер. Обойдем это посредством генерации кнопки ajax'ом. Для этого:
  4. создаем шаблон компонента, который возвращает "код кнопки", получив ее имя, цену и URL из REQUEST
  5. на выпадающий список с размерами навешиваем скрипт, который AJAX'ом отправляет на созданный только что шаблон модифицированное имя объекта в котором в явном виде фигурирует размер
  6. полученный в ответ код вписываем в кнопку. Mission complete!

Инструкция по установке (написана другим программистом в стиле "вот вам куча кода и я не хочу думать о том, чтобы хоть что-то было понятно и уж тем более описывать это литературно и с огоньком")

Инструкция приведена для полного отображения объекта.

  • В полном отображении объекта пишем следующий код:
<script>
var size= \$('select.selectBlock option:selected').text();
AjaxLoad(size);
\$('select.selectBlock').change(function(){
    var size= \$('select.selectBlock option:selected').text();
    AjaxLoad(size);
});
function AjaxLoad(size){
$.post(
    '$subLink?nc_ctpl=187',
    {
        name: '$f_Name (размер ' + size + ')',
        price: $f_Price,
        url: '$fullLink',
        isNaked: 1
    },
    function(html){
        $('#mshop').html(html);
    });
}
</script>
<div id='mshop'></div>

где size, в нашем случае - это поле типа "список", в котором представлены варианты размеров одежды.

  • Далее создаем шаблон текущего компонента и в его системных настройках пишем:
 if(isset($_REQUEST[name])){
    echo $nc_minishop->show_put_button($_REQUEST['name'], $_REQUEST['price'], $_REQUEST['url']);
}
  • Теперь вернемся к ранее написанному коду. Найдите строку '$subLink?nc_ctpl=187' и вместо 187 подставьте номер своего, только что созданного шаблона.
  • Удачной установки! :)

Блог

WebSocket: интеграция с NetCat

Хотите добавить на сайт под управлением CMS NetCat поддержку технологии WebSocket? Обращайтесь к нам! Посетители сайта смогут получать мгновенные уведомления о событиях сайта без обращений к серверу и перезагрузок страниц. Превратите свой сайт в интерактивную площадку, работающую в реальном времени!

далее

Поломка админки NetCat 4.7 в Google Chrome и Opera

В современных версиях Google Chrome и Opera, вышедших в прошлом месяце, админка CMS NetCat 4.7 и младше вдруг сломалась. Поломка проявляется в том, что в правой части админки перестала показываться нижняя панель редактирования (там, где кнопки Добавить и прочие), а скролл-прокрутка не осуществляется до конца. Работать с сайтом и добавлять новые материалы не представляется возможным.

далее

NetCat: техническая поддержка и доработка сайтов

Мы работаем с CMS NetCat уже больше 10 лет. У нас большой опыт и ответственный подход к делу.

далее

Права Доступа в Компонентах: работают не так, как ожидается; но можно накостылить патч

Если в настройках Раздела или Инфоблока NetCat попробовать дать доступ на изменение объекта ВСЕМ, ничего не получится. Просмотр и Добавление работают одним образом, а Изменение, Включение и Удаление -- другим.

далее

Весь блог тут