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

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

    Комментарии 71

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

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

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

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

                                            но

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                                  Самое читаемое