渲染一个Drupal节点 [英] Render a Drupal node

查看:108
本文介绍了渲染一个Drupal节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在另一个节点中显示一个节点。所以我检索第二个节点的节点id,我想在另一个节点中渲染/打印它。

但是我不知道该怎么做。我尝试过 drupal_render node_view print 但没有结果。任何建议?

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

编辑 - 整个模板

 <?php 

/ **
* @file
* Bartik的主题实现显示单个Drupal页。
*
...
* /
?>
< div id =page-wrapper>< div id =page>

< div id =headerclass =<?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 =homeid =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; ?>< /跨度>< / A>
< / strong>
< / div>
<?php else:/ *内容标题为空时使用h1 * /?>
< 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; ?>< /跨度>< / 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-menuclass =navigation>
<?php print theme('links__system_main_menu',array(
'links'=> $ main_menu,
'attributes'=>数组(
'id'= >'main-menu-links',
'class'=> array('links','clearfix'),
),
'heading'=> array b $ b'text'=> t('Main menu'),
'level'=>'h2',
'class'=> array('element-invisible'
),
)); ?>
< / div> <! - /#主菜单 - >
<?php endif; ?>

<?php if($ secondary_menu):?>
< div id =secondary-menuclass =navigation>
<?php print theme('links__system_secondary_menu',array(
'links'=> $ secondary_menu,
'attributes'=>数组(
'id'= >'secondary-menu-links',
'class'=>数组('links','inline','clearfix'),
),
'heading'=> ;数组(
'text'=> t('Secondary menu'),
'level'=>'h2',
'class'=&隐形'),
),
)); ?>
< / 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-wrapperclass =clearfix>< div id =mainclass =clearfix>

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

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

< div id =contentclass =column>< div class =section>
<?php if($ page ['highlight']):?>< div id =highlight><?php print render($ page ['highlight']); ?>< / div><?php endif; ?>
< a id =main-content>< / a>
<?php print render($ title_prefix); ?>
<?php if($ title):?>
< h1 class =titleid =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; ?>
//在这个文件中渲染第二个节点
<?php
$ nid = 739; //注意::硬编码,但需要变量!
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-secondclass =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 =footerclass =clearfix>
<?php print render($ page ['footer']); ?>
< / div> <! - /#footer - >
<?php endif; ?>

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

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


解决方案

  ?php 
$ nid = 739; //注意::硬编码,但需要变量!
print drupal_render(node_view(node_load($ nid)));
?>






注意:转载,原始答案被删除。


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 -->

解决方案

<?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.

这篇关于渲染一个Drupal节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