Drupal 7: вести с фронта


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

режде всего, немного о цикле разработки. В начале сентября был объявлен Code Freeze: остановился прием патчей, добавляющих или изменяющих функциональность и API Drupal. После этого до 15 октября принимались патчи строго ограниченной тематики (чтобы довести начатое до конца), а теперь в ход идут только багфиксы. До релиза еще несколько месяцев, проблем много, но есть надежда на то, что внедренные к этой версии фреймворки автоматического тестирования помогут быстрее их исправить. В этом году релиза не будет точно, да и бета вряд ли поспеет.

Основной состав изменений для Drupal — это подстройка под желания пользователей, интегрирование функциональности очень популярных «апишных» модулей в ядро системы и шлифовка самых отвратительных углов ее программных интерфейсов. Направление «полу-фреймворк, полу-cms» остается неизменным.

Итак, что увидят юзеры:
Новая тема админки. Сменилось как визуальное оформление (оно стало значительно современнее), так и логика работы:


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





Мне это показалось логичным, но слегка непривычным для матерых друпалистов (хотя я, кажется, переучусь очень быстро). Расстраивает, правда, что меню сверху не выпадающее: сам-то я всегда ставлю модуль admin_menu, который рисует сверху менее логичное (в старой логике), но более удобное из-за раскрывающихся пунктов меню. Зато второй ряд ссылок (shortcuts) можно настраивать.

Далее. Теперь функциональность модуля Content (CCK) встроена в ядро Drupal, и мы можем создавать виды контента с различными полями:

Среди типов полей есть «файл» и «изображение». Да, файлы и картинки можно из коробки присоединять к контенту. Более того, в Drupal будет встроена функциональность модуля image_cache, подготавливающего различные версии картинок для превью, ресайзов и т.д.

Изнутри нам ужасно важно то, что таксономия и поля профиля пользователя тоже теперь являются полями контента. Все это называется Field API (это главное новое API в новом релизе Drupal) и избавляет нас от одного из модулей, который приходилось ставить почти всем, а заодно и от холивара «Делать на CCK/писать руками».

Кстати, стандартные типы контента чуток изменились: теперь Story зовется более понятным Article, и по дефолту для них добавлено поле тегов. Овордпрессили, ну и замечательно. Для удобства теперь по умолчанию работают модули Path и Search.

Подготавливается автоматическое обновление модулей и ядра. Пользователя будут уведомлять о выходе новых версий по электронной почте. Cron.php нельзя запускать без ключа безопасности (а можно и вообще не запускать — новый Drupal сам запускает его на одном из запросов пользователя, если он не вызывался долгое время), а скрипты установки и обновления, напротив, стали работать из командной строки.

В простыне прав доступа появились пояснения! Уря!


Появился новый раздел с региональными настройками:


Изменения заметны и в интерфейсе самого сайта: например, для всех редактируемых элементов — блоков, меню и контента — появились соответствующие ссылки. Удобно.


Кстати, и сам интерфейс редактирования блока стал намного лучше — во-первых, логичнее, во-вторых, наконец из него можно вытащить блок в нужный регион:


Наконец, одной из самых приятных новостей стал пересмотр огромной формы добавления-редактирования контента. Вот уж и вправду своевременно:


Что убрали: старые темы, настройку темы под каждого юзера отдельно, ограничение по минимальной длине заголовка контента, выбор «включать ли красивые урлы» (спрашиваете!).

Внутри Drupal прошло значительно изменение API доступа к БД (раньше программистам приходилось регэкспами! корректировать запросы других модулей). Стало намного прозрачнее и правильнее. Однако, по производительности улучшений значимых нет. Желающие использовать Drupal для высоконагруженных проектов (а их, к слову, в последнее время всё больше) все еще вынуждены добавлять свои приемчики кеширования и снижения нагрузки. Однако, работа в этом направлении ведется: помимо возможности использовать другие движки СУБД и гибче масштабировать MySQL благодаря новому API, большая работа ведется по интеграции внешних поисковых индексаторов (модуль Apache Solr, как и многие другие, будет готов ко дню релиза Drupal 7), а необходимый многим модуль Views в следующей инкарнации будет иметь расширенное кеширование и поддержку различных источников данных — можно будет доставать данные непосредственно из того же Solr или, например, Sphinx. К сожалению, на новый Views смотреть еще рано.

Конечно, использовать новую версию как платформу для проектов пока рано, даже если цикл разработки достаточно длинный. Но присматриваться стоит начать уже сейчас.