Почему я не поддерживаю мультивитринность в плагинах?

3 января 2021 (46 просмотров)

Все мои плагины корректно работают на всех витринах, настроенных в Webasyst. К примеру, если вы включили плагин "Нормальная маска телефона", и у вас имеется, например, 5 витрин:

  • site1.ru
  • site2.ru
  • msk.site2.ru
  • spb.site2.ru
  • ekb.site2.ru

То маска телефона будет корректно работать на всех 5 витринах. Если же вы в настройках плагина отключите плагин, то плагин перестанет работать на всех 5-ти витринах.

Что означает "Плагин не поддерживает мультивитринность"?

Под данным понятием подразумевается вовсе не то что плагин работает только на какой-нибудь основной витрине сайта или только на основном домене. "Не поддерживает мультивитринность" - означает, что в плагине не предусмотрена возможность сделать одни настройки для какой-либо одной витрины, и другие настройки - для другой витрины.

Какие плагины поддерживают мультивитринность?

Главный "Чемпион" в маркете Webasyst по поддержке мультивитринности в плагинах - это мой бывший работодатель - компания Bodysite. Мало того, что они пихают эти настройки без разбора практически во все свои продукты, так они пошли еще дальше и ввели такое понятие как "группа витрин", и позволили производить настройки для группы витрин.

Удобно ли использовать мультивитринность?

Мне - нет. Если речь идет о шаблонах мета-тегов в плагине "SEO-оптимизация", то мне гораздо удобнее для вывода разного контента для разных витрин использовать общий шаблон для всех витрин с конструкциями "{if} - {else}", чем переключаться в разные вкладки плагина. Я люблю, когда все просматривается и редактируется в одном окне. Это значительно экономит время. И я жутко не люблю когда приходит новый проект, в котором предыдущий подрядчик активно использовал этот "навороченный функционал": для того, чтобы разобраться где какие шаблоны настроены, приходится потратить немало времени. Особенно я ненавижу, когда в плагине "SEO-оптимизация" используются шаблоны мета-тегов для подкатегорий. Чтобы понять какие шаблоны генерируют итоговый текст и чтобы добраться до каждого из них, потребуется уйма времени.

Почему я не поддерживаю мультивитринность в своих плагинах?

Во-первых:

Мои плагины в 99% случаях не требуют разных настроек для разных витрин. Не вижу особого смысла в том, чтобы давать возможность включать маску для телефона на одной из витрин, но отключать ее на другой. Также не вижу смысла давать возможность включать вывод метатега "robots" или тега "link canonical" для одного типа страниц на одной витрине, но при этом отключать вывод - на другой витрине. Я сторонник того, чтобы плагины содержали только действительно нужный функционал и не хочу городить лишние неиспользуемые на практике настройки.

Во-вторых:

Я убежден, что Webasyst должен внедрить поддержку мультивитринности плагинов на уровне движка и я принципиально не хочу тратить свое время на то, чтобы изобретать велосипеды в своих плагинах, как это вынужденно делают некоторые другие разработчики-партнеры.

Цитирую разработчика "IT Frogs": «Считаю, что такая вещь, как наличие профилей для разных витрин, должна быть централизованной. Сейчас каждый городит свой огород за средства клиентов, которым приспичило иметь разные настройки на разных витринах. (...) Считаю, что, раз уж вебасист пропагандирует мультивитринность, то нужно довести это дело до конца. А сейчас как-то серединка на половинку.»

Я полностью согласен с данной позицией. На момент публикации данной статьи, созданная мной тема поддержки мультивитринности на уровне движка, а не на уровне плагинов висит на форуме разработчиков. Надеюсь, когда-нибудь уважаемые разработчики Webasyst обратят на нее внимание и подумают над идеей. И пользователям и разработчикам будет гораздо проще, если в самом движке будет встроена поддержка мультивитринности для всех продуктов.