Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Render a Drupal node

I would like to show a node inside another node. So I retrieve the node id of the second node and I would like to render/print/... it inside another node.
But I'm not sure how to do this. I've tried drupal_render, node_view, print,... but with no results. Any advice?

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

EDIT - the whole template

<?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 -->
like image 708
Michiel Avatar asked Dec 19 '11 16:12

Michiel


People also ask

What is render node?

Render nodes are the individual components you interconnect to use as building blocks to produce all rendering effects. Like all other nodes in Maya, you can animate or map render nodes to other nodes' parameters.

What is render in Drupal?

What is "rendering"? Rendering in the Drupal world means turning structured "render" arrays into HTML. See The HTML main content renderer in the Drupal render pipeline documentation.

What is a Drupal node?

All content on a Drupal website is stored and treated as "nodes". A node is any piece of individual content, such as a page, poll, article, forum topic, or a blog entry. Comments are not stored as nodes but are always connected to one. Treating all content as nodes allows the flexibility to create new types of content.

How do I edit a node in Drupal?

Click Content in the Menu toolbar. Use filters, if desired, at the top of the Content page to locate the page you want to edit by entering Title, Type, Author, Published status (Yes or No), or Vocabulary and clicking Apply. Click the page title link in the Title column for the page you want to edit.


1 Answers

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

NOTE: Reposted, as original answer got deleted.

like image 74
Marius Ilie Avatar answered Sep 21 '22 20:09

Marius Ilie