Новые дополнения и их версии
[mspReceiptAccount] Квитанция и счет на оплату
[Twiggy] - шаблонизатор TWIG в MODX Revolution
Пакет Twiggy представляет из себя парсер расширяющий modParser.
Twiggy перехватывает обработку twig тегов на странице.
Подробнее ознакомится с TWIG можно на официальном сайте и на сайте сообщества TWIG.
При установке пакета в контексте web создаются две настройки:
Twiggy перехватывает обработку twig тегов на странице.
Подробнее ознакомится с TWIG можно на официальном сайте и на сайте сообщества TWIG.
При установке пакета в контексте web создаются две настройки:
- parser_class — класс парсера
- parser_class_path — путь к классу парсера
[msPromoCode] Скидочные промо-коды для miniShop2
- Полная AJAX обработка применения/удаления купона к заказу.
- Промо-код можно добавить не только с основной страницы бекенда. На странице товара также есть вкладка "Промо-коды", при добавлении кода из которой текущий товар сразу привяжется к этому промо-коду. Это очень удобно, когда надо добавить купон только для одного товара.
- Если к купону не привязано ниодного товара или раздела — купон действует на весь магазин.
- Скидку можно указать, как для купона в целом, так и для товара или раздела, привязанного к купону. При этом, чем индивидуальнее будет указана скидка, тем она первостепеннее будет восприниматься компонентом. К примеру, у нас есть купон со скидкой 20%, есть Раздел 1, привязанный к этому купону, со скидкой 80% и есть товар лежащий в Разделе 1, привязанный к этому купону, со скидкой 40%. Для данного товара скидка будет 40%.
- При отправке заказа, ровно как и при открытии страницы со сниппетом [[!mspcForm]], компонент проверяет, действителен ли ещё купон. Если нет, то сообщает об этом юзеру, удаляет купон из формы и обновляет цены. Это делает невозможным воспользоваться купоном:
а) который был отключён,
б) время действия которого завершилось,
в) количество которого закончилось.
- Если заказ был оформлен с промо-кодом, то в бекенде в модальном окне заказа вверху на первой вкладке появится промо-код и сумма скидки.
- JS на странице вызова сниппета [[!mspcForm]] вызывается в конце страницы для того, чтобы ваши колбеки miniShop2, которые могут пересекаться с используемыми в пакете, были клонированы и успешно выполнены.
msImportExport
Вторая версия пакета обсуждается в только в этом посте
Компонент предназначен для импорта экспорта товаров для miniShop2
Импорт
Импорт происходит из CSV файла. На основании ключевого поля (которое указывается в настройках и по умолчанию имеет значение «article») будет происходить либо добавление нового товара, либо его обновление.
При добавлении нового товара если не указан для него родитель, то товар будет добавлен в базовую категорию.
Компонент предназначен для импорта экспорта товаров для miniShop2
Импорт
Импорт происходит из CSV файла. На основании ключевого поля (которое указывается в настройках и по умолчанию имеет значение «article») будет происходить либо добавление нового товара, либо его обновление.
При добавлении нового товара если не указан для него родитель, то товар будет добавлен в базовую категорию.
[pdoTools] Версия 2.2 c модификаторами Fenom
Представляю вам новую версию pdoTools 2.2.0-pl, в которой вы можете задавать свои модификаторы для использования в Fenom.
Для этого придумана системная настройка pdotools_fenom_modifiers, в которой вы можете указать нужные сниппеты через запятую.
То, что указано в этой настройке, будет доступно глобально, для всех вызовов pdoTools. Также у вас есть возможность указать конкретные модификаторы для определённого вызова сниппета:
Для этого придумана системная настройка pdotools_fenom_modifiers, в которой вы можете указать нужные сниппеты через запятую.
То, что указано в этой настройке, будет доступно глобально, для всех вызовов pdoTools. Также у вас есть возможность указать конкретные модификаторы для определённого вызова сниппета:
[[!pdoResources?
&parents=`0`
&fenomModifiers=`dateAgo`
&tpl=`@INLINE <p>{$id} - {$pagetitle} {$createdon | dateago}</p>`
]]
Как можно заметить, модификаторы указываются через |. [mSearch2] 1.5.2 - произвольные слова в индексе
Представляю вам новую версию mSearch2 с небольшим, но очень важным изменением в логике работы индексации.
Теперь вы можете добавлять любые произвольные поля и слова в индекс буквально на лету, свои плагином на событие mse2OnBeforeSearchIndex:
Теперь вы можете добавлять любые произвольные поля и слова в индекс буквально на лету, свои плагином на событие mse2OnBeforeSearchIndex:
<?php
switch ($modx->event->name) {
case 'mse2OnBeforeSearchIndex':
$mSearch2->fields['my_field'] = 1;
$resource->set('my_field', 'My Words');
if ($resource->get('class_key') == 'msProduct') {
$mSearch2->fields['product_field'] = 1;
$resource->set('product_field', 'Product Property');
}
break;
}
[customExtra] Создание кастомных объектов
Периодически мне приходится реализовывать на сайтах клиентов какой-то уникальный функционал. Часто требуется сохранять информацию в базу данных, выводить её оттуда, реализовывать возможность управления из админки. Раньше для этого приходилось писать кастомный компонент.
А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.
Недавно я все-таки решился собрать некий стандартный компонент, с большим количеством полей, которые можно использовать как угодно. Даже написал небольшую заметку о нем у себя в блоге и на какое-то время успокоился.
До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.
Недавно я все-таки решился собрать некий стандартный компонент, с большим количеством полей, которые можно использовать как угодно. Даже написал небольшую заметку о нем у себя в блоге и на какое-то время успокоился.
До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
[imgArea] Удобная визуальная расстановка областей (map, area) на изображениях
[ChangePack]-Компонент синхронизации копии сайта
Привет всем, сейчас разрабатываю сайт на MODx. Сайт делаю на локалхост, а затем копирую его в интернет. Сейчас, синхронизацию изменений, можно, делать sql-дампом. Но, скоро, сайт станет работать и, при этом, надо еще будет допиливать его. Стала задача забрасывать на рабочий сайт изменения, при этом не трогая его рабочие данные. Как, истинно, ленивый, решил это дело автоматизировать и написал компонент.
[sFilters] - Динамические свойства товаров для MS2
Привет всем, как-то меня посетила мысль: а не плохо было бы сделать удобным создание и размещение новых свойств товара (динамически), таким образом, чтобы это не представляло трудности для программиста, не отнимало у него кучу времени на правильную настройку и объяснение менеджерам сайта как они должны заполнять те или иные опции у товарах чтоб в итоге он работал так как надо.
Вкратце: получился отличный плагин который позволяет гибко управлять свойствами товаров не думая о том, что одни классы могут переписать другие или о том как заставить работать вместе компонентов разных авторов купленных в магазине, но очень нужных в хозяйстве.
Вкратце: получился отличный плагин который позволяет гибко управлять свойствами товаров не думая о том, что одни классы могут переписать другие или о том как заставить работать вместе компонентов разных авторов купленных в магазине, но очень нужных в хозяйстве.