SlideShare a Scribd company logo
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal
 дистрибутив: от идеи до
     сопровождения

                      ДонНТУ
Вадим Миргород
@dealancer
dealancer@gmail.com
Создаем Drupal дистрибутив: от идеи до сопровождения.
Что такое Drupal
     дистрибутив?
● Продукт
● OpenSource проект


● Drupal
Знаменитые Drupal
       дистрибутивы
●   OpenPublish – для газет и журналов
●   Accquia Commons – для сайтов
    сообществ
●   PressFlow – быстрый Drupal
●   Open Atrium – для совместной работы
●   ELMS, OpenScholar – для образования
●   COD – для конференций
Какая польза от
        дистрибутива?
●   Готовое Drupal-решение для
    определенной ниши
●   Ускорение технологии
    производства сайтов
●   Contribution back
●   Доходы от коммерческой
    поддержки
Создаем Drupal дистрибутив: от идеи до сопровождения.
Первые шаги

● Как узнать что уже сделано?
● http://drupaldistrowatch.com/

●   http://drupal.org/project/installation%2Bprofiles


●   Как понять что нужно рынку?
Создаем Drupal дистрибутив: от идеи до сопровождения.
Из чего состоит Drupal
    дистрибутив?
● Contrib и сustom модули
● Тема


● Фичи (см. модуль Features)


● Установочный профиль


● Сборочный файл (Drush Make)
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/drush
http://drush.ws/drush_windows_installer
Drush Make
Drush Make - это расширение Drush, которое
 собирает сайт, заданной конфигурации
 (профили, модули, темы, патчи), которая
 храниться в make файле.

drush make distro.make distro --prepare-install
http://drupalcode.org/project/drush_make.git/blob/086793e8887008a7841a5ef6081f8cf2766347db:/EXAMPLE.make




http://drupal.org/project/drush_make
Пример
Установочный
               профиль
●   Задает базовые настройки
●   Включает необходимые модули
●   Структура установочного профиля:
    ●   example.info
    ●   example.install
    ●   example.profile
●   Два важных хука:
    ●   hook_install и hook_install_tasks
hook_install_tasks
●   Выполняет задания
●   Типы заданий:
    ●   Normal – простое действие, PHP код
    ●   Batch – многократно повторяющиеся
        действия, Batch API
    ●   Form – диалог с пользователем, Form API
Последовательность
        установки
●   Выбор профиля и языка
●   Ввод параметров БД
●   Вызов hook_install модулей
●   Вызов hook_install профиля
●   Конфигурирование сайта
●   Распаковка фичей
●   Вызов hook_install_tasks модулей
Пример
Модуль Features и
            фичи
●   Модуль Features позволяет экспортировать
    настройки/конфигурацию в под-модуль
    (фичу).
●   Когда фича включена, настройки активны.
●   Features следит за переопределением
    пользователем настроек фичи. Позволяет
    восстанавливать или пересоздавать фичу.
●   http://drupal.org/project/features - module
●   http://drupal.org/project/kit - naming conventions
Конфигурация,
       хранимая в фиче
●   Типы содержимого и поля
●   Словари таксономии, меню и элементы
    меню
●   Роли и права доступа
●   Форматы ввода и стили изображений
●   Поддерживаемые модули: Views, Display
    suite, Context, Panels, Page Manager,
    Strongarm, и другие...
Модуль Strongarm
●   Совместно с модулем Features, позволяет
    экспортировать переменные в фичи.
●   В переменных хранятся настройки многих
    модулей.
●   http://drupal.org/project/strongarm
Пример
Фичи vs Профиль
●   Старайтесь не хранить права в фиче, кроме
    тех, что определяют логику ее работы.
●   Невозможно хранить элементы меню с не
    уникальными путями в фиче.
Вспомогательные
              модули
●   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
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
Куда выкладывать
      дистрибутив?
● Исходный код – на drupal.org
● Собранный дистрибутив – на

  отдельный сайт
Локализация

● Делайте дистрибутив с
  английском языком в
  качестве основного
● Переводите при

  помощиhttp://localize.drupal.or
  g или
Пути создания
              дистрибутивов
Вначале сайт, затем                       Вначале продукт, затем
  продукт:                                  сайт:
