0

I have a problem that I have been working for hours now. Basically, I would like to place a block next to the comments div. So, in the footer of my page, I'd have all the user comments to the left and in the right side, I'd have my block. I know I have to do some realignment in the page.tpl.php, but I just can't get the comments div and the block div to appear side by side. Would appreciate any help on this.

Edit:

I added this in my template.php file:

/** * Custom function to render a block to manually position it in the node.tpl.php markup */ function mytheme_block_render($module, $block_id) { $block = block_load($module, $block_id); $block_content = _block_render_blocks(array($block)); $build = _block_get_renderable_array($block_content); $block_rendered = drupal_render($build); return $block_rendered; } function mytheme_preprocess_node(&$vars) { //Add the related_by_term block to the variables array so that we can render it in our node.tpl.php file $vars['my_block'] = block_render('views', 'my_block-block_1'); } 

And in my node.tpl.php, I added this after the comments section:

<?php print $my_block; ?> 

But what I am getting is a memory limit exceeded error. Basically, the block_render function is causing some problem. It's this line that is causing the problem:

_block_render_blocks(array($block)); 

Any input would be highly appreciated. Spending hours on this issue. Thank you...

2
  • which theme are you using? or have you created your own custom theme? Commented Jan 25, 2013 at 6:12
  • I have my own custom theme. Commented Jan 25, 2013 at 6:33

1 Answer 1

1

The regions are usually printed in the page.tpl.php

And the comments are printed with in the node.tpl.php

You could follow the below steps to get a region with in node.tpl.php

  1. Add a region in the .info file by adding regions[custom] = Custom
  2. If you already have a preprocess_node in you theme template.php then add the below code or else create a function in the template.php with the name mythemename_preprocess_node(&$variables)

    $variables['custom'] = block_get_blocks_by_region('custom');

This would give you a variable with in the node.tpl.php named custom. This is a renderable array of the blocks with in the region.

Now in your node.tpl.php you would be having something like <?php print render($content['comments']); ?> above or below that you can add

Or you could wrap them in a DIV to suit your requirement.

What ever you add to The region custom would now be displayed near the comments

1
  • I tried something similar to that. I added a views block and then in my template.php file, added the following code: please check above. Commented Jan 29, 2013 at 7:02

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.