Миграция блога с Drupal 7 на WordPress

wordpress-unboxing

Сегодня, как и обещал в предыдущей заметке, опишу отдельные моменты недавней миграции своего блога с движка Drupal 7 на WordPress последней версии и попробую сравнить некоторые из базовых возможностей этих двух систем управления контентом (CMS).

Для переноса данных из одной CMS в другую очень хорошо подошел скрипт индийского веб-разработчика Робина Сингха. После небольших правок его кода (исправление одной мелкой ошибки, отключение проверки на наличие пароля в строке подключения к базам данных и уточнение условий и путей в SQL-запросах) скрипт удалось запустить и статьи из базы данных блога Drupal были за несколько секунд перенесены в пустую базу данных свежеустановленного WordPress. После этого настал черед для воспроизведения средствами WordPress остальных минимальных возможностей, которые были в версии блога на Drupal.

Управление блоками

Блоки (термин в Друпал) или виджеты (термин в ВордПресс) в любой CMS — это независимые фрагменты с дополняющей основную полезной информацией, которые обычно располагают в боковых колонках, в шапке, подвале страницы или над/под основным контентом — там, где нужно показать что-нибудь дополнительно к основному содержанию. В ядре Друпал есть встроенный механизм, позволяющий создавать блоки и размещать их в любом из доступных регионов темы оформления, а также  легко управлять их видимостью в зависимости от адреса страницы с возможностью применения масок адресов или роли пользователя. Это очень удобно.

В ядре WordPress таких возможностей не оказалось, но к счастью нашлись модули, добавляющие этот функционал. Среди множества различных плагинов я выбрал Widget logic и Widget Logic by Path, дающие возможность управлять видимостью блоков (виджетов) наиболее привычным мне способом — через настройки списков адресов страниц. Позже к этой коллекции добавил еще один плагин, но об этом позже.

Визуальный редактор

Визуальный редактор в WordPress, используемый для редактирования содержания статей и страниц, уже встроен в ядро в отличие от Drupal, где его нужно устанавливать отдельно. Это WYSIWYG-редактор TinyMCE. В Drupal в качестве такого редактора можно подключить и TinyMCE, и CKEditor, который также часто используют в связке с отдельно устанавливаемым файловым браузером IMCE (о его подключении в Drupal писал когда-то здесь). В качестве эксперимента я нашел плагин для подключения CKEditor к WordPress, немного поиграл с ним, но потом вернул все к редактору по-умолчанию: особой разницы в том, какой именно визуальный редактор использовать, по большому счету нет, так как все более или менее продвинутые настройки оформления элементов страниц все равно приходится писать непосредственно в режиме отображения кода страниц.

Несколько неудобным показалось то, что картинки в ВордПресс нужно сначала загружать в медиагалерею, а уже потом выбирать оттуда. При этом сама медиагалерея сохраняет пути к файлам в базе данных ВордПресс. При этом по умолчанию, без установки отдельных плагинов, нет возможности управлять структурой папок для хранения картинок — только по годам и месяцам или в одну кучу. Лучше, конечно, по годам. В Друпал, например, к CKEditor легко подключается браузер файлов, который позволяет «на месте» выбирать место для загрузки файлов на сервере, создавать новые папки внутри папки для загрузок (нужен еще один модуль) и конечно, выбирать из загруженных нужный файл для вставки его кода в HTML-тело страницы или блока.

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

