Ершов Андрей ershov.andrey@gmail.com ARDAS Group info@ardas.dp.ua Инсталляционные профили, создание сборок.

Презентация:



Advertisements
Похожие презентации
Разработка модуля для CMS Drupal на примере разработки плагина для модуля CCK Роман Архаров.
Advertisements

Мастер-класс «Привет, Drupal!». Партнер мастер- класса
Построение сообществ на Drupal, интеграция с сервисами Google Анна Федорук, Клера Виленская Sterno.Ru.
Практическое использование модуля Panels Виктор Богуцкий.
Drupal: организация разработки. Генеральный спонсор и организатор конференции DrupalConf 2011 При поддержке:
Свой проект на Drupal.org От идеи до первого релиза Константин Комелин Йошкар-Ола.
ИСОратник Инсталляция и конфигурирование программы в локальной сети.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
УПРАВЛЕНИЕ РАБОТОЙ ПОДСИСТЕМЫ «ВЕДЕНИЯ». Управление работой подсистемы «Ведения», в основном, сводится к следующему: Основные возможности управление доступом.
Содержание: Регистрация в Ucoz Регистрация в Ucoz Шаг 1: Выбор доменного имени будущего сайта. Шаг 1: Выбор доменного имени будущего сайта. Шаг 2: Подготовка.
Разработка видеокаталога ShowSpy.org на Drupal Александр Л. samik.name.
СкайДокАрхив Система ведения электронного архива.
Миграция данных с помощью Feeds для кликеров. Когда использовать Агрегирование данных Перенос данных с других платформ Перенос данных с Drupal 6 на Drupal.
Генеральный спонсор и организатор конференции DrupalConf 2011 При поддержке:
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Компоненты 2.0 1C-Битрикс: управление сайтом Артем Рябинков к.т.н, руководитель отдела партнерских и корпоративных продаж Компания «Битрикс»
Инструкция по работе с сервисом Web 2.0. Интернет сервис Web 2.0 Smilebox Краткое описание С помощью этого сервиса можно просто и легко демонстрировать.
Печать документов Борисов В.А. Красноармейский филиал ГОУ ВПО «Академия народного хозяйства при Правительстве РФ» Красноармейск 2009 г.
Выполнение запросов, создание и редактирование отчета MS Access.
Drush и Drupal администрирование. План Зачем Drush? Что это такое? Установка Drush Основные команды Установка Drupal через командную строку Минусы Drush.
Транксрипт:

Ершов Андрей ARDAS Group Инсталляционные профили, создание сборок.

План доклада 1. Что такое сборка, примеры сборок 2. Что такое инсталляционный профиль 2.1. Где находятся профили Рекомендуемое расположение модулей и тем в профилях 2.2. Жизненный цикл инсталляционного профиля 2.3. Основные хуки hook_profile_modules() - список устанавливаемых модулей hook_profile_task_list() - задачи, запускаемые инсталлятором 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одержит в себе ядро, модули и их настройки.

Предназначена для построения интранет порталов. Имеет 6 основных функций: 1. Блог 2. Вики 3. Календарь 4. Список дел 5. Мини-чат 6. Панель управления Open Atrium (

предназначена для: Сбора Агрегации Визуализации данных Managing News (

предназначена для реализации различных средств массовой информации: Профессиональных изданий Сайт журналов Газет OpenPublish (

Что такое инсталляционный профиль Инсталляционный профиль это набор параметров инсталляции 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 ( Это набор полезных функций для упрощения создания структуры данных 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_fr om_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_fr om_file() Функции управления CCK типами и полями: install_create_field() install_create_field_group() install_content_copy_import_f rom_file() Функция для создания imagecache пресета: install_imagecache_add_preset() Функция импорта представлений из файла: install_views_ui_import_from_fil e()

Знакомство с набором модулей и тем для создания сборок Модуль Features Модуль Strongarm Модуль Context Модуль Feature Server Тема Rubik/Cube

Модуль Features Feature - это набор сущностей Drupal собранных вместе для выполнения определенных задач пользователя. Модуль предоставляет интерфейс и API для построения функций (features). Нужен для объединения сущностей и настроек сборки в пакеты Статья:

Основная идея модуля 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 Модуль предоставляет API для переопределения переменных (variables) ядра и других модулей. Интегрируется с модулем Features. Нужен для сохранения настроек модулей внутри Features. Статья о модуле:

Модуль Context Позволяет создать контекстные условия и реакции на них. Интегрируется с модулем Features. Нужен для добавления блока в регион и установки активного пункта меню. Статья о модуле и скринкаст:

Условия В качестве условий можно выбрать следующие (количество зависит от активных модулей): Язык материала Активный пункт меню Тип материала Термин таксономии Путь Роль пользователя Представление

Реакции В качестве реакции можно выполнить следующие действия (зависят от активных модулей): Добавить блок в регион Переключить тему Установить активный пункт меню

Модуль Feature Server Позволяет создавать проекты и делать релизы этих проектов, функций (feature) и тем (theme), а также дает возможность подписываться на обновления и получать уведомления о новых версиях через модуль Update Status (update). Статья о модуле: feature-server

Создаем проект

Делаем релиз модуля

Тема Rubik/Cube Тема для администраторского интерфейса, разработанная для совместной работы с модулем admin (версий 6.x-2.x). Зависит от темы Tao ( которая является базовой. Статья по теме Rubik/Cube:

Тема Rubik

Тема Cube

Ресурсы и литература Джон Вандюк. CMS Drupal: система для создания сайтов и управления ими, 2-е изд. : Пер. с англ. - М. : ООО «И.Д. Вильямс», Installation Profile Utilities - Writing an installation profile - Компания DeelopmentSeed - Сборка Open Atrium - Сборка Managing News - Компания Phase2 Technology - Сборка OpenPublish - Модуль Features -

Ресурсы и литература (продолжение) Модуль Strongarm Модуль Context Модуль Feature Server feature-server Тема Rubik/Cube Тема Tao - Модуль Install Profile API -

Докладчик Ершов Андрей Компания ARDAS Group, Днепропетровск Skype: fat.soft ICQ: