Відразу обмовлюся, що з Features я знаком поверхнево. Доводилося пару раз побавитися ім. Вирішив раз вже буду робити Feature з технічної підтримки, то і напишу як робив це.
Feature (він же: фіча, Фьюча, можливість - хто на що здатний) - модуль, який дозволяє створювати набори з поточного стану сайту, а потім їх використовувати.
Приклад: ви зробили тип вмісту каталог, view для його відображення, а також додали деякі поля які там використовуються. Створюючи черговий сайт, ви раптом розумієте що вже робили точно такий же каталог, навіщо все робити по-новому? Це дорогоцінний час, який можна витратити на інші заняття, особливо якщо такий каталог відтворювати від декількох годин. І тут приходить на допомогу Feature. Даний модуль допоможе «запакувати» ваш готовий каталог в нову «можливість», яка за фактом є модулем, а потім використовувати її де потрібно. У нашому випадку, цю «можливість» ми кидаємо на новий сайт, включаємо і вуаля, каталог готовий.
Цінність даного модуля безперечна, але у мене руки не доходять його вивчити глибше, а саме, для створення збірок. Його також не пропустили повз рук і розробники Drupal, в 8 версії, в ядрі з'явиться «Менеджер конфігурацій» з яким буде інтегруватися Features, але про це я вже нічого точно сказати не можу. Але в ядро марне навряд чи б додали.
Зрозуміло даний модуль може набагато більше і використовується з різними цілями, ми ж розглянемо лише базову роботу з ним.
підготовка
Так як я буду показувати на прикладі «Технічної підтримки», то ви можете скачати бекап сайту з гайда. Також нам знадобиться модуль Features.
Від вступу до справи.
Знайомство з інтерфейсом модуля
Перед тим як перейти до створення, забіжу вперед і розповім про інтерфейс створення «можливостей».
General Information - дозволяє задати основні параметри можливості. У ньому можна задати:
- Ім'я - назва майбутньої можливості.
- Опис - опис для можливості щоб було простіше зорієнтуватися.
- Група - то, до якої групи буде ставитися можливість. Дозволяє розмежувати можливості по групах. В тому числі, майбутня можливість буде саме з цією групою в списку модулів.
- Версія - версія можливості, яка задається за типом модулів. Версія.друпала-версія.модуля.
Advanced Options - додаткові налаштування можливості. Складаються з:
- Шлях до файлу оновлення - це дозволяє повідомити всім сайтам, на яких використовується можливість, про те, що вийшла нова версія і вони могли оновитися за принципом звичайних модулів. (необов'язкове поле)
- Шлях для генерації модуля-можливості - шлях де створитися модуль з цією можливістю. Залишивши порожнім, можливість буде генеруватися в стандартну папку sites / all / modules / name # 95; of # 95; feature. Я побачив мало «можливостей», але всі вони як правило розташовувалися в папці sites / all / modules / features / name # 95; of # 95; feature. Пояснювати чому, я думаю не варто.
- Генерація можливості - генерація можливості в модуль. Використовується коли всі налаштування вже зроблені.
- Автоматичне додавання залежностей - дозволяє автоматично відстежувати і позначати модулі # 92; поля і т. Д. На додавання в можливість. Наприклад ви позначили створену вами view, то автоматично додасться залежність до модуля views.
- Допустити конфлікти - дозволяє додавати в можливість то, що буде конфліктувати між собою. Я, чесно, з таким не стикався і навіть уявлення не маю що може конфліктувати.
Components - розділ з усіма сутностями, полями і т. Д. Створеними на вашому сайті, і які повинні бути додані в можливість. Виділені компоненти мають такі статуси:
- Нормальний (сірий) - ви вибрали цей компонент.
- Зміни (сірий з жирним текстом) - обраний раніше компонент, але був змінений з моменту генерації можливості.
- Автоматично виявлений (блакитний) - цей елемент необхідний для якогось з тих, що ви вибрали самі. (Як у випадку з views вище).
- Конфлікт - значить щось конфліктує :)
Ну і кнопка скачати можливість, пояснювати навіщо, думаю не варто.
Створюємо нову «можливість»
Перш ніж що-небудь «упаковувати», нам необхідно створити ту саму «упаковку». Для початку перейдіть в адміністративний розділ Features і приступимо.
Крок 1. Створюємо нову «можливість»
Крок 2. Даємо назву «Технічна підтримка» (technical # 95; support)
Крок 3. До групи пишемо Technical support. Якщо щось ще будите додавати до служби підтримки, а потім виносити в feature, то буде простіше орієнтувати.
Крок 4. Вказуємо версію 7.x-1.0
** Крок 5. ** Переходимо в розділ «Components». І починаємо помічати що нам необхідно для коректно роботи feature:
- Content types: Тикет. У вас автоматично відзначаться все поля які там використовуються, словники таксономії і модулі.
- Rules configuration: помічаємо всі наші rules'и з приставкою «Тикет».
- Views: помічаємо наше уявлення «Технічна підтримка».
Крок 6. Тиснемо «Generate feature».
У розділі features, ви зможете стежити за поточним станом можливості, яке дозволить відстежувати всі зміни і генерувати нову, більш свіжу версію, яка буде застосовуватися на інших сайтах (якщо є оновлення або робите руками).
Для того щоб протестувати його, зрозуміло, найлогічніше поставити чисту збірку Друпал, тоді все косяки спливуть відразу.
Після чистої установки відразу ж включаємо нашу можливість, яка буде відображатися в списку модулів.