Upload
drupalforumzp2012
View
2.634
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
Создаем Drupal дистрибутив: от идеи до
сопровождения
Вадим Миргород
@dealancer
ДонНТУ
Что такое 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/drushhttp://drush.ws/drush_windows_installer
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
Пример
Установочный профиль
● Задает базовые настройки● Включает необходимые модули● Структура установочного профиля:
● 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 модулей● Вызов 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.org или
● http://drupal.org/project/l10n_client
Пути созданиядистрибутивов
Вначале сайт, затем продукт:
● Сайт создается быстро, но с ошибками и костылями.
● Во время создания продукта фиксятся все ошибки и убираются костыли.
● В итоге сайт и продукт имеют разную реализацию, что осложняет поддержку сайта-прототипа.
● Такой подход лучше использовать, когда у вас мало времени, нет четкого ТЗ, или есть вероятность, того, что заказчик сайта будет вносить изменения.
Вначале продукт, затем сайт:
● Создается продукт, решаются сложные технические задачи, идет время.
● На базе продукта создается сайт, происходит тестирование и отладка.
● В итоге готовы продукт и сайт, но потрачено значиельное колиество времени веремени.
● Такой подход лучше использовать когда у вас есть четко составленное ТЗ, которое не будет меняться, и время.
Чем отличается пара программист и программа от пары программист и женщина?
В первом случае идет разработка, внедрение, а затем сопровождение.
А во втором – вначале идет сопровождение, а затем все остальное.
Сопровождение
● Бесплатное:● Решение багов● Выпуск обновлений
● Платное:● Поддержка● Хостинг
Ресурсы● 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