2011-07-06 8 views
1

Drupal 6でpage.tpl.phpとnode.tpl.phpにリージョンを追加することについてはすべて知っていますが、別のリージョン内にリージョンを追加する必要がある特殊なケースがあります。私は出力に私のカスタム領域にそれを修正しリージョン内にあるDrupalリージョン

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

私は次のようになります。region.tpl.phpファイルを見つけた私はDrupalで

をインストールそれは動作しません。

ps:node.tpl.phpにリージョンを追加する場合は、template.phpの_preprocess_nodeを操作する必要があります。 これを達成するための_preprocess_region関数がありますか?

+0

テンプレート名は** block- [region] .tpl.php **のように_block-header.tpl.php_、それらの前処理関数__preprocess_block_ – yoavmatchulsky

+0

と思う_preprocess_blockはそのブロックでは動作しないようですブロックを含む??? – sisko

+0

おそらく、あなたはあなたの "特殊なケース"に関するより多くの情報を提供するべきです。ブロックはリージョン内に存在します。地域は地域内に住んでいないし、そうであればハックだ。あなたのレイアウトを単純化したり、パネルのようなものを検討したりする必要があるように思えます。 –

答えて

0

drupal_get_region_content()を使用して、地域のコンテンツを読み込むことができます。だから、理論的に望ましい結果のためにあなたのテンプレートの先頭に次のコード行を追加することができます。

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

しかし、あなたの最初の投稿にコメントで述べたように、私は理想的なソリューションとしてこれをお勧めしません。あなたの最終目標にもよりますが、これを達成するためのより優雅な方法があります。

関連する問題