●   Сайт создается быстро, но с           ●   Создается продукт, решаются
    ошибками и костылями.                     сложные технические задачи, идет
                                              время.
●   Во время создания продукта
    фиксятся все ошибки и убираются       ●   На базе продукта создается сайт,
    костыли.                                  происходит тестирование и отладка.
●   В итоге сайт и продукт имеют разную   ●   В итоге готовы продукт и сайт, но
    реализацию, что осложняет                 потрачено значиельное колиество
    поддержку сайта-прототипа.                времени веремени.
●   Такой подход лучше использовать,      ●   Такой подход лучше использовать
    когда у вас мало времени, нет             когда у вас есть четко составленное
    четкого ТЗ, или есть вероятность,         ТЗ, которое не будет меняться, и
    того, что заказчик сайта будет            время.
    вносить изменения.
Чем отличается пара программист и
 программа от пары программист и
 женщина?


В первом случае идет разработка,
 внедрение, а затем сопровождение.


А во втором – вначале идет
 сопровождение, а затем все
 остальное.
Сопровождение

● Бесплатное:
  ● Решение багов


  ● Выпуск обновлений


● Платное:


  ● Поддержка


  ● Хостинг
Ресурсы
●   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
Спасибо за внимание!
●   http://slideshare.net/dealancer
●   http://drupal.org/project/openacadept
Создаем Drupal дистрибутив: от идеи до сопровождения.

More Related Content

PDF
JavaScript завтра / Сергей Рубанов (Exante Limited)
PDF
UI Kit and design developig workflow
PDF
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
PPTX
Как быть с большими сайтами на Word press
PPTX
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
PDF
Python и Django – платформа для фрилансера
PDF
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
PDF
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
JavaScript завтра / Сергей Рубанов (Exante Limited)
UI Kit and design developig workflow
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Как быть с большими сайтами на Word press
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Python и Django – платформа для фрилансера
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...

What's hot (20)

PDF
Компонентный веб. Проникновение в дизайн.
PDF
Денис Чистяков: Workflow. Работа над проектом в Яндексе
PDF
Frontend: Путешествие в мир модульных загрузчиков
PPTX
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
PPTX
История развития и применения CMS: Drupal и другие
PDF
Как сделать хороший прототип вовремя?
PDF
Повышаем и следим за качеством PHP кода
PPTX
Как писать на PHP и не стать быдло-кодером
PDF
Opensource на .NET
PDF
Сборка проектов с помощью ENB
PDF
WordPress.org Under the Hood, WordCamp Moscow 2017
PDF
GDG meetup #15: Как построить релиз-инжиниринг на Jenkins
PDF
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
PPTX
WebdriverIO + Puppeteer. Double gun – double fun
PPTX
Спецкурс-2015. Занятие 05. Системы контроля версий
PDF
Мониторинг Drupal-сайтов
PDF
Владислав Грязнов "Многозадачность в PHP"
PDF
Maksym Antipov Hardware development as a hobby and a job
PDF
случаи из практики пма.
PPTX
Drupal: система для быстрой и комфортной разработки web-сайтов
Компонентный веб. Проникновение в дизайн.
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Frontend: Путешествие в мир модульных загрузчиков
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
История развития и применения CMS: Drupal и другие
Как сделать хороший прототип вовремя?
Повышаем и следим за качеством PHP кода
Как писать на PHP и не стать быдло-кодером
Opensource на .NET
Сборка проектов с помощью ENB
WordPress.org Under the Hood, WordCamp Moscow 2017
GDG meetup #15: Как построить релиз-инжиниринг на Jenkins
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
WebdriverIO + Puppeteer. Double gun – double fun
Спецкурс-2015. Занятие 05. Системы контроля версий
Мониторинг Drupal-сайтов
Владислав Грязнов "Многозадачность в PHP"
Maksym Antipov Hardware development as a hobby and a job
случаи из практики пма.
Drupal: система для быстрой и комфортной разработки web-сайтов
Ad

Similar to Создаем Drupal дистрибутив: от идеи до сопровождения. (20)

