Создаем drupal дистрибутив: от идеи до сопровождения
DESCRIPTION
TRANSCRIPT
![Page 1: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/1.jpg)
![Page 2: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/2.jpg)
Создаем Drupal дистрибутив: от идеи до
сопровождения
Вадим Миргород
@dealancer
ДонНТУ
![Page 3: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/3.jpg)
![Page 4: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/4.jpg)
Что такое Drupal дистрибутив?
● Продукт● OpenSource проект● Drupal
![Page 5: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/5.jpg)
Знаменитые Drupal дистрибутивы
● OpenPublish – для газет и журналов● Accquia Commons – для сайтов
сообществ● PressFlow – быстрый Drupal● Open Atrium – для совместной работы● ELMS, OpenScholar – для образования● COD – для конференций
![Page 6: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/6.jpg)
Какая польза от дистрибутива?
● Готовое Drupal-решение для определенной ниши
● Ускорение технологии производства сайтов
● Contribution back● Доходы от коммерческой
поддержки
![Page 7: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/7.jpg)
![Page 8: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/8.jpg)
Первые шаги
● Как узнать что уже сделано?● http://drupaldistrowatch.com/● http://drupal.org/project/installation%2Bprofiles
● Как понять что нужно рынку?
![Page 9: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/9.jpg)
![Page 10: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/10.jpg)
Из чего состоит Drupal дистрибутив?
● Contrib и сustom модули● Тема● Фичи (см. модуль Features)● Установочный профиль● Сборочный файл (Drush Make)
![Page 11: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/11.jpg)
Drush – Drupal Shell
"Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt."
http://drupal.org/project/drushhttp://drush.ws/drush_windows_installer
![Page 12: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/12.jpg)
Drush Make
Drush Make - это расширение Drush, которое собирает сайт, заданной конфигурации (профили, модули, темы, патчи), которая храниться в make файле.
drush make distro.make distro --prepare-installhttp://drupalcode.org/project/drush_make.git/blob/086793e8887008a7841a5ef6081f8cf2766347db:/EXAMPLE.make
http://drupal.org/project/drush_make
![Page 13: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/13.jpg)
Пример
![Page 14: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/14.jpg)
Установочный профиль
● Задает базовые настройки● Включает необходимые модули● Структура установочного профиля:
● example.info● example.install● example.profile
● Два важных хука:● hook_install и hook_install_tasks
![Page 15: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/15.jpg)
hook_install_tasks
● Выполняет задания● Типы заданий:
● Normal – простое действие, PHP код● Batch – многократно повторяющиеся
действия, Batch API● Form – диалог с пользователем, Form API
![Page 16: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/16.jpg)
Последовательность установки
● Выбор профиля и языка● Ввод параметров БД● Вызов hook_install модулей● Вызов hook_install профиля● Конфигурирование сайта● Распаковка фичей● Вызов hook_install_tasks модулей● Вызов hook_install_tasks профиля
![Page 17: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/17.jpg)
Пример
![Page 18: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/18.jpg)
Модуль Features и фичи
● Модуль Features позволяет экспортировать настройки/конфигурацию в под-модуль (фичу).
● Когда фича включена, настройки активны.● Features следит за переопределением
пользователем настроек фичи. Позволяет восстанавливать или пересоздавать фичу.
● http://drupal.org/project/features - module● http://drupal.org/project/kit - naming conventions
![Page 19: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/19.jpg)
Конфигурация, хранимая в фиче
● Типы содержимого и поля● Словари таксономии, меню и элементы
меню● Роли и права доступа● Форматы ввода и стили изображений● Поддерживаемые модули: Views, Display
suite, Context, Panels, Page Manager, Strongarm, и другие...
![Page 20: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/20.jpg)
Модуль Strongarm
● Совместно с модулем Features, позволяет экспортировать переменные в фичи.
● В переменных хранятся настройки многих модулей.
● http://drupal.org/project/strongarm
![Page 21: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/21.jpg)
Пример
![Page 22: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/22.jpg)
Фичи vs Профиль
● Старайтесь не хранить права в фиче, кроме тех, что определяют логику ее работы.
● Невозможно хранить элементы меню с не уникальными путями в фиче.
![Page 23: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/23.jpg)
Вспомогательные модули
● Features override:● http://drupal.org/project/features_override
● Profiler:● http://drupal.org/project/profiler● http://drupalcode.org/project/profiler_example.git/blob/HEAD:/profiler_example.info
![Page 24: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/24.jpg)
![Page 25: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/25.jpg)
![Page 26: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/26.jpg)
![Page 27: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/27.jpg)
Куда выкладывать дистрибутив?
● Исходный код – на drupal.org● Собранный дистрибутив – на отдельный сайт
![Page 28: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/28.jpg)
Локализация
● Делайте дистрибутив с английском языком в качестве основного
● Переводите при помощиhttp://localize.drupal.org или
● http://drupal.org/project/l10n_client
![Page 29: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/29.jpg)
Пути созданиядистрибутивов
Вначале сайт, затем продукт:
● Сайт создается быстро, но с ошибками и костылями.
● Во время создания продукта фиксятся все ошибки и убираются костыли.
● В итоге сайт и продукт имеют разную реализацию, что осложняет поддержку сайта-прототипа.
● Такой подход лучше использовать, когда у вас мало времени, нет четкого ТЗ, или есть вероятность, того, что заказчик сайта будет вносить изменения.
Вначале продукт, затем сайт:
● Создается продукт, решаются сложные технические задачи, идет время.
● На базе продукта создается сайт, происходит тестирование и отладка.
● В итоге готовы продукт и сайт, но потрачено значиельное колиество времени веремени.
● Такой подход лучше использовать когда у вас есть четко составленное ТЗ, которое не будет меняться, и время.
![Page 30: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/30.jpg)
Чем отличается пара программист и программа от пары программист и женщина?
В первом случае идет разработка, внедрение, а затем сопровождение.
А во втором – вначале идет сопровождение, а затем все остальное.
![Page 31: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/31.jpg)
Сопровождение
● Бесплатное:● Решение багов● Выпуск обновлений
● Платное:● Поддержка● Хостинг
![Page 32: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/32.jpg)
Ресурсы● http://drupaldistrowatch.com/
● http://drupal.org/project/installation%2Bprofiles
● http://drupal.org/project/drush
● http://drush.ws/drush_windows_installer
● http://drupal.org/project/drush_make
● http://drupal.org/project/features
● http://drupal.org/project/strongarm
● http://drupal.org/project/features_override
● http://drupal.org/project/profiler
● http://localize.drupal.org
● http://drupal.org/project/l10n_client
![Page 33: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/33.jpg)
Спасибо за внимание!
● http://slideshare.net/dealancer● http://drupal.org/project/openacadept
![Page 34: Создаем Drupal дистрибутив: от идеи до сопровождения](https://reader034.vdocuments.site/reader034/viewer/2022042713/549894f1b47959dd118b477e/html5/thumbnails/34.jpg)