Is this the right way to do this? Inserting a block into the content body field of a node I'm very new to using Drupal 7 and trying to understand the correct way to insert a book navigation menu block into the content field of a node, or any field/block of content into anything for that manner.

Anyways, one solution I have come up with is this:
In field--body.tpl.php

&lt;?php
$block = module_invoke('book', 'block_view');
//render book menu
if($block){
echo'&lt;div class="book-menu-navigation"&gt;';
print render($block);
echo'&lt;/div&gt;';
}
?&gt;


I have no idea if this is the proper/orthodox way to do this; I'm pretty sure a better way would be with a pre-process in template.php. Could someone explain/demonstrate how would this get implemented in that way?
I am not one to say what is a/the best way, but if template_preprocess_WHATEVER() is, you set it up something like this:

function template_preprocess_WHATEVER(&amp;$vars) {
  if ( CONDITIONS YOU NEED IF ANY ) {
    $block = module_invoke('book', 'block_view');
    if ($block) {
      $book_block_view='&lt;div class="block-menu-navigation"&gt;';
      $book_block_view.=render($block);
      $book_block_view.='&lt;/div&gt;';
    }
    $vars['book_block_view']=$book_block_view;
  }
}


and now you would have $book_block_view available in WHATEVER to print or use.