ODP
Создаем Drupal дистрибутив: от идеи до сопровождения
PPTX
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
PDF
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
PPT
Drupal Vs Other
PDF
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
PDF
Создание дистрибутивов Drupal. Почему, зачем и как?
PDF
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
PPTX
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
ODP
Drupal community 2012
PDF
Lovely scrum
PPTX
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
PDF
Angular into drupal integration - Eugene Mickhnitskyy & Dmitriy Petruk
PDF
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
PDF
Ігор Карпиленко — PHPStorm for drupal developer
PDF
Workflow: работа над проектом в Яндексе
PDF
Rust - GDG DevFest Siberia 2016
PDF
MockServer-driven development
PDF
Павел Юрийчук - Разработка приложений под мобильные браузеры
PDF
Модуль 15. Лекция 59-60.
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Создаем Drupal дистрибутив: от идеи до сопровождения
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Drupal Vs Other
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Создание дистрибутивов Drupal. Почему, зачем и как?
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Drupal community 2012
Lovely scrum
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
Angular into drupal integration - Eugene Mickhnitskyy & Dmitriy Petruk
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Ігор Карпиленко — PHPStorm for drupal developer
Workflow: работа над проектом в Яндексе
Rust - GDG DevFest Siberia 2016
MockServer-driven development
Павел Юрийчук - Разработка приложений под мобильные браузеры
Модуль 15. Лекция 59-60.
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Ad

More from DrupalForumZP2012 (20)

PPT
OpenSource и Вы
ODP
Создание собственных сущностей с использованием Entity API
PPTX
Архитектурные отличия тем для Drupal 7 от Drupal 6. Краткий обзор RDFa и рабо...
PPTX
Препроцессор Less.
PPTX
Управление отображением содержимого.
PPT
Работа с пользователями.
PPTX
Управление содержимым.
PPTX
Поиск уязвимостей в коде.
PPT
Черные дыры разработки. Как мода убивает эффективность.
PPT
Системы управления версиями (VCS). Знакомство с Git.
PPT
Drupal commerce VS Ubercart 3.x.
PPT
Боремся с "лишними" переходами на сайте, или еще пара слов о попапах и аяксах.
PPTX
Электронные платежные системы: Тенденции в отрасли и способы реализации.
PPT
Drupal as service.
PPT
Drupal and NodeJS.
PPT
Drupal Apps.
PPT
10 странностей Друпала или почему клиенты не любят Друпал.
PPT
Модуль GetLocations. Google Maps API ver.3 и Drupal.
PPTX
Render API.
PPT
Rules. Обзор, примеры, API.
OpenSource и Вы
Создание собственных сущностей с использованием Entity API
Архитектурные отличия тем для Drupal 7 от Drupal 6. Краткий обзор RDFa и рабо...
Препроцессор Less.
Управление отображением содержимого.
Работа с пользователями.
Управление содержимым.
Поиск уязвимостей в коде.
Черные дыры разработки. Как мода убивает эффективность.
Системы управления версиями (VCS). Знакомство с Git.
Drupal commerce VS Ubercart 3.x.
Боремся с "лишними" переходами на сайте, или еще пара слов о попапах и аяксах.
Электронные платежные системы: Тенденции в отрасли и способы реализации.
Drupal as service.
Drupal and NodeJS.
Drupal Apps.
10 странностей Друпала или почему клиенты не любят Друпал.
Модуль GetLocations. Google Maps API ver.3 и Drupal.
Render API.
Rules. Обзор, примеры, API.

