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 смотреть еще рано.

Конечно, использовать новую версию как платформу для проектов пока рано, даже если цикл разработки достаточно длинный. Но присматриваться стоит начать уже сейчас.
+62
20 октября 2009, 12:51
21
payalnik 107,9

комментарии (71)

+3
Ray #
Спасибо за новость. Интересно. Уже пошел качать и тестировать. )))
+2
gildor #
Вы не упомянули о самом сомнительным нововведении (вернее урезании) — превращении таксономии в тупо теги (т.е. убрали систему связанных тегов и иерархию тегов). Или может общественный гнев победили и все вернули?
0
juliv #
присоединяюсь к вопросу. тоже читал на drupal.ru, о урезании таксономии до вида тегов, как в WP, например.
0
payalnik #
Пока непонятно, что произойдет в итоге. Сейчас связанные теги по дефолту убрали, иерархию оставили.
0
edhell #
Не верю, чтобы иерархиюю убрали. Связанные теги и синонимы практически не используются, но иерархии-то юзаются частенько. Ща скачаю посмотрю.
0
payalnik #
Осталась она там, я выше написал же.
0
yas375 #
Расстраивает, правда, что меню сверху не выпадучее: сам-то я всегда ставлю модуль admin_menu, который рисует сверху менее логичное (в старой логике), но более удобное из-за раскрывающихся пунктов меню. Зато второй ряд ссылок (shortcuts) можно настраивать.

Есть такой модуль: admin, который делает похожую менюшку. Т.е. добавляет вторую строчку, элементы которой настраиваемы (в принципе как и элементы первой). Плюс он еще изменяет логику менюшки. Правда на фронтенде её нету в отличие от admin_menu и d7.

Это я к тому как можно получить нечто похожее в drupal6 ;)
+3
Vorchun #
После прочтения снова появилось желание попробовать поработать с Друпал. Раньше кроме всего прочего пугала админка
0
freeAKK #
а меня пугало количество запросов к базе. я понимаю, что они типо «лёгкие» и кэшируются, но всё же
0
artemK0 #
Новость хорошая, жаль производительность не изменится. На работе сайт один держим, так в времена обеденного перерыва, или выходных дней загинается, сволочь, при уже и так максимальной оптимизации
+5
krig #
ubuntu.com же не падает во время релизов новой версии (предполагаю что тогда и случается самая большая посещаемость), а, рискну предположить, сотрудников у вас на работе меньше, чем убунтоводов в мире. Значит не все оптимизировали что можно.

Какая кстати посещаемость в пиковые моменты, и сколько установлено модулей (достаточно просто сказать количество папок в sites//modules)?
0
artemK0 #
ну а модулей пока что 48, и на момент последнего обвала 35436-ой пользователь онлайн (не считая «гостей») уже ничего не увидел
0
AliraSirin #
35436 пользователей одновременно онлайн на Drupal сайте? а с гостями сколько? и можно пару слов про архитектуру, кеширование?
+1
artemK0 #
Спасибо за статью автору, на отлично справился. Интересно было узнать, что если работать с чем-либо на уровне что каждий винтик знаком — то ты «редиска» и ничего не понимаеш, а если задавать вопросы со знаниями человека который возможно только верстку делал, и то баксов за 5 — так молодец.
+1
AliraSirin #
Простите, это вы сейчас с кем разговаривали?
–1
payalnik #
Присоединяюсь к вопросу.
0
krig #
Нехилая у вас компания =)
Я так понимаю что под этот ресурс у вас либо отдельный сервер, либо на этом сервере не крутится больше ни одной трудоемкой задачи. Кэширование на мэмкэше с разделением «таблиц» по разным хранилищам и в таблицах БД расставлены нужные индексы, после профилирования запросов на средних нагрузках?
+2
artemK0 #
проект пришол к нам на версии 4.6, если не ошибаюсь, тогда изза кеширования почти вся база данных ложилась спать, навсегда. Систему переносили аж на версию 6 более 3-х месяцев. Система разделена на разные сервера, один конечно же главный, но он отвечает только за View. Моя работа заключалась в перелопачивании базы данных и ее максимальной оптимизации, для чего использовались стратегии(не люблю это слово) по уменьшению количества обращений к базе. Читалась тонна умных книжек, но вывод один: меньше запров, меньше таблиц и почти никаких проблем.
+1
Alinaki #
Не поделитесь тайным знанием? Мы на своем проекте всё больше на файловую систему заморачивались, с базой поменьше, но планируем. К слову, это были пользователи анонимные или зарегистрированные?
+1
yas375 #
а еще было бы круто если вы поделитесь тем, как вы организовывали совместную работу над проектом… cvs/svn/git? но больше всего интересует вопрос как быть с базой? я сейчас через dbscripts пытаюсь наладить процесс. вобщем был бы очень признателен если поделитесь знаниями =)
спасибо
0
freeAKK #
у убунту скорее всего просто файловый кэш сгенерированных страниц (а-ля статика)
0
BassEast #
всё в нашем мире улучшается, :) нельзя отказываться от такого гибкого и безопасного монстра, как друпал, только из-за того, что вы переусердствовали с модулями :)
0
artemK0 #
а никто и не собирался отказыватся, друпал первая цмс каторую я начинал разбирать и собирать. Даже курсовую писал по ней. хм
+3
sesharim #
Что я только не перепробовал из существующих CMS, особенно OpenSource, Drupal меня затянул больше всего! Очень гибок, и подходит к большему числу моих задач. Безусловно без «минусов» не обойтись. Рад его развитию.
0
krig #
Видимо уже можно начинать портировать парочку своих неопубликованных модулей, заодно и модули опубликовать и баги поискать/пофиксить.
+2
BassEast #
спасибо большое за статью! Правда, спасибо.
Особенно порадовало присутствие по-дефолту: CCK, поля «файл» и «изображение».
Хорошо бы им ещё Аяксовые комментарии вставить по-умолчанию., было бы приятно, да)
+1
gildor #
Аяксовые комменты при текущей политики набора модулей для ядра маловероятно что попадут. Все нововведения в основном рассчитаны на разработку и на сторонние модули, а не «а давайте добавим еще одну красивую фишку». И по моему это правильно.
0
freeAKK #
> Однако, по производительности улучшений значимых нет.
Печально. обещали, что будут
0
Alinaki #
Кеширование алиасов путей вроде есть :) Уже неплохо же.
+1
not_ice #
сейчас использую MODx для разработки сайтов. когда выбирал цмс, смотрел и друпал, но тогда больше приглянулась модх. когда друпал 7 зарелизится, обязательно попробую.
–15
webmix #
Буквально пару дней назад тестил её на возможность использования. Сделал для себя вывод, что до Joomla ей еще далеко.
+4
payalnik #
:)
0
gildor #
Интересно, по каким параметрам тестили?) И для каких нужд?
0
krig #
В каком классе задач?
+8
pcmaniac #
Видимо не нашёл кнопку «Сделать 3.14здато» ))
+3
casualfatboy #
я конечно очень люблю, уважаю, и всячески продвигаю друпал — делаю на нем все проекты.

