Вставить форму в блок в Drupal? - PullRequest
18 голосов
/ 20 сентября 2009

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

Ответы [ 3 ]

26 голосов
/ 11 марта 2011

В 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), которая возвращает массив форм;

15 голосов
/ 20 сентября 2009

drupal_get_form($form_id) - поместите его в модуль hook_block ($ op == 'view') или даже ... дрожь ... внутри блока с PHP фильтр включен.

Сначала нужно найти идентификатор формы - найдите скрытый input с именем form_id внутри формы. Его значение должно быть идентификатором формы.

Кроме того, вы можете просто использовать модуль Form Block .

0 голосов
/ 21 сентября 2009

Еще одна вещь состоит в том, что он помещает часть кода PHP в базу данных, а не в файловую систему, где находится остальная часть. Легко забыть и тратить много времени на поиск кода, и grep намного удобнее, чем проходить через каждый блок и проверять наличие PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...