2011-07-06 85 views
1

我知道所有關於在page.tpl.php中添加區域,甚至是在Drupal 6中添加node.tpl.php。但是,我有一個特殊情況,我需要在另一個區域內添加一個區域。Drupal區域在一個地區

在我的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函數來幫助完成這個功能?

+0

我覺得模板名稱應該是**嵌段[區域] .tpl.php **像_block-header.tpl.php_和__preprocess_block_ – yoavmatchulsky

+0

其預處理功能似乎_preprocess_block將在該區塊的作品不是那個區域包含塊? – sisko

+0

也許,你應該提供關於你的「特殊情況」的更多信息。住在區域內的街區。地區不住在地區內,如果他們這樣做,這是一個黑客。這聽起來像你只需要簡化你的佈局或考慮像面板。 – 2011-07-27 19:50:53

回答

0

您可以使用drupal_get_region_content()加載任何地區的內容。所以,理論上你就可以在你的模板的開頭添加下面的代碼行所期望的結果:

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

然而,正如在評論你原來的文章中提到,我不會推薦這是一個理想的解決方案。根據您的最終目標,最有可能採用更優雅的方式來完成此任務。