Inserting a form into a block in Drupal?

25,667

Solution 1

drupal_get_form($form_id) - put it in a module's hook_block ($op=='view') or even... shudder... inside a block with PHP filter on.

You need to find the form id first - look for a hidden input with the name form_id within the form. Its value should be the the form id.

Also, you could simply use the Form Block module.

Solution 2

In Drupal 7, it looks like this:

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;
 }

The form array returned by drupal_get_form will be automatically rendered.

yourmodule_form_function is a function (in your module or an existing Drupal module) that returns the form array;

Share:
25,667
rockstardev
Author by

rockstardev

Updated on July 05, 2022

Comments

  • rockstardev
    rockstardev almost 2 years

    Is there any command or method that I can use to insert the contents of a form (e.g. the user registration form) into a block?