Переход с Drupal 7 на Grav¶
Требования¶
- PHP v7.1 или выше для зависимостей composer.
- Drush
- Работающий сайт Drupal 7, из которого будет экспортирован контент.
- Доступ на чтение и запись к
public://, а также к папке пользовательских модулей сайта Drupal (обычноsites/all/modules/contrib).
Установка¶
- Скачайте плагин grav_export и переместите его в папку
sites/all/modules/contribвашего Drupal. - Выполните
composer installв папкеgrav_export, чтобы установить зависимости. - Включите модуль grav_export через
drush en grav_export -yили графический интерфейс администрирования. - Выполните
drush grav_export_allили его псевдонимdrush gravea, чтобы экспортировать все элементы. Другие варианты см. ниже. - Экспортированные файлы находятся в
[DRUPAL_ROOT]/sites/default/files/grav_export/EXPORT - Для просмотра и управления пользователями рекомендуется плагин Grav https://github.com/david-szabo97/grav-plugin-admin-addon-user-manager.
- Выполните шаги ниже, чтобы импортировать данные в Grav.
Экспорт пользователей из Drupal¶
Команда¶
drush grav_export_users или drush graveu создадут файлы учётных записей Grav.
Результаты¶
- Учётные записи в папке экспорта
EXPORT/accounts/. - Имена пользователей дополняются до минимума в 3 символа и максимума в 16.
- Если имя пользователя усечено или дополнено, к нему также добавляется uid Drupal, чтобы избежать конфликтов.
- Пароли в каждой учётной записи генерируются случайно и не связаны с соответствующей учётной записью Drupal. При первой аутентификации пароль автоматически заменяется на
hashed_password.
Импорт пользователей в Grav¶
Скопируйте папку EXPORT/accounts в вашу папку user (например, файлы username.yaml должны оказаться в user/accounts).
Экспорт ролей пользователей из Drupal¶
Команда¶
drush grav_export_roles или drush graver создадут файл groups.yaml Grav.
Результаты¶
Роли пользователей Drupal экспортируются как группы Grav в файл groups.yaml по пути config/groups.yaml. Несколько замечаний об экспорте ролей:
- Каждая роль Drupal преобразуется в группу Grav
drupal_<ROLE_WITH_UNDERSCORES>(например,authenticated userстановитсяdrupal_authenticated_user). - Группа
drupal_administratorполучает доступadmin.superвместе с доступомadmin.login. - Группа
drupal_authenticated_userполучает доступadmin.login. - Все учётные записи получают группу «drupal_authenticated_user».
- Пользователи Drupal с ролью администратора получают группу
drupal_administrator.
Импорт ролей пользователей¶
Скопируйте папку EXPORT/config в users/config.
Экспорт типов контента из Drupal¶
Команда¶
drush grav_export_content_types или drush gravect создадут схемы Grav и файлы html.twig.
Результаты¶
Для каждого определённого типа поля drush gravect попытается создать совместимую схему и соответствующий файл html.twig для каждого типа контента Drupal. Файлы будут экспортированы в EXPORT/themes/drupal_export/blueprints и EXPORT/themes/drupal_export/templates соответственно.
Известные ограничения¶
- Поле «number_integer»
Кардинальность многих полей Grav поддерживает только одно значение. Экспортируется только первая запись Drupal.
- Поле «addressfield»
В Grav нет понятия поля адреса. Данные поля Drupal экспортируются как тип формы array.
Импорт типов контента в Grav¶
Скопируйте папки EXPORT/themes/drupal_export/blueprints и EXPORT/themes/drupal_export/templates в активную тему Grav. Плагин админки теперь должен предоставлять дополнительные параметры для каждого типа контента и связанных полей.
Примечание. Хотя содержимое полей добавляется в заголовки страниц Grav, отображение этих полей не экспортируется из Drupal. Файл html.twig нужно будет изменить, чтобы показывать дополнительные поля (помимо основного содержимого).
Экспорт узлов из Drupal¶
Команда¶
drush grav_export_nodes или drush graven создадут пользователей и группы Grav.
Результаты¶
- Каждый узел экспортируется в собственную структуру папок в
EXPORT/pagesна основе URL-псевдонима и типа контента Drupal (то естьpages/content/my_first_page/page.yamlилиpages/content/cool_article/article.yaml). - Данные полей Drupal хранятся в заголовке страницы.
- Файлы хранятся в
EXPORT/data/files/по модели хранения, похожей на Drupal. - В выводе drush могут появляться дополнительные термины таксономии. Скопируйте их в файл
user/config/site.yamlGrav под ключом таксономии.
Импорт узлов в страницы Grav¶
Скопируйте папки EXPORT/data и EXPORT/pages в папку user в Grav.