Создаем Drupal дистрибутив: от идеи до сопровождения.

  • 2. Создаем Drupal дистрибутив: от идеи до сопровождения ДонНТУ Вадим Миргород @dealancer dealancer@gmail.com
  • 4. Что такое Drupal дистрибутив? ● Продукт ● OpenSource проект ● Drupal
  • 5. Знаменитые Drupal дистрибутивы ● OpenPublish – для газет и журналов ● Accquia Commons – для сайтов сообществ ● PressFlow – быстрый Drupal ● Open Atrium – для совместной работы ● ELMS, OpenScholar – для образования ● COD – для конференций
  • 6. Какая польза от дистрибутива? ● Готовое Drupal-решение для определенной ниши ● Ускорение технологии производства сайтов ● Contribution back ● Доходы от коммерческой поддержки
  • 8. Первые шаги ● Как узнать что уже сделано? ● http://drupaldistrowatch.com/ ● http://drupal.org/project/installation%2Bprofiles ● Как понять что нужно рынку?
  • 10. Из чего состоит Drupal дистрибутив? ● Contrib и сustom модули ● Тема ● Фичи (см. модуль Features) ● Установочный профиль ● Сборочный файл (Drush Make)
  • 11. 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/drush http://drush.ws/drush_windows_installer
  • 12. Drush Make Drush Make - это расширение Drush, которое собирает сайт, заданной конфигурации (профили, модули, темы, патчи), которая храниться в make файле. drush make distro.make distro --prepare-install http://drupalcode.org/project/drush_make.git/blob/086793e8887008a7841a5ef6081f8cf2766347db:/EXAMPLE.make http://drupal.org/project/drush_make
  • 14. Установочный профиль ● Задает базовые настройки ● Включает необходимые модули ● Структура установочного профиля: ● example.info ● example.install ● example.profile ● Два важных хука: ● hook_install и hook_install_tasks
  • 15. hook_install_tasks ● Выполняет задания ● Типы заданий: ● Normal – простое действие, PHP код ● Batch – многократно повторяющиеся действия, Batch API ● Form – диалог с пользователем, Form API
  • 16. Последовательность установки ● Выбор профиля и языка ● Ввод параметров БД ● Вызов hook_install модулей ● Вызов hook_install профиля ● Конфигурирование сайта ● Распаковка фичей ● Вызов hook_install_tasks модулей
  • 18. Модуль Features и фичи ● Модуль Features позволяет экспортировать настройки/конфигурацию в под-модуль (фичу). ● Когда фича включена, настройки активны. ● Features следит за переопределением пользователем настроек фичи. Позволяет восстанавливать или пересоздавать фичу. ● http://drupal.org/project/features - module ● http://drupal.org/project/kit - naming conventions
  • 19. Конфигурация, хранимая в фиче ● Типы содержимого и поля ● Словари таксономии, меню и элементы меню ● Роли и права доступа ● Форматы ввода и стили изображений ● Поддерживаемые модули: Views, Display suite, Context, Panels, Page Manager, Strongarm, и другие...
  • 20. Модуль Strongarm ● Совместно с модулем Features, позволяет экспортировать переменные в фичи. ● В переменных хранятся настройки многих модулей. ● http://drupal.org/project/strongarm
  • 22. Фичи vs Профиль ● Старайтесь не хранить права в фиче, кроме тех, что определяют логику ее работы. ● Невозможно хранить элементы меню с не уникальными путями в фиче.
  • 23. Вспомогательные модули ● 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
  • 27. Куда выкладывать дистрибутив? ● Исходный код – на drupal.org ● Собранный дистрибутив – на отдельный сайт
  • 28. Локализация ● Делайте дистрибутив с английском языком в качестве основного ● Переводите при помощиhttp://localize.drupal.or g или
  • 29. Пути создания дистрибутивов Вначале сайт, затем Вначале продукт, затем продукт: сайт: ● Сайт создается быстро, но с ● Создается продукт, решаются ошибками и костылями. сложные технические задачи, идет время. ● Во время создания продукта фиксятся все ошибки и убираются ● На базе продукта создается сайт, костыли. происходит тестирование и отладка. ● В итоге сайт и продукт имеют разную ● В итоге готовы продукт и сайт, но реализацию, что осложняет потрачено значиельное колиество поддержку сайта-прототипа. времени веремени. ● Такой подход лучше использовать, ● Такой подход лучше использовать когда у вас мало времени, нет когда у вас есть четко составленное четкого ТЗ, или есть вероятность, ТЗ, которое не будет меняться, и того, что заказчик сайта будет время. вносить изменения.
  • 30. Чем отличается пара программист и программа от пары программист и женщина? В первом случае идет разработка, внедрение, а затем сопровождение. А во втором – вначале идет сопровождение, а затем все остальное.
  • 31. Сопровождение ● Бесплатное: ● Решение багов ● Выпуск обновлений ● Платное: ● Поддержка ● Хостинг
  • 32. Ресурсы ● 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
  • 33. Спасибо за внимание! ● http://slideshare.net/dealancer ● http://drupal.org/project/openacadept