I have a custom module that spits out a form using the drupal form API. What I'd like to do is output a block (a custom menu) in a particular region of the page (using block regions would be the best way I'm guessing.) As of now, the block renders in the top left everytime. How can I output the menu block in a particular region of the page?

function client_menu(){



   'title'=>'Campaign Manager',
   'description'=>'Area for clients to manage their campaigns',
   'page callback'=>'drupal_get_form',
   'page arguments'=>array('client_campaign'),
   'access arguments'=>array('access client administration'),

 return $items;


function client_campaign(){

$block = module_invoke('menu', 'block_view', 'menu-client-admin');
print render($block);

//a bunch of form API stuff...


1 Answer 1


The way you are trying wouldn't work as you are creating a page by creating a menu item. Rather you should visit your block administration page at www.example.com/admin/structure/block. Here you will see the list of all your blocks and available regions in your theme to assign the blocks.

Here is a screenshot: screenshot of block administration page

In the screenshot where you are seeing the select list with none as selected. This list will let you place your block in the available region.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.