Подтвердить что ты не робот

Вставка формы в блок в Drupal?

Есть ли какая-либо команда или метод, которые я могу использовать для вставки содержимого формы (например, регистрационной формы пользователя) в блок?

4b9b3361

Ответ 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.