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

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


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

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

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


●   Как понять что нужно рынку?
Из чего состоит 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.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 дистрибутив: от идеи до сопровождения.

Создаем 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 – DrupalShell "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
  • 13.
  • 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 модулей
  • 17.
  • 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
  • 21.
  • 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