Блог EllECTRONC
6.x → 7.x - Меню: "page callbacks" меню и блоков должны возвращать HTML-массив и hook_page_alter()
"page callbacks" меню и блоков должны возвращать HTML-массив ("render array") вместо строки. Вы должно быть знакомы с HTML-массивами из Form API. Это массивы, которые умеет обрабатывать drupal_render().
6.x → 7.x - БД: Изменена обработка префиксов движков БД
Может потребоваться обновить движки баз данных, у которых своя обработка префиксов, из-за изменений введённых по запросу Заменить strtr() на str_replace() из-за префиксов БД.
-->6.x → 7.x - БД: Тип поля datetime удален в пользу типов специфичных для движков баз данных
Раньше модули могли определять схему баз дынных содержащих поля типа datetime. Поддержка типа datetime убрана из ядра, так как тип datetime не поддерживается всеми движками баз данных, сделав, тем самым, тип 'datetime' ядра искусственно портативным.
6.x → 7.x - БД: db_is_active() удалена
Уходми от db_is_active() для надлежащего перехвата исключения. В Drupal 6 и ранее, если код может работать в ситуации, когда база данных еще не доступа, можно было вызвать db_is_active(), чтобы узнать доступна ли БД. В Drupal 7 код должен просто выполнять запросы как обычно и включать в себя возможность уловить блок вокруг соответствующего раздела кода.
6.x → 7.x - БД: Из node_schema() удалена колонка "на модерации"
Из node_schema() убрали колонку модерирования, так как модерации нет еще с Drupal 5. Контриб модули должны использовать функцию hook_schema_alter(), если им нужна эта колонка.
6.x → 7.x - БД: Таблицы модулей Node, filter и comment переименованы в единственное число
Некоторые таблицы БД переименованы в единственное число для логичности. В модуле node таблица {node_revisions} переименована в {node_revision}.
6.x → 7.x - БД: Префикс баз данных теперь указывается для каждого соединения
Префикс баз дынных больше не указывается глобально через строку/массив $db_prefix. Вместо этого, они определяются для каждого соединения посредством ключа массива 'prefix'. Тем не менее префикс все же может являться как строкой так и массивом, в зависимости от того, у какой таблицы есть префикс. Смотрите документацию в файле settings.php.
6.x → 7.x - БД: Новый шаблон для совместимости БД, производительности и сравнения без учета регистра.
Использование LOWER() при сравнении без учета регистра в MySQL, не допускает использование индексов. Использование LIKE более производительно, однако PostgreSQL применяет LIKE с учетом регистра.
6.x → 7.x - БД: Таблица "Блок" переименована
Таблица ядра 'block' переименована. Модули, которые выполняют операции непосредственно над таблицами, нужно обновить для замены названий таблиц на новые:
- 'blocks' переименован в 'block'
- 'blocks_roles' переименован в 'block_role'
- 'boxes' переименован в 'block_custom'
Вернуться в Оглавление Части 4
-->6.x → 7.x - БД: Параметр $ret удален из всех действий Схемы
Все функции изменения схемы более не принимают параметр $ret. Параметр $ret использовался исключительно в системе обновлений, которая более не нуждается в нем.
6.x → 7.x - БД: В схему базы данных ядра добавлены внешние ключи
В целях документирования, к описанию многих схем таблиц ядра Drupal добавлен раздел внешние ключи. Например, следующее добавлено к forum_schema() в forum.install, чтобы показать что поля nid и vid относятся к тем же полям в таблице node:
6.x → 7.x - БД: Схема базы данных (де)инсталлируется автоматически
Модулям больше не нужно явно устанавливать или удалять свою схему базы данных через hook_install() или hook_uninstall().
6.x → 7.x - БД: Не используйте SELECT COUNT(*) для проверки существующих строк (rows) в таблице
В Drupal 7 по умолчанию создаются таблицы InnoDB, которые не очень хорошо выполняют запросы SELECT COUNT(*) FROM TABLE. Если вам нужно только проверить наличие строк в таблице, вы должны использовать:
6.x → 7.x - БД: db_rewrite_sql() заменен на hook_query_alter()
Удален парсинг строк через db_rewrite_sql() в пользу hook_query_alter(). Вместо передачи дословного запроса через db_rewrite_sql(), чтобы добавить ограничения доступа к материалу, в Drupal 7, например, используется динамический запрос, который помечается (tag) как "node_access".
6.x → 7.x - БД: Описание схемы больше не переводится и пишется как простой текст (не HTML)
Для уменьшения строк перевода, описания схем (таблицы и поля) в модуле install больше не переводятся. Описания API схем (таблицы и поля) в модуле install теперь пишется как простой текст.
-->6.x → 7.x - БД: Добавлено совершенно новое API БД
В Drupal 7 представлено совершенно новое API базы данных, с использованием ряд адинамических построений запросов и подготовленных операторов.
-->Конвертирование (портирование) модулей 6.x в 7.x. Часть 4: База Данных
В части 4 переводов по конвертированию модулей drupal 6.x в 7.x. — все изменения касательно базы данных.
-->Можно ли сделать тему для Drupal 5, 6, 7 не зная CSS, HTML и основ PHP?
Одни скажут — нет. Другие уже догадались, что как минимум нужен, какой-то генератор. И те и другие будут правы. Есть одна (на сколько мне известно) программа-генератор шаблонов для Drupal, WordPress, Joomla, Blogger и некоторых других движков или же просто HTML сайта. Однако то, что с её помощью можно создать, для меня сложно назвать темой или шаблоном.
-->6.x → 7.x - Привилегии: Переименованные и замещенные функции, хуки и настройки
hook_perm() переименован в hook_permission().Перемещение настроек статистики из admin/reports/settings в admin/config/system/statistics и добавление новой привилегии 'administer statistics'. Таблицы {permission} больше нет, вместо нее теперь {role_permission}, которая хранит пары (ID ролей, строки привилегий). Привилегия «использовать PHP для настроек» должна быть использована для всех правил PHP настроек (взамен «использовать PHP для видимости блока»)