но

какой смысл от большинства нововведений?

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

теминг админки это круто, но, опять же, — достигалось контрибами и совсем при необходимости прямыми руками.

я не доволен новым резилом, лучше б фиксили производительность, а так мы получили шестерку с некоторыми контрибами по умолчанию, плюс огромные грабли, заключающиеся в отсутствии модулей — обратная совместимость как никак
+1
payalnik #
Смысла много: во-первых, создание стандарта, на котором будет базироваться разработка (например, поля в CCK очень многое стандартизуют, сделают понятным программисту и пользователю), во-вторых, облегчение работы разработчикам и администраторам (плюсы DBTNG я уже описал), в-третьих, разумные дефолты облегчат знакомство с системой новичкам и расширят сообщество. И т.д.
+2
casualfatboy #
ну да, с точки зрения продвижения в рядах новичков, это супер, согласен.приятный интерфейс, огромная функциональность из коробки. но не стоит оно того, лучше решать первостепенные проблемы.

а по поводу стандарта — по-моему, сск и так используется практически во всех нормальных проектах, как же без него
0
payalnik #
Ну, проблема с интерфейсом и была одной из первостепенных проблем, посмотрите парой комментов выше.

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

А по производительности — работа идет, патчи все еще в пути.
0
Vorchun #
Вы долго с Друпалом работаете и у вас рука набита и глаз замылен. А у нас вот другая цмска и сейас будет на что-то другое переходить. И, как я уже писал выше, для меня эти нововведения очень интересны и полезны.
0
edhell #
Плюс от инегрированного CCK, в частности, в том, что теперь каждый новый релиз Drupal будет содержать рабочий CCK.

Drupal 6 долгое время был неюзабельный из-за незарелизиных cck и views.
(views в текущем виде еще не готов к включения в ядро имхо)
0
pcmaniac #
— А как сделать в Drupal...?
— cck + views!
0
payalnik #
Views грозились запихнуть в ядро бекендом, но, очевидно, решили отложить до момента, когда бекенд Views станет полностью модульным (работа над этим ведется сейчас)
0
edhell #
Не понял что значит «запихнуть в ядро бекендом»?

Views для 6-ки весит больше, чем сам drupal 6. Последние два сайта не шестерке я делал без views и не особо страдаю от этого) Вот без cck никуда, так что drupal7 в этом смысле радует.
0
payalnik #
значит, интегрировать в ядро базовую функциональность без интерфейса и перенести на нее все режимы отображения сайта. Views 3 будет очень модульным.
+1
rrromka #
Большую часть этого веса занимают документация и файлы с переводами. Сам модуль достаточно компактен.
0
edhell #
«Компактен» всё-таки это слишком: 1,2 метра без переводов и документации, а сама шестерка с 33 модулями и темами 3,4.
–1
Pilat #
Интересно, автоматическое обновление появилось?
0
nightday #
Читаем внимательней)
0
Pilat #
«Подготавливается автоматическое обновление модулей и ядра. Пользователя будут уведомлять о выходе новых версий по электронной почте. Cron.php нельзя запускать без ключа безопасности (а можно и вообще не запускать — новый Drupal сам запускает его на одном из запросов пользователя, если он не вызывался долгое время), а скрипты установки и обновления, напротив, стали работать из командной строки.»

