34

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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

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

сопровождения

Вадим Миргород

@dealancer

[email protected]

ДонНТУ

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

Что такое Drupal дистрибутив?

● Продукт● OpenSource проект● Drupal

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

Знаменитые Drupal дистрибутивы

● OpenPublish – для газет и журналов● Accquia Commons – для сайтов

сообществ● PressFlow – быстрый Drupal● Open Atrium – для совместной работы● ELMS, OpenScholar – для образования● COD – для конференций

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

Какая польза от дистрибутива?

● Готовое Drupal-решение для определенной ниши

● Ускорение технологии производства сайтов

● Contribution back● Доходы от коммерческой

поддержки

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

Первые шаги

● Как узнать что уже сделано?● http://drupaldistrowatch.com/● http://drupal.org/project/installation%2Bprofiles

● Как понять что нужно рынку?

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

Из чего состоит Drupal дистрибутив?

● Contrib и сustom модули● Тема● Фичи (см. модуль Features)● Установочный профиль● Сборочный файл (Drush Make)

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

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 дистрибутив: от идеи до сопровождения

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 дистрибутив: от идеи до сопровождения

Пример

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

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

● Задает базовые настройки● Включает необходимые модули● Структура установочного профиля:

● example.info● example.install● example.profile

● Два важных хука:● hook_install и hook_install_tasks

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

hook_install_tasks

● Выполняет задания● Типы заданий:

● Normal – простое действие, PHP код● Batch – многократно повторяющиеся

действия, Batch API● Form – диалог с пользователем, Form API

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

Последовательность установки

● Выбор профиля и языка● Ввод параметров БД● Вызов hook_install модулей● Вызов hook_install профиля● Конфигурирование сайта● Распаковка фичей● Вызов hook_install_tasks модулей● Вызов hook_install_tasks профиля

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

Пример

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

Модуль Features и фичи

● Модуль Features позволяет экспортировать настройки/конфигурацию в под-модуль (фичу).

● Когда фича включена, настройки активны.● Features следит за переопределением

пользователем настроек фичи. Позволяет восстанавливать или пересоздавать фичу.

● http://drupal.org/project/features - module● http://drupal.org/project/kit - naming conventions

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

Конфигурация, хранимая в фиче

● Типы содержимого и поля● Словари таксономии, меню и элементы

меню● Роли и права доступа● Форматы ввода и стили изображений● Поддерживаемые модули: Views, Display

suite, Context, Panels, Page Manager, Strongarm, и другие...

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

Модуль Strongarm

● Совместно с модулем Features, позволяет экспортировать переменные в фичи.

● В переменных хранятся настройки многих модулей.

● http://drupal.org/project/strongarm

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

Пример

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

Фичи vs Профиль

● Старайтесь не хранить права в фиче, кроме тех, что определяют логику ее работы.

● Невозможно хранить элементы меню с не уникальными путями в фиче.

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

Вспомогательные модули

● 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 дистрибутив: от идеи до сопровождения
Page 25: Создаем Drupal дистрибутив: от идеи до сопровождения
Page 26: Создаем Drupal дистрибутив: от идеи до сопровождения
Page 27: Создаем Drupal дистрибутив: от идеи до сопровождения

Куда выкладывать дистрибутив?

● Исходный код – на drupal.org● Собранный дистрибутив – на отдельный сайт

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

Локализация

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

● Переводите при помощиhttp://localize.drupal.org или

● http://drupal.org/project/l10n_client

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

Пути созданиядистрибутивов

Вначале сайт, затем продукт:

● Сайт создается быстро, но с ошибками и костылями.

● Во время создания продукта фиксятся все ошибки и убираются костыли.

● В итоге сайт и продукт имеют разную реализацию, что осложняет поддержку сайта-прототипа.

● Такой подход лучше использовать, когда у вас мало времени, нет четкого ТЗ, или есть вероятность, того, что заказчик сайта будет вносить изменения.

Вначале продукт, затем сайт:

● Создается продукт, решаются сложные технические задачи, идет время.

● На базе продукта создается сайт, происходит тестирование и отладка.

● В итоге готовы продукт и сайт, но потрачено значиельное колиество времени веремени.

● Такой подход лучше использовать когда у вас есть четко составленное ТЗ, которое не будет меняться, и время.

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

Чем отличается пара программист и программа от пары программист и женщина?

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

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

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

Сопровождение

● Бесплатное:● Решение багов● Выпуск обновлений

● Платное:● Поддержка● Хостинг

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

Ресурсы● 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 дистрибутив: от идеи до сопровождения

Спасибо за внимание!

● http://slideshare.net/dealancer● http://drupal.org/project/openacadept

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