SlideShare a Scribd company logo
Инсталляционные профили, создание сборок. Ершов Андрей [email_address] ARDAS Group http://ardas.dp.ua [email_address]
План доклада 1. Что такое сборка, примеры сборок 2. Что такое инсталляционный профиль 2.1. Где находятся профили 2.1.1. Рекомендуемое расположение модулей и тем в профилях 2.2. Жизненный цикл инсталляционного профиля 2.3. Основные хуки 2.3.1. hook_profile_modules() - список устанавливаемых модулей 2.3.2. hook_profile_task_list() - задачи, запускаемые инсталлятором 2.3.3. hook_profile_tasks() - дополнительные задачи инсталляции 3. Модуль Install Profile API 3.1. Полезные функции модуля
План доклада  ( продолжение ) 4.  Знакомство с набором модулей и тем для создания сборок 4.1. Модуль Features 4.2. Модуль Strongarm  4.3. Модуль Context 4.4. Модуль Feature Server 4.5. Тема Rubik/Cube 4.6. Дополнительные модули 5 . Ресурсы и литература
Что такое сборка, примеры сборок Сборка - это подготовленный для использования программный продукт, который  c одержит в себе ядро, модули и их настройки.
Open Atrium  ( http://openatrium.com/ ) Предназначена для построения интранет порталов. Имеет 6 основных функций: Блог Вики Календарь Список дел Мини-чат Панель управления
Managing News  ( http://www.managingnews.com/ ) предназначена для: Сбора Агрегации Визуализации данных
OpenPublish  ( http://openpublishapp.com/ ) предназначена для реализации различных средств массовой информации: Профессиональных изданий Сайт журналов Газет
Что такое инсталляционный профиль Инсталляционный профиль — это набор параметров инсталляции Drupal. Он может включать в себя список модулей для установки и список задач установщика, а также любые другие действия и настройки, которые Вы посчитаете необходимыми при установке Drupal.
Где находятся профили Профили находятся в каталоге  /profiles/имя_профиля/ Сам профиль представлен в виде файла  /profiles/имя_профиля/имя_профиля.profile С профилем может поставляться файл перевода (должен располагаться в папке  /profiles/имя_профиля/translations ). Механизм инсталляции Drupal ищет модули при инсталляции профиля в  папке   /profiles/имя_профиля/modules/* . Для того, чтобы темы брались из каталога  /profiles/имя_профиля/tehemes/*   нужно писать дополнительный код.
Рекомендуемое расположение модулей и тем в сборках Каталоги где Drupal ищет модули: modules sites/all/modules profile/имя_профиля/modules sites/*/modules
Рекомендуется располагать модули которые идут вместе со сборкой в следующих каталогах: /profiles/имя_профиля/modules/contrib  - для модулей которые можно скачать с drupal.org /profiles/имя_профиля/modules/custom   - для модулей ваших собственных модулей (которые еще не лежат на drupal.org, но скоро там будут) /profiles/имя_профиля/modules/features   - для "функций" построенных с помощью модуля features (далее в докладе) /profiles/имя_профиля/modules/dev   - модули для разработки сайта (их можно удалить с живого сайта) /profiles/имя_профиля/modules/ваша_группа  - ваша специальная группа модулей. Модули конкретного сайта рекомендуется располагать отдельно от модулей сборки, но соблюдать такую же структуру папок (например, в папке  /sites/default/modules  или  /sites/example.com/modules ). Если Вы создаете несколько сборок с общими модулями, их нужно положить в папку  sites/all/modules
Структура каталогов в сборке Open Atrium: Файлы сборки располагаются в каталоге  /profiles/openatrium /profiles/openatrium/modules   - модули /profiles/openatrium/modules/atrium_features   - функции сборки /profiles/openatrium/modules/contrib   - модули с drupal.org /profiles/openatrium/modules/custom   - модули собственной разработки /profiles/openatrium/modules/developer   - для разработчика /profiles/openatrium/modules/l10n   - для локализации сборки
Жизненный цикл инсталляционного профиля
Основные хуки и функции инсталляционного профиля hook_profile_details() hook_profile_modules() hook_profile_task_list()  hook_profile_tasks()
hook_profile_details() Возвращаем имя и описание нашего профиля:
hook_profile_modules()  Возвращаем список устанавливаемых модулей (необходимо упорядочить массив, так чтобы модули с зависимостями, следовали после модулей, от которых они зависят):
hook_profile_task_list() Определяем задачи, запускаемые инсталлятором (они появятся в списке задач в левом сайдбаре при инсталляции):
Список стандартных задач инсталляции profile-select  - Выбор профиля locale-select  - Выбор языка requirements  - Проверка требований database   - Настройка базы данных profile-install  - Подготовка пакета модулей для инсталляции и активации profile-install-batch   - Инсталляция профиля (модули инсталлированы и активизированы) locale-initial-import  - Подготовка к импорту пакетов перевода интерфейса locale-initial-batch  - Импорт файлов переводов интерфейса configure   - Конфигурирование сайта (форма с логином и паролем админа) profile  - Передача управления функции  _profile_task()  активного инсталляционного профиля profile-finished  - Подготовка к импорту остальных переводов интерфейса locale-remaining-batch  - Установка остальных переводов интерфейса finished  - Уведомление пользователя о завершении инсталляции done  - Перестройка меню и отображение начальной страницы
hook_profile_tasks()
Особенности В хуке  hook_profile_tasks()   можно вызвать аналогичный хук из профиля default, выполнив, его инсталляционные задачи: Также можно вызвать  hook_profile_tasks()   из любого другого профиля, однако нужно помнить, что если в этом профиле будут устанавливаться модули и они будут лежать в папке этого профиля, то Drupal не сможет их найти, так как он будет искать их только в папке активного профиля.
Можно изменять формы с помощью хука  hook_form_alter()
Можно выводить формы настройки чего-либо, однако необходимо установить свойство  "#redirect"   в  FALSE  в массиве формы. (примеры в  install_tasks()   из файла  install.php ). Для перевода используется функция  st() , а не  t() , так как полная загрузка кода Drupal не выполнена и функция  t()   не доступна. Поскольку СУБД на этапе инсталляции уже подключена, можно пользоваться функциями для работы с переменными ( variable_set()   и  variable_get() ). Если известно, что для выполнении задачи может потребоваться длительное время - лучше такую задачу разбить на операции и запустить в виде пакета (Batch). Для установки темы в процессе инсталляции (если тема находиться в папке с профилем) необходимо выполнить код слегка переписанной  _system_theme_data()   (смотри  _openatrium_system_theme_data() )
Модуль Install Profile API Install Profile API ( http://drupal.org/project/install_profile_api ) Это набор полезных функций для упрощения создания структуры данных Drupal в процессе инсталляции.
Текущая стабильная версия (6.x-2.1) поддерживает следующие модули: core  модули: aggregator block book contact filter menu node profile search statistics system taxonomy user contrib  модули: content_copy content custom_pagers flag imagecache node_export taxonomy_export tinymce token views wikitools
Подключение модуля Для подключения модуля на этапе инсталляции сборки необходимо в хук  hook_profile_tasks()   профиля в самом начале вызвать функцию модуля  install_include() , передав ей в качестве параметров вызов хука  hook_profile_modules() .
Полезные функции модуля Функции управления нодами и типами материалов: install_add_content_type() install_create_node() install_node_export_import_from_file() Функции управления темами: install_enable_theme() install_disable_theme() install_default_theme() install_admin_theme() Функции управления блоками: install_add_block() install_set_block() install_create_custom_block() Функции управления меню: install_menu_create_menu() install_menu_create_menu_item()
Полезные функции (продолжение) Функции управления пользователями: install_add_user() install_add_role() install_add_user_to_role() install_add_permissions() Функции управления таксономией: install_taxonomy_add_vocabulary() install_taxonomy_add_term() install_taxonomy_assign_nid_tid() install_taxonomy_export_import_from_file() Функции управления CCK типами и полями: install_create_field() install_create_field_group() install_content_copy_import_from_file() Функция для создания imagecache пресета: install_imagecache_add_preset() Функция импорта представлений из файла: install_views_ui_import_from_file()
Знакомство с набором модулей и тем для создания сборок Модуль Features Модуль Strongarm  Модуль Context Модуль Feature Server Тема Rubik/Cube
Модуль Features http://drupal.org/project/features Feature - это набор сущностей Drupal собранных вместе для выполнения определенных задач пользователя. Модуль предоставляет интерфейс и API для построения функций (features). Нужен для объединения сущностей и настроек сборки в пакеты Статья: http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal
Основная идея модуля Features
Управление Features в Open Atrium
Редактирование Feature Atrium Blog в Open Atrium
atrium_blog.defaults.inc  — значения сущностей (cck field, permissions, и др.) atrium_blog.feature.inc  — хуки, отвечающие за сущности atrium_blog.features.node.inc  — создание типа материала atrium_blog.features.views.inc  — создание представления atrium_blog.module  — здесь можно писать свою логику
Модуль Strongarm  http://drupal.org/project/strongarm Модуль предоставляет API для переопределения переменных (variables) ядра и других модулей . Интегрируется с модулем Features. Нужен для сохранения настроек модулей внутри Features. Статья о модуле: http://developmentseed.org/blog/2009/dec/04/strongarm-2-leaner-and-meaner
 
Модуль Context http://drupal.org/project/context Позволяет создать контекстные условия и реакции на них. Интегрируется с модулем Features. Нужен для добавления  блока в регион  и установки активного пункта меню. Статья о модуле и скринкаст: http://developmentseed.org/blog/2009/jan/30/easy-feature-building-spaces
Условия В качестве условий можно выбрать следующие (количество зависит от активных модулей): Язык материала Активный пункт меню Тип материала Термин таксономии Путь Роль пользователя Представление
 
Реакции В качестве реакции можно выполнить следующие действия (зависят от активных модулей): Добавить блок в регион Переключить тему Установить активный пункт меню
 
Модуль Feature Server http://code.developmentseed.org/featureserver/ Позволяет создавать проекты и делать релизы этих проектов, функций (feature) и тем (theme), а также дает возможность подписываться на обновления и получать уведомления о новых версиях через модуль Update Status (update). Статья о модуле: http://developmentseed.org/blog/2009/jun/25/pushing-public-private-updates-your-feature-server
Создаем проект
Делаем релиз модуля
Тема Rubik/Cube http://code.developmentseed.org/rubik/ Тема для администраторского интерфейса, разработанная для совместной работы с модулем admin (версий 6.x-2.x). Зависит от темы Tao ( http://code.developmentseed.org/tao/ ), которая является базовой. Статья по теме Rubik/Cube: http://developmentseed.org/blog/2009/nov/20/admin-rubik-improved-ui-drupal-admins
Тема Rubik
Тема Cube
Ресурсы и литература Джон Вандюк. CMS Drupal: система для создания сайтов и управления ими, 2-е изд. : Пер. с англ. - М. : ООО «И.Д. Вильямс», 2009. Installation Profile Utilities -  http://drupal.org/node/180078 Writing an installation profile -  http://drupal.org/node/67921 Компания DeelopmentSeed -  http://developmentseed.org/ Сборка Open Atrium -  http://openatrium.com/ Сборка Managing News -  http://www.managingnews.com/ Компания Phase2 Technology -  http://www.phase2technology.com/ Сборка OpenPublish -  http://openpublishapp.com/ Модуль Features -  http://drupal.org/project/features  http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal
Ресурсы и литература (продолжение) Модуль Strongarm -  http://drupal.org/project/strongarm  http://developmentseed.org/blog/2009/dec/04/strongarm-2-leaner-and-meaner Модуль Context -  http://drupal.org/project/context  http://developmentseed.org/blog/2009/jan/30/easy-feature-building-spaces Модуль Feature Server -  http://code.developmentseed.org/featureserver/  http://developmentseed.org/blog/2009/jun/25/pushing-public-private-updates-your-feature-server Тема Rubik/Cube -  http://code.developmentseed.org/rubik/  http://developmentseed.org/blog/2009/nov/20/admin-rubik-improved-ui-drupal-admins Тема Tao -   http://code.developmentseed.org/tao/ Модуль Install Profile API -  http://drupal.org/project/install_profile_api
Докладчик Ершов Андрей [email_address] Компания ARDAS Group, Днепропетровск http://ardas.dp.ua [email_address] Skype:  fat.soft ICQ:  198-489-567

More Related Content

PPT
Drupal -organizaciya_razrabotki
PPT
Drupal организация разработки
PDF
C# Desktop. Занятие 12.
PPT
лабораторная работа 2
PPTX
PPTX
Web deployment
PDF
Backbone js
PPTX
СУБД 2013 Лекция №9 "Безопасность баз данных"
Drupal -organizaciya_razrabotki
Drupal организация разработки
C# Desktop. Занятие 12.
лабораторная работа 2
Web deployment
Backbone js
СУБД 2013 Лекция №9 "Безопасность баз данных"

Similar to Инсталляционные профили, создание сборок (20)

PPTX
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
PDF
Zend Framework и Doctrine
PDF
Создание дистрибутивов Drupal. Почему, зачем и как?
PPTX
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
PDF
Разработка и deploy Drupal сайтов с помощью Features.
ODP
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
PDF
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
PPT
Drupal и возможности его применения
PPT
Share Point Workflow
PDF
лек13 6
PPT
идеология Drupal 8 уже в drupal 7 вячеслав касихин
PPTX
Взломать Web-сайт на ASP.NET? Сложно, но можно!
PPTX
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
PDF
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
ODP
Создаем Drupal дистрибутив: от идеи до сопровождения
PPTX
JavaScript-модули "из прошлого в будущее"
PDF
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
PDF
Pycon Russia 2013 - Разработка через тестирование в Python и Django
PDF
Разработка через тестирование в Python и Django #pyconru
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Zend Framework и Doctrine
Создание дистрибутивов Drupal. Почему, зачем и как?
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Разработка и deploy Drupal сайтов с помощью Features.
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Drupal и возможности его применения
Share Point Workflow
лек13 6
идеология Drupal 8 уже в drupal 7 вячеслав касихин
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Создаем Drupal дистрибутив: от идеи до сопровождения
JavaScript-модули "из прошлого в будущее"
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Разработка через тестирование в Python и Django #pyconru
Ad

More from Andrii Podanenko (20)

PDF
Глобальні навчальні дні друпал
PPTX
природна і економна дорожня карта для переходу команди розробки на тест центр...
PDF
Головні Принципи Автоматизації
PDF
Docker SQL Continuous Integration Flow
PDF
Drupal 8 DevOps . Profile and SQL flows.
PPTX
Drupal 8 configuration development flow
PPTX
MoldCamp - multidimentional testing workflow. CIBox.
PDF
CIbox - OpenSource solution for making your #devops better
PDF
DrupalCon Los Angeles - Continuous Integration Toolbox
PPTX
Drupal Continuous Integration Workflow
PDF
Сейчас самое время...ЖИТЬ!
PDF
Start using vagrant now!
PDF
Live deployment, ci, drupal
PDF
Drupal contrib module maintaining
PDF
Drupal codesprint kyiv drupal cafe 07.02.2013
PDF
Drupal 8 what to wait from
PDF
Do + ldo for developers(full)
PDF
Диалоговый интенсив 2012 карпаты
PDF
психолог в социальных медиа
PDF
Ubercart7 views catalog ru
Глобальні навчальні дні друпал
природна і економна дорожня карта для переходу команди розробки на тест центр...
Головні Принципи Автоматизації
Docker SQL Continuous Integration Flow
Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 configuration development flow
MoldCamp - multidimentional testing workflow. CIBox.
CIbox - OpenSource solution for making your #devops better
DrupalCon Los Angeles - Continuous Integration Toolbox
Drupal Continuous Integration Workflow
Сейчас самое время...ЖИТЬ!
Start using vagrant now!
Live deployment, ci, drupal
Drupal contrib module maintaining
Drupal codesprint kyiv drupal cafe 07.02.2013
Drupal 8 what to wait from
Do + ldo for developers(full)
Диалоговый интенсив 2012 карпаты
психолог в социальных медиа
Ubercart7 views catalog ru
Ad

Инсталляционные профили, создание сборок

  • 1. Инсталляционные профили, создание сборок. Ершов Андрей [email_address] ARDAS Group http://ardas.dp.ua [email_address]
  • 2. План доклада 1. Что такое сборка, примеры сборок 2. Что такое инсталляционный профиль 2.1. Где находятся профили 2.1.1. Рекомендуемое расположение модулей и тем в профилях 2.2. Жизненный цикл инсталляционного профиля 2.3. Основные хуки 2.3.1. hook_profile_modules() - список устанавливаемых модулей 2.3.2. hook_profile_task_list() - задачи, запускаемые инсталлятором 2.3.3. hook_profile_tasks() - дополнительные задачи инсталляции 3. Модуль Install Profile API 3.1. Полезные функции модуля
  • 3. План доклада ( продолжение ) 4. Знакомство с набором модулей и тем для создания сборок 4.1. Модуль Features 4.2. Модуль Strongarm 4.3. Модуль Context 4.4. Модуль Feature Server 4.5. Тема Rubik/Cube 4.6. Дополнительные модули 5 . Ресурсы и литература
  • 4. Что такое сборка, примеры сборок Сборка - это подготовленный для использования программный продукт, который c одержит в себе ядро, модули и их настройки.
  • 5. Open Atrium ( http://openatrium.com/ ) Предназначена для построения интранет порталов. Имеет 6 основных функций: Блог Вики Календарь Список дел Мини-чат Панель управления
  • 6. Managing News ( http://www.managingnews.com/ ) предназначена для: Сбора Агрегации Визуализации данных
  • 7. OpenPublish ( http://openpublishapp.com/ ) предназначена для реализации различных средств массовой информации: Профессиональных изданий Сайт журналов Газет
  • 8. Что такое инсталляционный профиль Инсталляционный профиль — это набор параметров инсталляции Drupal. Он может включать в себя список модулей для установки и список задач установщика, а также любые другие действия и настройки, которые Вы посчитаете необходимыми при установке Drupal.
  • 9. Где находятся профили Профили находятся в каталоге /profiles/имя_профиля/ Сам профиль представлен в виде файла /profiles/имя_профиля/имя_профиля.profile С профилем может поставляться файл перевода (должен располагаться в папке /profiles/имя_профиля/translations ). Механизм инсталляции Drupal ищет модули при инсталляции профиля в папке /profiles/имя_профиля/modules/* . Для того, чтобы темы брались из каталога /profiles/имя_профиля/tehemes/* нужно писать дополнительный код.
  • 10. Рекомендуемое расположение модулей и тем в сборках Каталоги где Drupal ищет модули: modules sites/all/modules profile/имя_профиля/modules sites/*/modules
  • 11. Рекомендуется располагать модули которые идут вместе со сборкой в следующих каталогах: /profiles/имя_профиля/modules/contrib - для модулей которые можно скачать с drupal.org /profiles/имя_профиля/modules/custom - для модулей ваших собственных модулей (которые еще не лежат на drupal.org, но скоро там будут) /profiles/имя_профиля/modules/features - для "функций" построенных с помощью модуля features (далее в докладе) /profiles/имя_профиля/modules/dev - модули для разработки сайта (их можно удалить с живого сайта) /profiles/имя_профиля/modules/ваша_группа - ваша специальная группа модулей. Модули конкретного сайта рекомендуется располагать отдельно от модулей сборки, но соблюдать такую же структуру папок (например, в папке /sites/default/modules или /sites/example.com/modules ). Если Вы создаете несколько сборок с общими модулями, их нужно положить в папку sites/all/modules
  • 12. Структура каталогов в сборке Open Atrium: Файлы сборки располагаются в каталоге /profiles/openatrium /profiles/openatrium/modules - модули /profiles/openatrium/modules/atrium_features - функции сборки /profiles/openatrium/modules/contrib - модули с drupal.org /profiles/openatrium/modules/custom - модули собственной разработки /profiles/openatrium/modules/developer - для разработчика /profiles/openatrium/modules/l10n - для локализации сборки
  • 14. Основные хуки и функции инсталляционного профиля hook_profile_details() hook_profile_modules() hook_profile_task_list() hook_profile_tasks()
  • 15. hook_profile_details() Возвращаем имя и описание нашего профиля:
  • 16. hook_profile_modules() Возвращаем список устанавливаемых модулей (необходимо упорядочить массив, так чтобы модули с зависимостями, следовали после модулей, от которых они зависят):
  • 17. hook_profile_task_list() Определяем задачи, запускаемые инсталлятором (они появятся в списке задач в левом сайдбаре при инсталляции):
  • 18. Список стандартных задач инсталляции profile-select - Выбор профиля locale-select - Выбор языка requirements - Проверка требований database - Настройка базы данных profile-install - Подготовка пакета модулей для инсталляции и активации profile-install-batch - Инсталляция профиля (модули инсталлированы и активизированы) locale-initial-import - Подготовка к импорту пакетов перевода интерфейса locale-initial-batch - Импорт файлов переводов интерфейса configure - Конфигурирование сайта (форма с логином и паролем админа) profile - Передача управления функции _profile_task() активного инсталляционного профиля profile-finished - Подготовка к импорту остальных переводов интерфейса locale-remaining-batch - Установка остальных переводов интерфейса finished - Уведомление пользователя о завершении инсталляции done - Перестройка меню и отображение начальной страницы
  • 20. Особенности В хуке hook_profile_tasks() можно вызвать аналогичный хук из профиля default, выполнив, его инсталляционные задачи: Также можно вызвать hook_profile_tasks() из любого другого профиля, однако нужно помнить, что если в этом профиле будут устанавливаться модули и они будут лежать в папке этого профиля, то Drupal не сможет их найти, так как он будет искать их только в папке активного профиля.
  • 21. Можно изменять формы с помощью хука hook_form_alter()
  • 22. Можно выводить формы настройки чего-либо, однако необходимо установить свойство "#redirect" в FALSE в массиве формы. (примеры в install_tasks() из файла install.php ). Для перевода используется функция st() , а не t() , так как полная загрузка кода Drupal не выполнена и функция t() не доступна. Поскольку СУБД на этапе инсталляции уже подключена, можно пользоваться функциями для работы с переменными ( variable_set() и variable_get() ). Если известно, что для выполнении задачи может потребоваться длительное время - лучше такую задачу разбить на операции и запустить в виде пакета (Batch). Для установки темы в процессе инсталляции (если тема находиться в папке с профилем) необходимо выполнить код слегка переписанной _system_theme_data() (смотри _openatrium_system_theme_data() )
  • 23. Модуль Install Profile API Install Profile API ( http://drupal.org/project/install_profile_api ) Это набор полезных функций для упрощения создания структуры данных Drupal в процессе инсталляции.
  • 24. Текущая стабильная версия (6.x-2.1) поддерживает следующие модули: core модули: aggregator block book contact filter menu node profile search statistics system taxonomy user contrib модули: content_copy content custom_pagers flag imagecache node_export taxonomy_export tinymce token views wikitools
  • 25. Подключение модуля Для подключения модуля на этапе инсталляции сборки необходимо в хук hook_profile_tasks() профиля в самом начале вызвать функцию модуля install_include() , передав ей в качестве параметров вызов хука hook_profile_modules() .
  • 26. Полезные функции модуля Функции управления нодами и типами материалов: install_add_content_type() install_create_node() install_node_export_import_from_file() Функции управления темами: install_enable_theme() install_disable_theme() install_default_theme() install_admin_theme() Функции управления блоками: install_add_block() install_set_block() install_create_custom_block() Функции управления меню: install_menu_create_menu() install_menu_create_menu_item()
  • 27. Полезные функции (продолжение) Функции управления пользователями: install_add_user() install_add_role() install_add_user_to_role() install_add_permissions() Функции управления таксономией: install_taxonomy_add_vocabulary() install_taxonomy_add_term() install_taxonomy_assign_nid_tid() install_taxonomy_export_import_from_file() Функции управления CCK типами и полями: install_create_field() install_create_field_group() install_content_copy_import_from_file() Функция для создания imagecache пресета: install_imagecache_add_preset() Функция импорта представлений из файла: install_views_ui_import_from_file()
  • 28. Знакомство с набором модулей и тем для создания сборок Модуль Features Модуль Strongarm Модуль Context Модуль Feature Server Тема Rubik/Cube
  • 29. Модуль Features http://drupal.org/project/features Feature - это набор сущностей Drupal собранных вместе для выполнения определенных задач пользователя. Модуль предоставляет интерфейс и API для построения функций (features). Нужен для объединения сущностей и настроек сборки в пакеты Статья: http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal
  • 33. atrium_blog.defaults.inc — значения сущностей (cck field, permissions, и др.) atrium_blog.feature.inc — хуки, отвечающие за сущности atrium_blog.features.node.inc — создание типа материала atrium_blog.features.views.inc — создание представления atrium_blog.module — здесь можно писать свою логику
  • 34. Модуль Strongarm http://drupal.org/project/strongarm Модуль предоставляет API для переопределения переменных (variables) ядра и других модулей . Интегрируется с модулем Features. Нужен для сохранения настроек модулей внутри Features. Статья о модуле: http://developmentseed.org/blog/2009/dec/04/strongarm-2-leaner-and-meaner
  • 35.  
  • 36. Модуль Context http://drupal.org/project/context Позволяет создать контекстные условия и реакции на них. Интегрируется с модулем Features. Нужен для добавления блока в регион и установки активного пункта меню. Статья о модуле и скринкаст: http://developmentseed.org/blog/2009/jan/30/easy-feature-building-spaces
  • 37. Условия В качестве условий можно выбрать следующие (количество зависит от активных модулей): Язык материала Активный пункт меню Тип материала Термин таксономии Путь Роль пользователя Представление
  • 38.  
  • 39. Реакции В качестве реакции можно выполнить следующие действия (зависят от активных модулей): Добавить блок в регион Переключить тему Установить активный пункт меню
  • 40.  
  • 41. Модуль Feature Server http://code.developmentseed.org/featureserver/ Позволяет создавать проекты и делать релизы этих проектов, функций (feature) и тем (theme), а также дает возможность подписываться на обновления и получать уведомления о новых версиях через модуль Update Status (update). Статья о модуле: http://developmentseed.org/blog/2009/jun/25/pushing-public-private-updates-your-feature-server
  • 44. Тема Rubik/Cube http://code.developmentseed.org/rubik/ Тема для администраторского интерфейса, разработанная для совместной работы с модулем admin (версий 6.x-2.x). Зависит от темы Tao ( http://code.developmentseed.org/tao/ ), которая является базовой. Статья по теме Rubik/Cube: http://developmentseed.org/blog/2009/nov/20/admin-rubik-improved-ui-drupal-admins
  • 47. Ресурсы и литература Джон Вандюк. CMS Drupal: система для создания сайтов и управления ими, 2-е изд. : Пер. с англ. - М. : ООО «И.Д. Вильямс», 2009. Installation Profile Utilities - http://drupal.org/node/180078 Writing an installation profile - http://drupal.org/node/67921 Компания DeelopmentSeed - http://developmentseed.org/ Сборка Open Atrium - http://openatrium.com/ Сборка Managing News - http://www.managingnews.com/ Компания Phase2 Technology - http://www.phase2technology.com/ Сборка OpenPublish - http://openpublishapp.com/ Модуль Features - http://drupal.org/project/features http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal
  • 48. Ресурсы и литература (продолжение) Модуль Strongarm - http://drupal.org/project/strongarm http://developmentseed.org/blog/2009/dec/04/strongarm-2-leaner-and-meaner Модуль Context - http://drupal.org/project/context http://developmentseed.org/blog/2009/jan/30/easy-feature-building-spaces Модуль Feature Server - http://code.developmentseed.org/featureserver/ http://developmentseed.org/blog/2009/jun/25/pushing-public-private-updates-your-feature-server Тема Rubik/Cube - http://code.developmentseed.org/rubik/ http://developmentseed.org/blog/2009/nov/20/admin-rubik-improved-ui-drupal-admins Тема Tao - http://code.developmentseed.org/tao/ Модуль Install Profile API - http://drupal.org/project/install_profile_api
  • 49. Докладчик Ершов Андрей [email_address] Компания ARDAS Group, Днепропетровск http://ardas.dp.ua [email_address] Skype: fat.soft ICQ: 198-489-567