Проверьте свой продукт с помощью контрольного списка, чтобы пройти модерацию с первой попытки.
- В магазин Webasyst принимаются продукты четырех типов:
- приложения,
- плагины к приложениям, уже размещенным в магазине Webasyst,
- темы дизайна для приложений, уже размещенных в магазине Webasyst,
- виджеты для приложений, уже размещенных в магазине Webasyst.
- Файловая структура продукта должна соответствовать описанной в документации, конфигурационные файлы должны соответствовать формату, описанному в документации, инструкции по созданию необходимых таблиц в базе данных должны быть описаны в файле
db.php
для обеспечения автоматической установки приложения и его удаления приложением «Инсталлер».
В конфигурационном файле продукта (app.php
,plugin.php
,widget.php
илиtheme.xml
) должен быть указан параметрvendor
— числовой параметр, в котором необходимо указать идентификатор разработчика (Developer ID), полученный после регистрации в Центре заказчика в программе для разработчиков. Например:
'vendor' => 12632,
Тестирование установки продукта «Инсталлером» отдельно проводить не нужно, так как «Инсталлер» устанавливает продукты базовыми средствами фреймворка. Для проверки установки воспользуйтесь инструкцией по ручной установке приложения добавлением его в конфигурационный файл (для плагина — аналогично; для темы дизайна — путем загрузки с помощью встроенной функции веб-интерфейса «Загрузить тему»). - Номер версии программного продукта должен состоять из 3 чисел, разделённых точкой, например: 1.0.0.
- Все текстовые файлы (PHP, HTML, JavaScript, CSS, SQL и т. д.) должны быть сохранены в кодировке UTF-8. Другие кодировки символов в Webasyst не поддерживаются.
- Если плагин использует собственные таблицы в базе данных фреймворка, то такие таблицы должны быть именованы в соответствии с правилом
[app_id]_[plugin_id]_[table_name]
, например:shop_brands_brand
. -
Продукт принимается в магазин Webasyst в виде архива в формате tar.gz. Архив должен содержать директорию, имя которой совпадает с идентификатором продукта. Например, если вы разработали плагин с идентификатором
myplugin
, то в архиве должна содержаться единственная директория с именемmyplugin
, внутри которой могут находиться поддиректорииlib
,locale
,templates
и т. п. - Системные требования для установки и использования продукта (см. правила оформления системных требований) должны соответствовать базовым системным требованиям Вебасиста.
- В целях обеспечения безопасности использования и прозрачности проведения аудита в магазин Webasyst допускаются только продукты с открытым исходным кодом. Продукты с зашифрованным или обфусцированным серверным кодом PHP не допускаются. Минимизация, компилляция и/или обфускация клиентского кода HTML / CSS / JavaScript допускается и остается на усмотрение разработчика.
Особое внимание уделяется аудиту безопасности продуктов. К публикации в магазине Webasyst не будут допущены продукты, в которых найдены уязвимости: SQL-инъекции, XSS и прочие. Администрация на свое усмотрение может предоставить пользователю рекомендации по улучшению исходного кода продукта. -
В директориях
lib/
,templates/
,locale/
плагинов и приложений должен присутствовать файл.htaccess
со следующим содержимым:Deny from all
В директориях, содержащих файлы тем дизайна, должен присутствовать файл.htaccess
со следующим содержимым:<FilesMatch "\.(php\d?|html?|xml)$"> Deny from all </FilesMatch>
-
Для повышения эффективности самостоятельного выявления ошибок в работе приложений и плагинов до отправки заявки на их публикацию в магазине Webasyst рекомендуется в начало файла
wa-config/SystemConfig.class.php
добавить следующие строки:error_reporting(E_ALL); ini_set('display_errors',1);
Если использование этих PHP-функций на сервере разработки не разрешено, следует установить соответствующие значения конфигурации PHP другими, разрешенными на этом сервере, способами. - Приложения и плагины должны сохранять пользовательские данные только в директории
wa-data/
либо в базе данных. Сохранение, изменение или удаление каких-либо файлов в директорияхwa-apps/
,wa-content/
,wa-installer/
,wa-plugins/
иwa-system/
запрещено. - Публичные методы PHP-классов не должны позволять произвольно изменять или удалять произвольные файлы или выполнять произвольные SQL-запросы к таблицам базы данных либо вызывать методы классов моделей при вызове таких методов в шаблонах Smarty.
Чтобы заблокировать возможность такого опасного поведения, в коде метода должна быть проверка видаif (waConfig::get('is_template')) { return; }
- Продукты, имеющие в своем составе сторонние дополнительные продукты (библиотеки, демо-материалы, картинки, скрипты и пр.), разработанные третьими лицами, должны сопровождаться текстом лицензионного соглашения таких дополнительных продуктов в папке, в которой находится каждый такой дополнительный продукт, или соответствующими комментариями в его исходном коде. Включение в состав и использование продуктов третьих лиц должно допускаться условиями использования этих продуктов и не должно нарушать авторских прав.
- Продукты, требующие от пользователя обязательной регистрации на внешних ресурсах или обязательной оплаты (покупки) каких-либо дополнительных программных продуктов или услуг (непосредственно в интерфейсе продукта, в магазине Webasyst, на внешних сайтах), могут быть не допущены в магазин Webasyst.
- Продукт не должен хранить пароли и другие уязвимые данные в незащищенном виде, не должен без необходимости запрашивать у пользователя его контактную или авторизационную информацию любого рода, не должен использовать контактную информация пользователя для несанкционированной отправки ему материалов рекламного характера.
- Запрещается удаление, копирование или выгрузка данных приложений Вебасиста во внешние источники без явного уведомления об этом пользователя. Продукт должен сообщать о таких операциях явным образом и производить их только по команде или предварительной настройке пользователя.
- Продукт может расширять базовую функциональность, в том числе структуру базы данных, но не должен удалять из других установленных приложений и плагинов их базовые функции, например, файлы с исходным кодом, отдельные столбцы или целые таблицы в базе данных.
- Бекенд приложения не должен скрывать привычные элементы навигации: название аккаунта, иконки и ссылки доступных приложений, фотографию и имя пользователя и ссылку для выхода из бекенда. Если режим работы со скрытыми перечисленными элементами необходим для полноценного функционирования приложения, то инструменты для перехода в такой полноэкранный режим и выхода из него должны быть предложены пользователю явным образом.
- Плагины должны работать самостоятельно и для своей работы не должны требовать установки других плагинов.
- Виджеты должны работать как на персональной панели управления пользователя (на светлом фоне), так и на панелях управления Webasyst TV (на темном фоне).
- Программные продукты, взаимодействующие с Shop-Script, — плагины, приложения и темы дизайна, — должны декларировать наличие или отсутствие поддержки расширенных возможностей лицензии «ПРЕМИУМ». Это требование относится к публикации следующих продуктов и обновлений для них:
- все плагины для Shop-Script;
- все темы дизайна для Shop-Script;
- фиксированный набор приложений, определённый администрацией Webasyst и опубликованный в документации.
Для остальных продуктов, взаимодействующих с Shop-Script, объявление поддержки расширенной функциональности лицензии необязательно, но может помочь пользователям точнее определить, насколько полноценно они могут пользоваться возможностями лицензии «ПРЕМИУМ».
- Все новые приложения, плагины и виджеты должны поддерживать интерфейс Webasyst 2.
- Любое обновление приложения, плагина или виджета должно поддерживать интерфейс Webasyst 2.
- Продукт должен быть тщательно протестирован с учетом основных рекомендаций и контрольного списка.
- Описание и снимки продукта в магазине Webasyst должны соответствовать его фактическим возможностям. Название продукта не должно содержать полное или краткое описание продукта — для этого предусмотрены отдельные описательные поля.
-
Иконки и логотипы:
- Приложения: для приложения должны быть загружены иконки с размерами 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 пикселей).
- Приложения: для приложения должны быть загружены иконки с размерами 96х96 и 48х48 пикселей. Формат — PNG с прозрачным фоном без анимации. Иконка 48х48 размещается в основном меню навигации в интерфейсе бекенда Вебасиста, 96х96 — в магазине Webasyst, а также подключается в интерфейсе бекенда для экранов с высоким разрешением (например, Retina).
-
Скриншоты: магазин Webasyst автоматически масштабирует загружаемые скриншоты к размеру не более 970 пикселей по горизонтали (вертикальные габариты рассчитываются автоматически).
Рекомендации по подготовке скриншотов
- упоминание доменного имени:
yourdomain.com
илиyourdomain.ru
- название компании: «Your Company», «Ваша компания», «Webasyst»
- исходное изображение: не более 1300 пикселей по горизонтали
- упоминание доменного имени:
- Выделение и продвижение приложений в магазине Webasyst определяется исключительно на усмотрение редакции Webasyst. Основными критериями являются качество продукта, внимание к деталям, стабильность работы, востребованность продукта пользователями Вебасиста.
Важную роль в решении выделения продукта играет качество описания продукта: название, иконка (обложка), скриншоты, описания. В случае несоответствия описания возможностям (например, продукт называется «Умная фильтрация», хотя при этом ничего «умного» в работе продукта нет) продукт с наибольшей вероятностью не будет рекомендован покупателям. - Если новый продукт, отправленный на публикацию, не соответствует минимальным критериям качества, которые определяются на усмотрение редакции Webasyst, или же будет явным и ничем не примечательным клоном ранее опубликованных продуктов, то продукт хотя и будет принят к публикации, но в общих списках магазина Webasyst виден не будет — ему будет поставлен тег unlisted. Продукт можно будет найти только по прямой ссылке.
- «Powered by». Тема дизайна (родительская или дочерняя) должна содержать ссылку на сайт www.webasyst.ru или www.shop-script.ru с информацией о том, что данный сайт работает на основе Webasyst или Shop-Script. Дополнительно автор темы дизайна в праве разместить ссылку на свой ресурс, но только в дополнение к ссылке на один из сайтов платформы.
Рекомендуется обратить внимание на то, как ссылки «Powered by» реализованы в теме дизайна «Дефолт». - В описании и пользовательском интерфейсе продукта разрешается рекламировать собственные и партнерские продукты и услуги, если эта реклама не блокирует заявленную функциональность продукта и не принуждает пользователя к обязательным дополнительным покупкам или посторонним активным действиям, например, к обязательной регистрации в сервисе, не имеющем отношения к функциональности продукта.
Терминология
applications apps
WebAsyst webasyst WA Webasyst
ВебАсист вебасист Вебасист
Шоп-скрипт Shop-script Shop-Script
Webasyst store Webasyst Store
Магазин Вебасиста Магазин Webasyst
Customer center Customer Center
Центр Заказчика Центр заказчика
Слова «интернет» и «вы» начинаются со строчной буквы.
Пунктуация:
- русские кавычки: « »
- английские кавычки: “ ”
- тире: — (—)
Все адреса сайтов Вебасиста пишутся с 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».
Заголовки на английском языке: «горбатый» стиль написания (когда каждое новое слово пишется с большой буквы) не соблюдается.
Технические и заимствованные термины: экшен, фронтенд, бекенд, браузер, роутинг (маршрутизация).