Прошел еще один тренд, теперь drupal_get_form возвращает не отрисованную форму, а массив. Так что, господа кодеры, настраиваемся переделывать все формы ввода
Подробности в issue http://drupal.org/node/353069
Прошел еще один тренд, теперь drupal_get_form возвращает не отрисованную форму, а массив. Так что, господа кодеры, настраиваемся переделывать все формы ввода
Подробности в issue http://drupal.org/node/353069
Комментарии
Собственно сам commit http://drupal.org/cvs?commit=210216
зачем же переделывать?
drupal_render да и все
зы новые хуки блоков нравятся
Вообще-то, я только "за". До этого, чтобы получить конечную форму без рендера, надо было делать это в три шага.
Клево, главное, чтобы и инструменты рендеринга остались, не вручную же потом формы компоновать
Насколько я понял, это сделано для того, чтобы к страницам, у которых коллбек функция возвращает форму можно было применить новый hook_page_alter(). В качестве примера использования указывается возможность разнести форму по регионам, что невозможно сделать с помощью hook_form_alter(). В 7-ом друпале коллбек функция должна будет возвращать массив значений, а не отрендеренную из него строку.
В Друпале-7 на основе drupal_render() теперь сделана и генерация страницы.
Мне этот новый механизм тоже пока нравится. Он гораздо более гибкий, чем старый.
1. Так, active_handler теперь может формировать ВСЮ страницу, а не только контент. Страница представляет собой древовидный массив $page, active_handler может вернуть либо готовую $page, либо, как раньше - строку (тогда создается стандартная $page, а эта строка помещается в content).
2. Другие модули могут изменить $page через hook_page_alter(). В частности, через этот хук размещаются блоки.
3. В конце каждый уровень $page рекурсивно рендерится через drupal_render(), пока не получим готовую страницу.
4. Причем, для любого элемента $page можно указать тему, которой этот эл-т темизировать.
5. Также, если какой-то элемент $page есть в готовом виде, можно положить этот готовый код в $page...['element']['#markup'], соответственно, рендеринг сильно ускорится. А если еще немного переделать модули block и node, чтобы они умели отдавать #markup - вообще сказка будет с точки зрения производительности
Модули block и node можно обрулить перекрыв hook_menu_alter и подсунув в общий массив уже кешированные части контента.
Действительно начали облегчать темизацию
Да, можно выводить ноды своим active_handler. Кстати, спасибо за hook_menu_alter, раньше я его как-то не замечал Я имел в виду - неплохо было бы, чтобы дошло дело до изменения "ядерных" модулей block и node.
Эта тема - на самом деле - хорошая идея, потому что за всем не уследишь, и можно много интересного пропустить. Меня, например, больше интересуют нововведения с точки зрения программиста, и особенно производительность.
shp, block уже не в ядре
Принципиально это ничего не меняет Хорошо, можно назвать эти модули "стандартными"