Inserting a form into a block in Drupal?

后端 未结 3 1913
余生分开走
余生分开走 2021-02-02 13:35

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?

相关标签:
3条回答
  • 2021-02-02 14:09

    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;

    0 讨论(0)
  • 2021-02-02 14:18

    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.

    0 讨论(0)
  • 2021-02-02 14:27

    One other thing is that it puts some of the PHP code into the database, instead of in the filesystem where the rest is. It's easy to forget and waste a lot of time searching for the code, and grep is a lot more convenient that going through every block and seeing if the PHP is there.

    0 讨论(0)
提交回复
热议问题