msMiniCartDynamic

Динамическое обновление мини-корзины miniShop2
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Марат Марабар
Пакетов
4
Закачек
3 819
Автор дополнения
Пакетов
4
Закачек
3 819
Версия 1.0.11-pl
Дата выпуска 24.04.2018
Загрузки 1 788
Просмотры 19 456
Внимание! Этот компонент больше не поддерживается, рекомендую использовать msMCD.

Компонент msMiniCartDynamic для магазина miniShop2 даёт возможность изменять количество добавляемых товаров в корзину, как кнопками +-, так и ручным вводом количества в поле input. Также, при необходимости, есть возможность динамического изменения миникорзины.

Добавление +- к товарам каталога

Для добавления к товарам каталога кнопок +-, необходимо отредактировать форму в чанке miniShop2 — tpl.msProducts.row, должно получиться примерно так:

<form method="post" id="dynamic-[[+id]]" class="ms2_form">
	<a href="[[~[[+id]]]]">[[+pagetitle]]</a>
	<span class="flags">[[+new]] [[+popular]] [[+favorite]]</span>
	<span class="price">[[+price]] [[%ms2_frontend_currency]]</span>
	[[+old_price]]

	[[!msDynamicCount?
		&id=`[[+id]]`
	]]

	<input type="hidden" name="id" value="[[+id]]">
	<input type="hidden" name="options" value="[]">
</form>

  1. Удалить button name=«ms2_action»
  2. Удалить input name=«count»
  3. Добавить в форму идентификатор id=«dynamic-[[+id]]»:
    <form method="post" id="dynamic-[[+id]]" class="ms2_form">
    	...
    	...
    	...
    </form>
  4. Разместить не кэшированный вызов сниппета [[!msDynamicCount]], с обязательным параметром &id=[[+id]]

Подключить скрипт msMiniCartDynamic после jQuery. До или после скрипта miniShop2 — разницы нет, работает так и так.

<script src="/assets/components/msminicartdynamic/js/web/msminicartdynamic.js"></script>

Доступны плейсхолдеры:
  • [[+key_d]] — Уникальный ключ товара в корзине
  • [[+count_d]] — Количество этого товара в корзине
  • [[+id_d]] — ID товара (ресурса) в корзине

Динамическое изменение миникорзины

Компонент имеет возможность динамически изменять состав миникорзины, для этого достаточно в чанк tpl.msMiniCart поместить вызов сниппета

<div id="msMiniCart" [[+total_count:isnot=`0`:then=`class="full"`:else=``]]>
	<div class="empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_is_empty]]
	</div>

	[[!msMiniCartDynamic?
            &img = `small`
        ]]

	<div class="not_empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_goods]]: <strong class="ms2_total_count">[[+total_count]]</strong> [[%ms2_frontend_count_unit]],
		[[%ms2_minicart_cost]]: <strong class="ms2_total_cost">[[+total_cost]]</strong> [[%ms2_frontend_currency]]
	</div>
</div>

Доступны плейсхолдеры:
  • [[+name_d]] — Название товара (pagetitle)
  • [[+key_d]] — Ключ товара
  • [[+count_d]] — Количество данного товара в корзине
  • [[+price_d]] — Цена товара товара за единицу
  • [[+sum_d]] — Сумма товара
  • [[+img_d]] — Картинка товара
  • [[+id_d]] — ID товара (ресурса)

Параметры:
  • &tpl — Чанк для одного товара. По умолчанию: msMinicartDynamic
  • &tplOuter — Чанк обёртка всего блока. По умолчанию: msMinicartDynamicOuter
  • &img — Картинка (миниатюра) товара. По умолчанию: Пусто

Заключение

Сам по себе компонент в корзину ничего не добавляет, этим всем занимается miniShop2. msMiniCartDynamic просто инициализирует и ловит определённые события изменения корзины, подсчитывает кол-во и сумму определённого товара и выводит всё это дело на экран.

С версии 1.0.0-pl мини корзина обновляется динамически без использования ± (Т.е. при добавления товара кнопкой «В корзину».), для этого достаточно пункта «Динамическое изменение мини-корзины» данного руководства.

Документация в /core/components/msminicartdynamic/docs/readme.txt

Обсуждение компонента в сообществе MODX.PRO.

1.0.11-pl

  • [msMiniCartDynamic] - Fix. Получения чанка через pdoTools

1.0.10-pl1

  • Поддержка Fenom в сниппетах

1.0.10-pl

  • Добавлена возможность вставлять сниппеты в tpl
  • Поддержка Fenom

1.0.9-pl

  • [#2] - fix Вывод картинки

1.0.8-pl

  • [msminicartdynamic] - fix session_write_close();

1.0.7-pl

  • [msminicartdynamic] - Ошибка записи в сессию при пустой корзине

1.0.6-pl

  • Проверка наличия указанной картинки

1.0.5-pl

  • [msMiniCartDynamic] - Убран размер картинки, по умолчанию

1.0.4-pl

  • [msminicartdynamic] - Удаление товара из мини-корзины. Переход из корзины на страницу товара.

1.0.3-pl

  • [msminicartdynamic] - Исправлена ошибка "пустой корзины"

1.0.2-pl

  • [msminicartdynamic] - Добавлена картинка в мини-корзину

1.0.1-pl

  • [msminicartdynamic.js] - Обновление мини-корзины после удаления товара из корзины
  • [msDynamicCount] - стилизация кнопок +/- (Bootstrap3)
  • [msDynamicCountChange] - стилизация кнопок +/- (Bootstrap3)

1.0.0-pl

  • [msminicartdynamic.js] - Обновление мини корзины после стандартного добавления товара (без +/-)

1.0.3-beta4

  • [msminicartdynamic.js] - удалён отладочный код
  • [msminicartdynamic.js] - исправлена ошибка(+-)

1.0.3-beta3

  • [msDynamicCount] Убран атрибут disabled
  • [msDynamicCountChange] Убран атрибут disabled
  • [msminicartdynamic.js] - общие улучшения

Последние обсуждения в сообществе MODX.pro