Я хотел бы показать узел внутри другого узла. Итак, я получаю идентификатор узла второго узла и хочу визуализировать/печатать/... его внутри другого узла.
Но я не уверен, как это сделать. Я пробовал drupal_render
, node_view
, print
,... но безрезультатно. Любой совет?
$nid = $node->field_linked_fiche['und'][0]['nid'];
$fullFiche = node_load($nid);
ИЗМЕНИТЬ – весь шаблон
<?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 -->
drupal_render(node_view(node_load($nid)))
), чтобы отобразить несколько узлов на одной странице, и это сработало отлично. - person Marius Ilie   schedule 19.12.2011page.tpl.php
. Я получаю эту ошибку:Strict warning: Only variables should be passed by reference in include() (line 9 of ***
- person Michiel   schedule 19.12.2011node_view()
возвращает тематический узел (т. е. вызываетdrupal_render()
внутренне), поэтому он дает уже обработанную и «готовую к использованию» разметку. В Drupal 7node_view()
подготавливает только структурированный массив, необходимыйdrupal_render()
для создания разметки. - person Henrik Opel   schedule 20.12.2011drupal_render(node_view(node_load($nid)))
). Если это не работает для вас, вы должны проверить свои предварительные условия и промежуточные шаги, т.е. есть ли у вас действительный nid, возвращает ли node_load() действительный объект узла и т. д. - person Henrik Opel   schedule 20.12.2011var_dump
показывает мне все аспекты узла), как иnode_load()
. Но я продолжаю получать ошибку переменной, упомянутую выше... - person Michiel   schedule 20.12.2011$node2 = node_load_multiple($nids);
$output = drupal_render(node_view($node2));
- person Marius Ilie   schedule 20.12.2011page.tpl.php
с добавленным вашим кодом... - person Michiel   schedule 20.12.2011