Очень просто:
- Описать традиционную функцию формы.
- С помощью функции drupal_get_form($form_id) получить структурированный массив формы.
- Преобразовать его в HTML, вызвав drupal_render(&$elements).
- Передать результат Друпалу в хуке module_block_view().
Как это будет выглядеть в коде. Опишем наш блок в функции модуля, реализующей hook_block_info:
function module_block_info() { $blocks['recall'] = array( 'info' => t('Callback block'), 'cache' => DRUPAL_NO_CACHE, ); return $blocks; }
Поскольку при каждом запросе Друпал генерирует для формы уникальный form_token, придется запретить кэширование блока. Далее, создадим hook_block_view: