msMiniCartDynamic

Динамическое обновление мини-корзины miniShop2
Версия 1.0.9-pl
Дата выпуска 21.04.2017
Загрузки 677
Просмотры 1 647
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !
Компонент 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.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