Есть ли какая-либо команда или метод, которые я могу использовать для вставки содержимого формы (например, регистрационной формы пользователя) в блок?
Вставка формы в блок в Drupal?
Ответ 1
drupal_get_form($form_id)
- поместите его в модуль hook_block
($ op == 'view') или даже... содрогайтесь... внутри блока с фильтром PHP.
Сначала нужно найти идентификатор формы - найдите скрытую input
с именем form_id
в форме. Его значение должно быть идентификатором формы.
Кроме того, вы можете просто использовать Модуль формы.
Ответ 2
В Drupal 7 это выглядит так:
function yourmodule_block_view($delta='')
{
switch($delta) {
case 'your_block_name':
$block['subject'] = null; // Most forms don't have a subject
$block['content'] = drupal_get_form('yourmodule_form_function');
break;
}
return $block;
}
Массив формы, возвращаемый drupal_get_form
, будет автоматически отображаться.
yourmodule_form_function
- это функция (в вашем модуле или существующий модуль Drupal), который возвращает массив формы;
Ответ 3
Другое дело, что он помещает часть кода PHP в базу данных, а не в файловую систему, где находится остальная. Легко забыть и тратить много времени на поиск кода, а grep гораздо удобнее проходить через каждый блок и видеть, есть ли там PHP.