Apps - це модуль, що позиціонується як наступний крок у розвитку фіч. Для нас, зокрема, він видається більш зрозумілим та зручним саме в якості інструментарію для додавання на сайт нових можливостей, при чому виконувати ці додавання із його допомогою можна без жодної шкоди для юзабіліті. Та найголовніше те, що модуль Apps, як інструмент для роботи,буде зрозумілим не лише продвинутому друпалеру, а й звичайному користувачу. Відтепер додавати новий функціонал - при допомозі даного модуля - ваші клієнти зможуть просто одним кліком (Install app).
Звичайному користувачу apps швидше за все нагадає chrome web store, де кожен вибирає собі той “додаток” до базової версії CommerceBox, котрий йому потрібен. Apps, завважимо, складається з двох частин - серверної та клієнтської. Клієнтська частина модуля виводить список всіх доступних до встановлення додатків, а також, оповіщає користувача про поновлення, які щойно вийшли. Серверну частину забезпечує модуль appServer. Він займається тим, що вертає json об'єкт з даними по кожному app-у (з назвами, рейтингами, версіями і т.д.) клієнтської частини. Тож розглянемо все в деталях.
Налаштування серверної частини
Як описано вище, за серверну частину відповідає модуль appServer, з допомогою якого можна через UI налаштувати apps-и. Він створює словник таксономії Server Type, а також два типи контенту - App Release та App. Нижче ми розповімо, для чого він призначений.
Після того як сервер в словнику таксономії Server Type встановлено, можна створювати термін, який і стане певним сервером, що ми його будемо вказувати на клієнтській стороні.
Сам же app формується з допомогою ноди типу App Release, його налаштування виражається в заповненні полів Name (required), Changelog, Logo, Screenshot, Manifest, Server type. У той час як із полями Name (required), Changelog, Logo, Screenshot все зрозуміло і вони промовляють самі за себе, найважливіші дії відбуваються в Manifest-і. Аби створити його, рекомендуємо ознайомитись із OAS (Open App Standarts).
Спершу є необхідним вникнути в систему створення apps-ів: нам потрібно вказати не лише модулі, які варто завантажити й встановити (в маніфесті це буде Dependencies), а й вказати, також, модуль (в маніфесті він буде описаний як downloadable і machine_name), котрий в своєму .info файлі міститиме список dependencies[] всіх Dependencies, що вказані в маніфесті. Насправді цей модуль - єдиний що увімкнеться при інсталяції app-а на клієнтському сайті, проте, оскільки в ньому містяться залежності інших модулів, то автоматично включаться й ці інші модулі.