Posts tagged with: shop-script

Modification of webasyst’s and Shop-Script 6′ classes, that doesn’t overwriting during update

Shorlty:

How to change code of webasyst framework, apps and plugins, based on it, and, meanwhile, not indulge in updates, without need of manually track updated files,

Как вносить изменения в код фреймворка Webasyst, приложений и плагинов, написанных на нём, так, чтобы не отказываться от обновлений, не отслеживать вручную изменившиеся файлы, при этом, чтобы изменения хранились отдельно от самого кода и хорошо поддавались контролю версий git или других VCS? В этой статье будет предложен почти идеальный способ.


Консольные команды в плагине webasyst и Shop-Script 5/6 в частности

В документации по фреймворку webasyst описано, как создавать консольные команды, то есть команды которые можно вызывать из консоли, без участия веб-сервера.
Статья справки размещена здесь: www.webasyst.ru/developers/docs/features/cli/
Минус описанного в ней метода в том, что скрипт придётся помещать в папку wa-apps/[APP_ID]/lib/cli, то есть фактически в папку с приложением класть свой код, что приведёт в конечном итоге к бардаку и хаосу.

Также, в справочной системе есть статья о плагинах, где написано, что плагины тоже могут иметь консольные команды.
вот эта статья: www.webasyst.ru/help/98/shop-script-5-plugin-development/

Однако, как совместить консольные скрипты и плагины – не сказано.
Поскольку ждать ответа от техподдержки можно долго, я предпочел самостоятельно расковырять исходный код, и найти как поместить консольный скрипт в свой плагин.

Continue Reading


Создание плагина для бэкэнда Webasyst Shop-script 5

Цель и смысл создания плагина

Зачем вообще создавать плагины для Webasyst, Если можно просто “поковыряться” в коде приложения (того же Shop-Script 5) и изменить всё прямо там?

Я задался таким вопросом, и попытался пойти напролом без всяких плагинов. Довольно быстро я обнаружил, что при этом начинаются проблемы с автоматическими обновлениями – приходится вручную отслеживать все обновлённые инсталлером файлы, и переносить из них изменения в “актуальные версии файлов”, например с помощью утилит diffuse или meld, ну или консольных diff, если совсем по хардкору. Со временем это превращается в кошмар.

UPD: Спустя некоторое время после написания этого поста я сделал движок “патчинга на лету”, который позволяет хранить изменения файлов отдельно от основного кода, подверженного обновлениям, и применять их автоматически, вот этот движок: Monkey Patching для webasyst

Поэтому, наиболее простой вариант – создание плагинов, а если для них недостаточно “хуков” (это точки вызовов событий, на которые плагин можно подписать), то либо клянчить новые хуки у разработчиков либо, так уж и быть, добавить свои прямо в код.

Причина написания этой статьи

Так как справка по этой теме по состоянию на середину 2014 года весьма бедная (кстати вот она: http://www.webasyst.ru/developers/docs/plugins/ ), приходится изучать её при помощи ковыряния в готовых плагинах, и отладчика XDebug. Жаль что он не умеет “заглядывать” в Smarty-файлы шаблонов…

На форуме forum.webasyst.ru есть немного информации по теме, но чувствуется, что людям незачем делиться ей бесплатно, так как они зарабатывают разработкой плагинов за деньги. Хотя, может быть, они бы и рады поделиться, но работа отнимает всё свободное время, и просто некогда сидеть на форумах.

Поделюсь с неопределенным кругом лиц добытыми знаниями, чтобы сэкономить суммарное время и энергию, потраченное человечеством на решение той же самой задачи N раз.
Continue Reading