Region innerhalb eines Nodes hinzufügen

Bild des Benutzers tobiasb

Standardmäßig hat man bei sein Theme die Regionen(Bereiche) Kopfbereich, Inhalt, linke/rechte Seite sowie Fußbereich.In der man dann Blöcke hinzufügen kann. Was ist aber, wenn Sie eine Region innerhalb eines Nodes haben möchten um dort ein Block zwischen dem Node und der Kommentare haben möchten?

Kein Problem.

Der Code ist für Drupal5

Dieser Code muss in die template.php ihres Themes! Wenn sie schon eine template.php und diese Funktion haben. Müssen Sie nur die Region "'node_region' => t('Node Region')," der Funktion hinzufügen.

  1. function meinthemename_regions() {
  2.   return array(
  3.        'left_sidebar' => t('Linke Seite'),
  4.        'right_sidebar' => t('Rechte Seite'),
  5.        'header' => t('Kopfbereich'),
  6.        'footer_message' => t('Fußbereich'),
  7.        'content' => t('Inhalt'),
  8.        'node_region' => t('Node Region'),
  9.   );
  10. }

Dieser Code muss auch in die template.php, wenn Sie schon die Funktion haben in ihre template.php dann müssen Sie nur ab if($hook bis zur letzten } innerhalb der Funktion einfügen!

  1. function _phptemplate_variables($hook, $vars) {
  2.   if ($hook == 'node') {
  3.     $vars['node_region'] = theme('blocks', 'node_region');
  4.   }
  5.   return $vars;
  6. }

Jetzt müssen Sie eine node.tpl.php erstellen und diesen Code einfügen.

  1. <div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
  2.   <div class="clearfix">
  3.     <?php if ($page == 0): ?>
  4.       <h3><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h3>
  5.     <?php endif; ?>
  6.     <?php print $picture ?>
  7.     <?php if ($terms || $submitted): ?>
  8.       <div class="meta">
  9.       <?php if ($submitted): ?>
  10.         <span class="submitted"><?php print $submitted ?></span>
  11.       <?php endif; ?>
  12.       <?php if ($terms): ?>
  13.         <div class="terms"><?php print $terms ?></div>
  14.       <?php endif;?>
  15.       </div>
  16.     <?php endif; ?>
  17.     <div class="content"><?php print $content ?></div>
  18.        
  19. <div class="node_region"><?php print $node_region ?></div>
  20.  
  21.   </div>
  22.   <?php if ($links) { print $links; } ?>
  23. </div>

Falls Sie schon eine haben dann fügen Sie nur <?php print $node_region; ?> innerhalb ihrer node.tpl.php ein!