2011-12-19 21 views
13

Me gustaría mostrar un nodo dentro de otro nodo. Entonces recupero el ID del nodo del segundo nodo y me gustaría renderizarlo/imprimirlo ... dentro de otro nodo.
Pero no estoy seguro de cómo hacer esto. He intentado drupal_render, node_view, print, ... pero sin resultados. ¿Algún consejo?Renderizar un nodo de Drupal

$nid = $node->field_linked_fiche['und'][0]['nid']; 
$fullFiche = node_load($nid); 

EDITAR - toda la plantilla

<?php 

    /** 
    * @file 
    * Bartik's theme implementation to display a single Drupal page. 
    * 
    ... 
    */ 
    ?> 
    <div id="page-wrapper"><div id="page"> 

     <div id="header" class="<?php print $secondary_menu ? 'with-secondary-menu': 'without-secondary-menu'; ?>"><div class="section clearfix"> 

     <?php if ($logo): ?> 
      <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"> 
      <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /> 
      </a> 
     <?php endif; ?> 

     <?php if ($site_name || $site_slogan): ?> 
      <div id="name-and-slogan"<?php if ($hide_site_name && $hide_site_slogan) { print ' class="element-invisible"'; } ?>> 

      <?php if ($site_name): ?> 
       <?php if ($title): ?> 
       <div id="site-name"<?php if ($hide_site_name) { print ' class="element-invisible"'; } ?>> 
        <strong> 
        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a> 
        </strong> 
       </div> 
       <?php else: /* Use h1 when the content title is empty */ ?> 
       <h1 id="site-name"<?php if ($hide_site_name) { print ' class="element-invisible"'; } ?>> 
        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a> 
       </h1> 
       <?php endif; ?> 
      <?php endif; ?> 

      <?php if ($site_slogan): ?> 
       <div id="site-slogan"<?php if ($hide_site_slogan) { print ' class="element-invisible"'; } ?>> 
       <?php print $site_slogan; ?> 
       </div> 
      <?php endif; ?> 

      </div> <!-- /#name-and-slogan --> 
     <?php endif; ?> 

     <?php print render($page['header']); ?> 

     <?php if ($main_menu): ?> 
      <div id="main-menu" class="navigation"> 
      <?php print theme('links__system_main_menu', array(
       'links' => $main_menu, 
       'attributes' => array(
       'id' => 'main-menu-links', 
       'class' => array('links', 'clearfix'), 
      ), 
       'heading' => array(
       'text' => t('Main menu'), 
       'level' => 'h2', 
       'class' => array('element-invisible'), 
      ), 
      )); ?> 
      </div> <!-- /#main-menu --> 
     <?php endif; ?> 

     <?php if ($secondary_menu): ?> 
      <div id="secondary-menu" class="navigation"> 
      <?php print theme('links__system_secondary_menu', array(
       'links' => $secondary_menu, 
       'attributes' => array(
       'id' => 'secondary-menu-links', 
       'class' => array('links', 'inline', 'clearfix'), 
      ), 
       'heading' => array(
       'text' => t('Secondary menu'), 
       'level' => 'h2', 
       'class' => array('element-invisible'), 
      ), 
      )); ?> 
      </div> <!-- /#secondary-menu --> 
     <?php endif; ?> 

     </div></div> <!-- /.section, /#header --> 

     <?php if ($messages): ?> 
     <div id="messages"><div class="section clearfix"> 
      <?php print $messages; ?> 
     </div></div> <!-- /.section, /#messages --> 
     <?php endif; ?> 

     <div id="main-wrapper" class="clearfix"><div id="main" class="clearfix"> 

     <?php if ($breadcrumb): ?> 
      <div id="breadcrumb"><?php print $breadcrumb; ?></div> 
     <?php endif; ?> 

     <?php if ($page['sidebar_first']): ?> 
      <div id="sidebar-first" class="column sidebar"><div class="section"> 
      <?php print render($page['sidebar_first']); ?> 
      </div></div> <!-- /.section, /#sidebar-first --> 
     <?php endif; ?> 

     <div id="content" class="column"><div class="section"> 
      <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?> 
      <a id="main-content"></a> 
      <?php print render($title_prefix); ?> 
      <?php if ($title): ?> 
      <h1 class="title" id="page-title"> 
       <?php print $title; ?> 
      </h1> 
      <?php endif; ?> 
      <?php print render($title_suffix); ?> 
      <?php if ($tabs): ?> 
      <div class="tabs"> 
       <?php print render($tabs); ?> 
      </div> 
      <?php endif; ?> 
      <?php print render($page['help']); ?> 
      <?php if ($action_links): ?> 
      <ul class="action-links"> 
       <?php print render($action_links); ?> 
      </ul> 
      <?php endif; ?> 
      // Render second node inside this one 
      <?php 
       $nid = 739; // NOTE :: Hard coded, but need to be variable!! 
       drupal_render(node_view(node_load($nid))) 
      ?> 
      <?php print render($page['content']); ?> 
      <?php print $feed_icons; ?> 

     </div></div> <!-- /.section, /#content --> 

     <?php if ($page['sidebar_second']): ?> 
      <div id="sidebar-second" class="column sidebar"><div class="section"> 
      <?php print render($page['sidebar_second']); ?> 
      </div></div> <!-- /.section, /#sidebar-second --> 
     <?php endif; ?> 

     </div></div> <!-- /#main, /#main-wrapper --> 

     <div id="footer-wrapper"><div class="section"> 

     <?php if ($page['footer']): ?> 
      <div id="footer" class="clearfix"> 
      <?php print render($page['footer']); ?> 
      </div> <!-- /#footer --> 
     <?php endif; ?> 

     </div></div> <!-- /.section, /#footer-wrapper --> 

    </div></div> <!-- /#page, /#page-wrapper --> 
+0

No he probado, pero debería funcionar con drupal_render (node_view (node_load ($ nid))) –

+1

No, ya te dije que ya trató este ... – Michiel

+0

Supongo que hiciste algo mal porque hice lo mismo ('drupal_render (node_view (node_load ($ nid)))') para mostrar múltiples nodos en la misma página y funcionó perfectamente. –

Respuesta

58
<?php 
    $nid = 739; // NOTE :: Hard coded, but need to be variable!! 
    print drupal_render(node_view(node_load($nid))); 
?> 

NOTA: Republicado, como la respuesta original se borró re.

+0

Agregó una nota sobre el reenvío para evitar la confusión del moderador;) –

+0

Gracias Marius !! – Michiel

+2

Es mejor usar la variable para evitar una advertencia estricta – Sadi

4

No he probado, pero debería funcionar con

drupal_render(node_view(node_load($nid))) 
+0

No, ya te dije que ya probé esto ... – Michiel

+0

Supongo que hiciste algo mal porque hice lo mismo ('drupal_render (node_view (node_load ($ nid)))') para mostrar varios nodos en la misma página y funcionó perfectamente. –

+0

¿Y lo hiciste en tu página.tpl? – Michiel

Cuestiones relacionadas