Как-то туманно. Наверно, надо оригинал почитать. Уведомления уже в 6-й есть, но толку с них, надо бэкапить, ставить… геморрой в общем.
0
payalnik #
Что конкретно непонятно? Про «подготавливается» — значит, пока я его работы не увидел (серверная часть, видимо, не готова), остальное описанное в данном абзаце работает.
+1
gildor #
Самое интересное как будут обновляться модули. Все таки API серьезно изменился и с точки зрения перевода модуля с 6 на 7 работы много (особенно если делать его не механически, а с переводом его на новый стандарт кодинга (прежде всего Form API и DB API)).
Но активность разработчиков контриб модулей радует. Уже на многих красуется тег #D7CX («Версия для 7-ки выйдет в день релиза»).
Скорость перехода с 6-ки на 7-ку будет зависеть прежде всего от того, как скоро все самые популярные (и во многом критичные с точки зрения скорости и удобства разработки) модули обновятся.
+1
edhell #
Таксономию хорошо перелопатили в 7-ке:

* к терминам можно добавлять «cck-поля»!;
* терминам можно прописывать алиасы (вместо стандартного страшненького taxonomy/term/tid);
* сама таксономия цепляется к материалам как поле (в 6-ке реализуется отдельным модулем);
* кроме autocomplete-тегов и select-списка термины теперь можно выбирать через радиокнопки/чекбоксы;
* связаные термины и синонимы убрали, иерархия осталась.
0
AliraSirin #
Я что-то путаю, наверное — вроде бы собирались переходить на ООП на уровне ядра? Как-то пропустила этот момент, что там в итоге?
0
edhell #
Начали немного делать. В includes/ некоторые вещи написаны с использованием классов/интерфейсов/наследования. Работу с базами данных передалали на ООП.

Но хуки никто не отменял и в модулях никакого ООП, кроме, пожалуй, тестов (лежат файлики *.test в каждом модуле).
0
edhell #
Про админку: непонятно зачем по дефолту осталось стандартное админское меню в левой панели с ссылками «add new content» и «administer», если теперь админка в шапке.

Увидев скриншот с тизером с ссылками «edit» и «delete» подумал, что такие же ссылки сделали и на странице ноды вместо вкладок. Но пока что вкладки есть. Вообще вкладки сильно меняют дизайн для админа, может простенькими ссылками справа было бы и лучше.

В релизе может это еще поменяют.
+1
SpooNesT #
Печально, что с производительностью улучшений нет. А какая нагрузка для Drupal считатеся уже значительной?
–5
Scala #
При наличии даже средних навыков программирования уже стоит смотреть в сторону Zend, Rails, Django, Grails и прочих.
+1
v673 #
Простите, Вы это к чему сказали?
0
Scala #
К нытью многих о кривых кишках и низкой производительности.
0
sitehound #
Ну о кривых кишках — не совсем справедливо. А низкая производительность — правда. Хотя, Друпал 6 даже с views/cck вполне сносно работает даже на таких хостингах как powweb или godaddy — с строю по несколько проектов в месяц. Жалобы возникают когда на самом деле много тяжелого функционала и много пользователей, зарегистирированных на сайте (социальная сеть) тогда да.
0
sitehound #
Единственное чего я боюсь каждый раз — это как бы они не стали урезать гибкость ради упрощения.
0
sergtop #
drupal 7 — это отлично в любом случае
очень не весело тем, кому нужно переносить проекты с одной версии на другую
пробовал перенести хотя бы тему из 6 в 7 — увы… большая часть переменных изменена, css блоки называются совершенно по-другому, а список изменений в модулях занял около 70 печатных страниц
0
Dart #
подписываюсь под каждым словом.
0
Ashina #
Очень порадовала новость! Однако то что убрали индивидуальное оформление для каждого юзера — не нравится. А так овордпрессили, подшлифовали (даже серч теперь сам включается =))
0
Alinaki #
Убрали из ядра — будут кастомные модули. Уж эту-то хрень далеко не все используют.
0
nodoxi #
производительности бы еще, тогда вообще идеально будет
0
lasc #
что-то Ubercart под 6ку ели допилили. а под 7 даже dev версии нет ;(
0
JuniorYa #
Чет под семерку вообще мало чего есть, адекватно работающего(
0
aknizubr #
Что
0
Rubaka #
спасибо за статью, изменения порадовали, насколько легко можно будет обновиться с 6 на 7?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.