Требования к разработкам в магазине Webasyst

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

Содержание...
Проверьте свой продукт с помощью контрольного списка, чтобы пройти модерацию с первой попытки.
  1. В магазин Webasyst принимаются продукты четырех типов:
    • приложения,
    • плагины к приложениям, уже размещенным в магазине Webasyst,
    • темы дизайна для приложений, уже размещенных в магазине Webasyst,
    • виджеты для приложений, уже размещенных в магазине Webasyst.
  2. Файловая структура продукта должна соответствовать описанной в документации, конфигурационные файлы должны соответствовать формату, описанному в документации, инструкции по созданию необходимых таблиц в базе данных должны быть описаны в файле db.php для обеспечения автоматической установки приложения и его удаления приложением «Инсталлер».

    В конфигурационном файле продукта (app.php, plugin.php, widget.php или theme.xml) должен быть указан параметр vendorчисловой параметр, в котором необходимо указать идентификатор разработчика (Developer ID), полученный после регистрации в Центре заказчика в программе для разработчиков. Например:

    'vendor' => 12632,
    Тестирование установки продукта «Инсталлером» отдельно проводить не нужно, так как «Инсталлер» устанавливает продукты базовыми средствами фреймворка. Для проверки установки воспользуйтесь инструкцией по ручной установке приложения добавлением его в конфигурационный файл (для плагина — аналогично; для темы дизайна — путем загрузки с помощью встроенной функции веб-интерфейса «Загрузить тему»).
  3. Номер версии программного продукта должен состоять из 3 чисел, разделённых точкой, например: 1.0.0.
  4. Все текстовые файлы (PHP, HTML, JavaScript, CSS, SQL и т. д.) должны быть сохранены в кодировке UTF-8. Другие кодировки символов в Webasyst не поддерживаются.
  5. Если плагин использует собственные таблицы в базе данных фреймворка, то такие таблицы должны быть именованы в соответствии с правилом [app_id]_[plugin_id]_[table_name], например: shop_brands_brand.
  6. Продукт принимается в магазин Webasyst в виде архива в формате tar.gz. Архив должен содержать директорию, имя которой совпадает с идентификатором продукта. Например, если вы разработали плагин с идентификатором myplugin, то в архиве должна содержаться единственная директория с именем myplugin, внутри которой могут находиться поддиректории lib, locale, templates и т. п.
  7. Системные требования для установки и использования продукта (см. правила оформления системных требований) должны соответствовать базовым системным требованиям Вебасиста.
  8. В целях обеспечения безопасности использования и прозрачности проведения аудита в магазин Webasyst допускаются только продукты с открытым исходным кодом. Продукты с зашифрованным или обфусцированным серверным кодом PHP не допускаются. Минимизация, компилляция и/или обфускация клиентского кода HTML / CSS / JavaScript допускается и остается на усмотрение разработчика.

    Особое внимание уделяется аудиту безопасности продуктов. К публикации в магазине Webasyst не будут допущены продукты, в которых найдены уязвимости: SQL-инъекции, XSS и прочие. Администрация на свое усмотрение может предоставить пользователю рекомендации по улучшению исходного кода продукта.
  9. В директориях lib/, templates/, locale/ плагинов и приложений должен присутствовать файл .htaccess со следующим содержимым:
    Deny from all
        
    В директориях, содержащих файлы тем дизайна, должен присутствовать файл .htaccess со следующим содержимым:
    <FilesMatch "\.(php\d?|html?|xml)$">
        Deny from all
    </FilesMatch>
        
  10. Для повышения эффективности самостоятельного выявления ошибок в работе приложений и плагинов до отправки заявки на их публикацию в магазине Webasyst рекомендуется в начало файла wa-config/SystemConfig.class.php добавить следующие строки:
    error_reporting(E_ALL);
    ini_set('display_errors',1);
        
    Если использование этих PHP-функций на сервере разработки не разрешено, следует установить соответствующие значения конфигурации PHP другими, разрешенными на этом сервере, способами.
  11. Приложения и плагины должны сохранять пользовательские данные только в директории wa-data/ либо в базе данных. Сохранение, изменение или удаление каких-либо файлов в директориях wa-apps/, wa-content/, wa-installer/, wa-plugins/ и wa-system/ запрещено.
  12. Публичные методы PHP-классов не должны позволять произвольно изменять или удалять произвольные файлы или выполнять произвольные SQL-запросы к таблицам базы данных либо вызывать методы классов моделей при вызове таких методов в шаблонах Smarty.

    Чтобы заблокировать возможность такого опасного поведения, в коде метода должна быть проверка вида
    if (waConfig::get('is_template')) {
        return;
    }
  13. Продукты, имеющие в своем составе сторонние дополнительные продукты (библиотеки, демо-материалы, картинки, скрипты и пр.), разработанные третьими лицами, должны сопровождаться текстом лицензионного соглашения таких дополнительных продуктов в папке, в которой находится каждый такой дополнительный продукт, или соответствующими комментариями в его исходном коде. Включение в состав и использование продуктов третьих лиц должно допускаться условиями использования этих продуктов и не должно нарушать авторских прав.
  14. Продукты, требующие от пользователя обязательной регистрации на внешних ресурсах или обязательной оплаты (покупки) каких-либо дополнительных программных продуктов или услуг (непосредственно в интерфейсе продукта, в магазине Webasyst, на внешних сайтах), могут быть не допущены в магазин Webasyst.
  15. Продукт не должен хранить пароли и другие уязвимые данные в незащищенном виде, не должен без необходимости запрашивать у пользователя его контактную или авторизационную информацию любого рода, не должен использовать контактную информация пользователя для несанкционированной отправки ему материалов рекламного характера.
  16. Запрещается удаление, копирование или выгрузка данных приложений Вебасиста во внешние источники без явного уведомления об этом пользователя. Продукт должен сообщать о таких операциях явным образом и производить их только по команде или предварительной настройке пользователя.
  17. Продукт может расширять базовую функциональность, в том числе структуру базы данных, но не должен удалять из других установленных приложений и плагинов их базовые функции, например, файлы с исходным кодом, отдельные столбцы или целые таблицы в базе данных.
  18. Бекенд приложения не должен скрывать привычные элементы навигации: название аккаунта, иконки и ссылки доступных приложений, фотографию и имя пользователя и ссылку для выхода из бекенда. Если режим работы со скрытыми перечисленными элементами необходим для полноценного функционирования приложения, то инструменты для перехода в такой полноэкранный режим и выхода из него должны быть предложены пользователю явным образом.
  19. Плагины должны работать самостоятельно и для своей работы не должны требовать установки других плагинов.
  20. Виджеты должны работать как на персональной панели управления пользователя (на светлом фоне), так и на панелях управления Webasyst TV (на темном фоне).
  21. Программные продукты, взаимодействующие с Shop-Script, — плагины, приложения и темы дизайна, — должны декларировать наличие или отсутствие поддержки расширенных возможностей лицензии «ПРЕМИУМ». Это требование относится к публикации следующих продуктов и обновлений для них:
    • все плагины для Shop-Script;
    • все темы дизайна для Shop-Script;
    • фиксированный набор приложений, определённый администрацией Webasyst и опубликованный в документации.

    Для остальных продуктов, взаимодействующих с Shop-Script, объявление поддержки расширенной функциональности лицензии необязательно, но может помочь пользователям точнее определить, насколько полноценно они могут пользоваться возможностями лицензии «ПРЕМИУМ».

  22. Все новые приложения, плагины и виджеты должны поддерживать интерфейс Webasyst 2.
  23. Любое обновление приложения, плагина или виджета должно поддерживать интерфейс Webasyst 2.
  24. Продукт должен быть тщательно протестирован с учетом основных рекомендаций и контрольного списка.
  25. Описание и снимки продукта в магазине Webasyst должны соответствовать его фактическим возможностям. Название продукта не должно содержать полное или краткое описание продукта — для этого предусмотрены отдельные описательные поля.
  26. Иконки и логотипы:

    • Приложения: для приложения должны быть загружены иконки с размерами 96х96 и 48х48 пикселей. Формат — PNG с прозрачным фоном без анимации. Иконка 48х48 размещается в основном меню навигации в интерфейсе бекенда Вебасиста, 96х96 — в магазине Webasyst, а также подключается в интерфейсе бекенда для экранов с высоким разрешением (например, Retina).

      Рекомендуется также загрузить иконки с размерами 16х16 и 24х24 — они используются в приложении «Сайт», в меню фильтрации плагинов и тем дизайна по приложениям.
    • Плагины: обложка размером 200x110 пикселей. Формат — PNG с прозрачным фоном без анимации. Обложка должна отражать основную суть плагина и не содержать лишних элементов. Например, если плагин добавляет экспорт данных из Вебасиста в какой-то внешний сервис, то на обложке рекомендуется отобразить логотип этой системы, но не дополнять обложку стрелками, символизирующими движение данных.
    • Темы дизайна: обложка размера 600х660 пикселей, созданная из снимка темы дизайна. Формат — PNG с прозрачным фоном без анимации. Рекомендуемый коэффициент масштабирования — 50% (создавать эскиз шириной 600х660 пикселей из снимка шириной 1000—1200 пикселей).
  27. Скриншоты: магазин Webasyst автоматически масштабирует загружаемые скриншоты к размеру не более 970 пикселей по горизонтали (вертикальные габариты рассчитываются автоматически).

    Рекомендации по подготовке скриншотов

    • упоминание доменного имени: yourdomain.com или yourdomain.ru
    • название компании: «Your Company», «Ваша компания», «Webasyst»
    • исходное изображение: не более 1300 пикселей по горизонтали
  28. Выделение и продвижение приложений в магазине Webasyst определяется исключительно на усмотрение редакции Webasyst. Основными критериями являются качество продукта, внимание к деталям, стабильность работы, востребованность продукта пользователями Вебасиста.

    Важную роль в решении выделения продукта играет качество описания продукта: название, иконка (обложка), скриншоты, описания. В случае несоответствия описания возможностям (например, продукт называется «Умная фильтрация», хотя при этом ничего «умного» в работе продукта нет) продукт с наибольшей вероятностью не будет рекомендован покупателям.
  29. Если новый продукт, отправленный на публикацию, не соответствует минимальным критериям качества, которые определяются на усмотрение редакции Webasyst, или же будет явным и ничем не примечательным клоном ранее опубликованных продуктов, то продукт хотя и будет принят к публикации, но в общих списках магазина Webasyst виден не будет — ему будет поставлен тег unlisted. Продукт можно будет найти только по прямой ссылке.
  30. «Powered by». Тема дизайна (родительская или дочерняя) должна содержать ссылку на сайт www.webasyst.ru или www.shop-script.ru с информацией о том, что данный сайт работает на основе Webasyst или Shop-Script. Дополнительно автор темы дизайна в праве разместить ссылку на свой ресурс, но только в дополнение к ссылке на один из сайтов платформы.

    Рекомендуется обратить внимание на то, как ссылки «Powered by» реализованы в теме дизайна «Дефолт».
  31. В описании и пользовательском интерфейсе продукта разрешается рекламировать собственные и партнерские продукты и услуги, если эта реклама не блокирует заявленную функциональность продукта и не принуждает пользователя к обязательным дополнительным покупкам или посторонним активным действиям, например, к обязательной регистрации в сервисе, не имеющем отношения к функциональности продукта.

Терминология

applications apps
WebAsyst webasyst WA Webasyst
ВебАсист вебасист Вебасист
Шоп-скрипт Shop-script Shop-Script
Webasyst store Webasyst Store
Магазин Вебасиста Магазин Webasyst
Customer center Customer Center
Центр Заказчика Центр заказчика

Слова «интернет» и «вы» начинаются со строчной буквы.

Пунктуация:
- русские кавычки: « »
- английские кавычки: “ ”
- тире: — (&mdash;)

Все адреса сайтов Вебасиста пишутся с www:
webasyst.com www.webasyst.com
shop-script.ru www.shop-script.ru

Заголовок <title> основной страницы продукта в магазине Webasyst:
SUMMARY – APP_NAME app – Webasyst Store
SUMMARY – APP_NAME – Магазин Webasyst
Например: «Bulk email marketing and newsletter tool – Mailer app – Webasyst store».

Заголовки на английском языке: «горбатый» стиль написания (когда каждое новое слово пишется с большой буквы) не соблюдается.

Технические и заимствованные термины: экшен, фронтенд, бекенд, браузер, роутинг (маршрутизация).