Павел Гвоздь
С нами с 31 мая 2015; Место в рейтинге пользователей: #4[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек

В комментах к прошлому апдейту компонента подкинули идею добавить поддержку VK Video. Мне стало интересно, а возможно ли с этого сервиса получать такие же данные, как например с Youtube или Rutube. Оказалось, что это сложнее, чем может показаться. Ни гуглинг, ни тесты через их странное API не дали никаких результатов. Да и к тому же, ради парсинга самых простых данных видеоролика (заголовок, превью, embed url), заставлять людей создавать приложение в инструментах разработчика VK и указывать app_id/secret – не комильфо!
Поэтому я решил пойти другим путём и парсить эти данные прямо с веб версии… не знаю, как долго проживёт данный способ, но пока он работает отлично! Кстати, помимо заголовка, превью и embed url, через морду удаётся парсить описание и длительность ролика. Так что пользуйтесь, пока работает! =)
[videoGallery] 1.3.0 Поддержка MIGX

Давно хотел внедрить поддержку MIGX, тем более, что уже очень давно пользователь Гитхаб под ником
SintezCode отправил PR для этого. Единственное, у меня было несколько правок по его коду, поэтому никак не доходили руки, чтобы этим заняться.
[CurrencyCalc] 1.1.4 Новый источник Free Currency Rates API

В Гитхаб есть отличный бесплатный источник курсов валют – Free Currency Rates API. Там парень по имени Fawaz Ahmed на добровольной основе создал это бесплатное API, за что ему большое спасибо!
Прелесть данного источника в том, что в нём есть курс BTC, ETH и некоторых других криптовалют (например, хлам типа DOGE или XRP). Полный список всех валют данного источника смотреть так.
Я решил, что данное API стоит добавить в мой компонент CurrencyCalc. Также из компонента был удалён бесполезный рудимент – сто лет как устаревший YahooApis. На этом пока всё. =)
P.S. Давно я ничего не писал сюда… возвращаться оказалось сложнее, чем я думал. К слову, компонент не обновлялся аж с 2016 года – пусть это будет символом моего возвращения!
[AjaxForm] 1.2.0 Поддержка отключённых сессий у анонимов
Наконец-то дошли руки допилить AjaxForm. Была проблема при отключённых сессиях для анонимов (настройка anonymous_sessions, указывается только для контекстов!) – сессии отключены, а значит пробросить параметры сниппета, которые необходимы при ajax действиях, невозможно.

Теперь, в новой версии, если сессии включены или вы авторизованы на сайте в админке (что соответственно создаёт сессию), работа происходит как и раньше через сессии. А если сессия отключена, то параметры сниппета пробрасываются через кеш сайта – в кеше создаётся файл с параметрами сниппета.
Также, влил некоторые PR, которые давно висели:
– Украинский язык,
– Параметр сниппета clearFieldsOnSuccess, который говорит, надо ли очищать форму при успешной её отправке,
– В отправляемые данные добавлена передача value кнопки, которую юзер нажал (удобно, если на форме несколько кнопок),
– В default.js заменён document.write на document.body.appendChild,
– Вырезан type="text/javascript" из тега <script> при инициализации на фронте.

