Финальная альфа-версия Drupal 7 вышла три недели назад, а сегодня разработчики с гордостью заявляют о первой бета-версии Drupal 7.x!
Выход бета-версии взамен альфа означает следующее:
- Разработчики считают, что исправили все баги, связанные с потерей данных или дырах в безопасности Drupal 7.
- Разработчики считают, что новый API стабилен достаточно для создания модулей и тем.
- Разработчики считают, что нашли и исправили большинство проблем, связанных с переходом со старой версии Drupal на новую. Кроме того им удалось успешно обновить базу данных веб-сайта Drupal.org на версию Drupal 7.
Наиболее важные изменения по сравнению с Drupal 6
- Базы данных:
- Полностью переписан уровень работы с БД с использованием уровня абстракции PDO PHP 5.
- В настоящее время для установки и работы Drupal необходима СУБД MySQL >= 5.0.15 и PostgreSQL >= 8.3.
- Добавлены построители запросов для INSERT, UPDATE, DELETE, MERGE и SELECT.
- Поддержка репликации master/slave, транзакций, запросы на множественную вставку и другие функции.
- Добавлена поддержка баз данных SQLite.
- Если доступна СУБД MySQL, то движком БД по умолчанию будет InnoDB, а не MyISAM, как было раньше. Это обеспечивает высокую масштабируемость и целостность данных.
- Безопасность:
- Добавлена защита запуска cron.php — крон запустится, только если указан правильных ключ доступа.
- Реализовано ограничение попыток входа в систему для предотвращения подбора паролей, а также доступа пользователей к ресурсам (например, загрузки файлов).
- Модуль "Update status" преобразован в "Update manager", который позволит безопасно устанавливать и обновлять модули и темы через веб-интерфейс.
- Удобство:
- Добавлены контекстные ссылки (известные как local tasks) для элементов страницы, таких как блоки, ноды или комментарии, которые позволяют выполнить большинство распространенных задач в один клик.
- Улучшена проверка требований при установке Drupal.
- Улучшена интеграция с WYSIWYG-редакторами.
- Реализовано перетаскивание в списке фильтров ввода.
- Реализовано перетаскивание в списке языков.
- Реализовано перетаскивание в списке вариантов ответа для опросов.
- Предоставлена возможность указать описания и понятные названия для разрешений пользователей.
- Удалены элементы управления комментариями для пользователей.
- Удалены настройки отображения комментариев в модуле Comment. Теперь порядок отображения комментариев можно настроить с помощью модуля Views.
- Удалена функция 'связанные термины' из модуля Taxonomy, так как того же функционала можно добиться с помощью Field API.
- Добавлены дополнительные функции для профиля установки по умолчанию и реализован специальный профиль установки для разработчиков.
- Добавлена встроенная функция автоматического запуска крона, срабатываемого при посещениях сайта пользователями.
- Добавлена роль администратора, которой автоматически назначаются все разрешения для установленных модулей.
- Графические библиотеки теперь предоставляются модулями (раньше они хранились в файлах каталога includes).
- Добавлена вкладка редактирования на странице термина таксономии.
- Изменен дизайн при проверке надежности пароля.
- Изменен дизайн окна добавления типа содержимого.
- Добавлено подсвечивание дублирующих URL-алиасов.
- "Input formats" переименовано в "text formats".
- Разрешения на текстовые форматы перемещены на основную страницу разрешений.
- Добавлена настраиваемая функция для пользователей, позволяющая удалить им свой аккаунт.
- Добавлены "вертикальные вкладки", новый компонент интерфейса.
- Раскрывающиеся группы полей на странице добавления и редактирования ноды заменены на вертикальные вкладки.
- Производительность:
- Повышена производительность на некешируемых страницах благодаря загрузке нескольких объектов ядра в одном запросе к БД.
- Повышена производительность для пользователей, вошедших в систему, благодаря уменьшению количества запросов для определения алиасов пути.
- Улучшена поддержка HTTP-прокси, позволяя обслуживать просмотр страниц пользователями, не вошедшими в систему, через прокси.
- Документирование:
- Документация по Hook API теперь включена в ядро Drupal.
- Агрегатор новостей:
- Добавлены функции импорта OPML для RSS-лент.
- Поиск:
- Добавлена поддержка для многоязычного поиска.
- Агрегатор:
- Внедрена архитектура, которая позволяет подключаемым парсерам и процессорам публиковать ленты RSS и Atom.
- Добавлены функции для приостановки обновления отдельных лент RSS.
- Тестирование:
- Добавлен фреймворк тестов и тестовые наборы.
- Улучшенная поддержка временных зон:
- Теперь Drupal использует базу данных временных зон PHP при отображении дат в локальном формате. Сдвиги временных зон для всего сайта и конкретных пользователей преобразуются в названия временных зон, например Европа/Москва.
- Если ваш сайт обновляется с Drupal 6 и у вас не были установлены модули Date или Event, временные зоны пользователей будут изменены на временную зону сайта.
- Временные зоны для пользователей теперь используются в качестве временной зоны по умолчанию в функциях date/time PHP.
- Система HTML-фильтров:
- Обновлен API фильтров и способ хранения текстовых форматов.
- Добавлена возможность назначения форматов по умолчанию для отдельных ролей.
- Выполнен рефакторинг HTML-корректора с использованием преимуществ PHP 5.
- Управление пользователями:
- Добавлены понятные API функции для создания, получения, изменения и удаления ролей и разрешений пользователей.
- Выполнен рефакторинг компонента "правил доступа" в модуле User: Теперь модуль User предоставляет простой интерфейс для блокировки отдельных IP-адресов. Прежний функционал в модуле User для ограничения доступа по конкретным E-mail адресам или логинам теперь предоставляется другим модулем. Кроме того, блокировка по диапазону IP-адресов больше не поддерживается и должна реализовываться на уровне ОС.
- Удалена настройка тем для отдельных пользователей: существуют модули, предоставляющие похожие функции.
- OpenID:
- Добавлена поддержка для Gmail и Google Apps для идентификаторов доменов. Теперь пользователи могут входить с помощью их идентификаторов вида user@domain.com, если domain.com поддерживается Google.
- Модуль OpenID стал более легкоподключаемым.
- Добавлен реестр исходного кода
- Используя реестр, модули объявляют свои файлы с помощью файла .info, позволяя Drupal подключать классы и интерфейсы по необходимости.
- Темизация:
- Удалены темы Bluemarine, Chameleon и Pushbutton. Теперь они устанавливаются отдельно (http://drupal.org/project/bluemarine [7], http://drupal.org/project/chameleon [8] и http://drupal.org/project/pushbutton [9]).
- Добавлена тема Stark для предоставления более простого анализа HTML и CSS параметров Drupal, заданных по умолчанию.
- Добавлена тема Seven в качестве темы по умолчанию для интерфейса администрирования.
- Предварительная обработка переменных в хуках тем перед обработкой шаблона теперь проходит два этапа: этап 'preprocess' и новый этап 'process'. Подробности можно узнать по адресу http://api.drupal.org/api/function/theme/7 [10].
- Хуки тем, реализованные в виде функций (а не в виде шаблонов) теперь могут также иметь функции preprocess (and process). Подробности на http://api.drupal.org/api/function/theme/7 [10].
- Работа с файлами:
- Теперь файлы являются первым классом в Drupal c функциями file_load(), file_save() и file_validate() и соответствующими хуками.
- Функции file_move(), file_copy() и file_delete() теперь манипулируют объектами файлов и вызывают хуки файлов, передавая сообщения модулям, которые могут ответить на изменения.
- В случаях, когда необходимы только базовые операции с файлами, когда не требуется усиленная работа с БД и хуками, следуют использовать неуправляемые варианты функций file_move(), file_copy() и file_delete(), которые называются также но с префиксом file_unmanaged_*() вместо file_*().
- Переписан механизм обработки файлов для использования поточной работы с файлами в PHP, которая включает поддержку публичной и защищенной файловой системы Drupal и настраиваемые механизмы хранения и доступа к удаленным ресурсам (например, фотографиям Flickr).
- Переменная mime_extension_mapping была удалена. Модули, которым необходимо изменять сопоставление MIME-типов расширениям файлов следует использовать хук hook_file_mimetype_mapping_alter().
- Добавлен хук hook_file_url_alter() hook, который делает возможным работу с файлами через CDN.
- Добавлен специальный тип полей для загружаемых файлов, который ранее был реализован в модуле FileField.
- Обработка изображений:
- Усовершенствована обработка изображений, включая улучшенную поддержку для дополнительных библиотек по работе с изображениями.
- Добавлен API и интерфейс для создания эскизов изображений (уменьшенных копий).
- Добавлены новые эффекты, такие как поворот и обесцвечивание.
- Добавлен специальный тип полей для загружаемых изображений, который ранее был реализован в модуле ImageField.
- Добавлена поддержка алиасов при многосайтовости:
- Добавлена поддержка сопоставления имен доменов с директориями сайта.
- Добавлена поддержка RDF:
- Модули могут объявлять пространства имен RDF, которые могут быть сериализованы в теге <html> для поддержки RDFa.
- Модули могут указывать, каким образом их структуры данных сопоставляются с RDF.
- Добавлена поддержка экспорта RDFa для нод, комментариев, терминов, пользователей и т.д, включая поля.
- SEO и ссылки:
- Добавлена ссылка с rel="canonical" страницах нод и комментариев для предотвращения индексирования дублированного контента поисковыми системами.
- Добавлена ссылка по умолчанию с rel="shortlink" для страниц нод и комментариев в качестве альтернативного URL-адреса для внешних сервисов.
- Мета-информация теперь изменяется любыми модулями до момента вывода.
- Field API:
- Настраиваемые поля могут быть прикреплены к нодам, пользователям, комментариям и терминам таксономии.
- Текст и аннотации нод теперь являются полями Field API.
- Предоставляется больше функций бывшего модуля Content Construction Kit (CCK).
- Термины таксономии теперь являются полями Field API, которые могут быть добавлены к любому объекту, допускающие поля Field API.
- Установщик:
- Выполнен рефакторинг установщика в API, который позволяет устанавливать Drupal с помощью скрипта в режиме командной строки.
- Организация страниц:
- Область с текстом помощи реализована в качестве региона с блоками.
- Настройка миссии сайта была удалена.
- Настройка сообщения внизу страницы была удалена, так как такой же функционал предоставляют блоки.
- Основное содержимое страницы реализовано в виде блока, который может быть перемещен в любом регионе на странице.
- Теперь блоки могут возвращать структурированные массивы для последующей обработки.
- Система перевода:
- Система перевода теперь поддерживает контекст сообщений (msgctxt).
- Добавлена поддержка переводимых полей в Field API.
- Изменения в JavaScript:
- Обновлена библиотека JavaScript на jQuery 1.4.2.
- Обновлена библиотека jQuery Forms до версии 2.36.
- Добавлен jQuery UI 1.8, который вносит значительные улучшения в интерфейс пользователя Drupal.
- Улучшенная поддержка версионности модулей:
- Теперь модули могут указывать, от каких версий других модулей они зависят.
- Модули, удаленные из ядра
Следующие модули были удалены из ядра, так как существуют другие модули с похожей функциональностью:
- Blog API
- Ping
- Throttle
- Улучшена система контроля доступа к нодам:
- Теперь любой модуль может повлиять на доступ к нодам во время выполнения, а не только определив соответствующие ноды.
- Теперь пользователи могут получать доступ к отдельным нодам без предоставления им полного доступа к сайту.
- Контроль доступа влияет как на опубликованные, так и на неопубликованные ноды.
- Другие многочисленные усовершенствования системы доступа к нодам.
- Система действий и триггеров:
- Упрощена установка действий и триггеров.
- Устранена зависимость от комбинации хуков и операций. Теперь триггеры обращаются напрямую к хукам модулей.
- Обработка задач:
- Добавлен API очередей для обработки нескольких задач или задач, выполняющихся долгое время.
- Добавлена поддержка API очередей для API крона.
- Добавлен фреймворк блокировки для управления операций, выполняющихся долгое время.