1

我知道所有关于在 page.tpl.php 甚至在 Drupal 6 中添加 node.tpl.php 的区域。但是,我有一个特殊情况,我需要在另一个区域中添加一个区域。

在我的 Drupal 安装中,我找到了 region.tpl.php 文件,如下所示:

<div class="<?php print $classes; ?>">

<?php print $content; ?>

</div><!-- /.region -->

我对其进行了修改以输出我的自定义区域:

<div class="testing <?php print $classes; ?>">

<?php print $content; ?>

<?php if ($inner_sidebar_right): ?>
    inside inner-sidebar-right
  <div class="inner-sidebar-right"><?php print $inner_sidebar_right; ?></div>
<?php endif; ?>

它不起作用。

ps:在 node.tpl.php 中添加区域时,您必须在 template.php 中操作 _preprocess_node。是否有一个 _preprocess_region 函数来帮助实现这一点?

4

1 回答 1

0

您可以使用drupal_get_region_content()加载任何区域的内容。因此,理论上您可以在模板的开头添加以下代码行以获得所需的结果:

<?php $inner_sidebar_right = drupal_get_region_content('inner_sidebar_right'); ?>

但是,正如您在原始帖子的评论中提到的那样,我不建议将其作为理想的解决方案。根据您的最终目标,很可能有一种更优雅的方式来实现这一目标。

于 2012-01-12T23:29:57.853 回答