Теперь, в новой версии, если сессии включены или вы авторизованы на сайте в админке (что соответственно создаёт сессию), работа происходит как и раньше через сессии. А если сессия отключена, то параметры сниппета пробрасываются через кеш сайта – в кеше создаётся файл с параметрами сниппета.
Также, влил некоторые PR, которые давно висели:
– Украинский язык,
– Параметр сниппета clearFieldsOnSuccess, который говорит, надо ли очищать форму при успешной её отправке,
– В отправляемые данные добавлена передача value кнопки, которую юзер нажал (удобно, если на форме несколько кнопок),
– В default.js заменён document.write на document.body.appendChild,
– Вырезан type="text/javascript" из тега <script> при инициализации на фронте.
[xLike] 1.1.2 Работа с отключенными сессиями для анонимов и поддержка IPv6
Если вам, как и мне, нужно ограничивать анонимов в сессиях, чтобы таблица с сессиями не заполнялась на несколько тысяч записей за 10 минут, то вместе с этим вам придётся столкнуться с некоторыми трудностями. Например, когда в сессию пишутся параметры сниппета для проброса их в какой-нибудь action.php, чтобы не делать этого прямиком через фронтенд.
Отключив сессии для анонимов на сайте, xLike перестал корректно работать, выдавая ошибку при попытке проголосовать. Происходит это, потому что session_id в нём играл основную роль для идентификации юзера, даже при включённой проверке по IP. А проблема заключалась как раз в том, что сниппет xLike пишет в сессию свои параметры, которые необходимы в момент установки голоса пользователем.
Отключив сессии для анонимов на сайте, xLike перестал корректно работать, выдавая ошибку при попытке проголосовать. Происходит это, потому что session_id в нём играл основную роль для идентификации юзера, даже при включённой проверке по IP. А проблема заключалась как раз в том, что сниппет xLike пишет в сессию свои параметры, которые необходимы в момент установки голоса пользователем.[Расширяем miniShop2] Быстрая смена статуса заказа через контекстное меню

Заказчика запарило для смены статуса лазать в полное редактирование заказа, попросил сделать что-то быстрое и простое. На скриншоте выше конечный результат. Чтобы получить такой же, файлы из этого репозитория закиньте себе в папку /assets/ и создайте плагин, который описан в конце статьи. Однако, я настоятельно рекомендую почитать статью, чтобы понимать принцип расширения всего этого дела.
[msPromoCode2] Кейс. Генерация промо-кода в письме на следующий заказ

Не так давно в документации к msPromoCode2 появился интересный кейс, при помощи которого можно поднять процент повторных продаж на сайте. Работает так:
- Клиент оплачивает заказ,
- Статус заказа меняется на «Оплачено»,
- В письме ему приходит промо-код на следующий заказ, который действителен в течение месяца.
[msPromoCode2] 1.1.12 Обратный отсчёт для сгенеренного промо-кода
Сниппет mspc2Generate позволяет сгенерировать промо-код для любого юзера, находящегося на сайте в течение определённого времени. Этот сниппет был не особо функционален. Всё что он позволял – это сгенерировать промо-код для юзера через N секунд после вызова сниппета. Делал он это хорошо, однако ему не хватало больших настроек. До версии 1.1.12 не было возможности ни задать время жизни такого купона, ни каких-то дополнительных «галочек» из конфига. Сразу скажу – теперь всё это возможно + для промо-кода с указанным временем жизни в окошке появляется обратный отсчёт. Это очень хороший стимул для клиента сделать заказ прямо сейчас, поэтому обновляйтесь! При обновлении надо обновить чанк tpl.msPromoCode2.generate.
[msEmailTab] Вкладка отправки email в заказе

Компонент безумно прост! В админке у заказа добавляется вкладка «Отправить Email», соответственно с возможностью отправки email на почту клиента с произвольным текстом.
В контенте письма можно использовать Fenom:
{$order | print}
{$total | print}
{$delivery | print}
{$payment | print}
{$address | print}
{$products | print}
{$user | print}Скачать в Modstore бесплатно
Весенние скидки на пакеты Гвоздя -20% до 31 марта

Всем привет! У меня распродажа моих компонентов в честь весеннего нового года (Новруз, Наурыз). Налетайте! Вот список пакетов, которые могут вас заинтересовать:
- msPromoCode2
- msBonus2
- xParser
- allGifts
- xCalc
- msPromoCode
- YandexMaps2
- msDeliveryOnMap
- msOrderFiles
- msAreaOrder
- msWallpapers
- textAdvs
- mseRedirect
- imgArea
- msKuponator
- mspRfiBank
- mspiPayBy
- msBitrixCatalog