Оказалось, что в WordPress менее гибко, чем в Drupal реализовано управление форматами ввода содержимого страниц: например, глобально запрещено внедрение JavaScript в страницы и для добавления такого кода нужно использовать сторонние модули, такие, например, как Hana Code Insert (http://wordpress.org/plugins/hana-code-insert/). В Drupal все иначе — можно создать произвольное количество профилей формата ввода с различным уровнем ограничений по разрешенным к использованию тегам, установить разрешения на использования этих профилей различным группами пользователей, а потом уже выбирать для каждого материала нужный профиль из доступных для текущей роли. При этом Drupal не меняет сам сохраняемый материал, все хранится в базе «как есть», фильтры применяются лишь при выводе сохраненного контента на страницах сайта.

Обработка изображений

Обработка изображений при их загрузке на сервер также происходит по-разному в Drupal и WordPress. В Drupal возможность автоматического создания копий картинок разного размера и с различной обработкой (например, обрезкой, изменением размера или поворотом) заложена в ядро начиная с 7-ой версии и есть возможность создавать произвольное количество профилей для такой обработки. При этом различные копии одного и того же изображения имеют одинаковое исходное имя и сохраняются в разных папках, имеющие т.н. «машинные» названия профилей обработки. Это дает возможность в любой момент поменять размер требуемого изображения в любом профиле и они автоматически будут перегенерированы в обновленном размере при очередном запуске заданий Cron.

В ядре ВордПресс также есть возможность автоматической обработки изображений, но при загрузке изображения создается только три его копии разного размера — миниатюра, среднее и большое. Дополнительные варианты добавить нельзя, а размер изображений прописывается в их названиях. Еще не успел проверить, что произойдет с ранее созданными картинками, если поменять, например, размер создаваемой миниатюры, составляющий по-умолчанию 150 пикселов. Впрочем, для блога вполне достаточно трех предустановленных размеров плюс оригинального, если он больше, чем размер самой большой картинки профиля.

Таксономии (категории)

Возможностей категоризации материалов в ВордПресс для блога вполне достаточно: это рубрики (категории) и метки. Более продвинутые вещи в ВордПресс в отличие от Друпал, не лежат на поверхности. Например, в Друпал можно создать сколько угодно словарей со своими коллекциями категорий или меток, и подключать их произвольно к любым типам материалов, будь то статьи или страницы. В ВордПресс по умолчанию доступны лишь один словарь категорий и один для меток. С помощью сторонних плагинов или своего кода можно расширить эти возможности до друпаловских. Например, по умолчанию в ВордПресс нельзя присваивать метки и категории страницам — странное на мой взгляд ограничение, которое, к счастью, обходится с помощью такого, например, плагина как Add Tags And Category To Page And Post Types (http://wordpress.org/plugins/add-tags-and-category-to-page/). В качестве плюса ВордПресс, но уже в сравнении с CMS Joomla, можно отметить его способность отмечать принадлежность материала сразу к нескольким рубрикам, как, естественно, и в Друпал, в котором помимо этого можно также разрешить или запретить множественный выбор категорий отдельно для каждого набора рубрик.

Темы оформления

Тем оформления для WordPress создано великое множество и даже те, которые идут в «голой» сборке CMS выглядят весьма прилично, значительно приятнее глазу, чем темы по-умолчанию в Drupal. Приятным сюрпризом оказалось и то, что создание тем-наследников (chiled theme) в WordPress предельно упрощено и доступно для любой темы. Я не планировал тратить много времени на оформление блога, но познакомиться с устройством тем изнутри очень хотелось. Выбрал в качестве родительской адаптивную тему Iconic One от Themonic.com и настроил вид подчиненной темы в минималистичном стиле, разбавив однако ее предельный аскетизм небольшими украшениями в виде дополнительных градиентов и картинок от себя.

Помимо упомянутых выше вещей, пришлось также найти плагины для создания бэкапов базы данных блога, для определения через веб-интерфейс перенаправлений с одних адресов на другие, для транслитерации кириллических букв в URL, а также решить кучу других мелких задач по настройке блога, которые, впрочем, еще далеко не закончились ибо нет предела совершенству и совершенствованию.

При подключении комментариев, поддерживаемых сервисом Disqus, также возникли неожиданные проблемы, которые, также удалось в основном решить. Впрочем, это и другие моменты уже могут стать темой для отдельных историй…

Метки: , ,
Понравилась статья? Поделитесь ссылкой в соцсетях: