サイト全体になる新しいエリアを追加したい。この新しいリージョンを私のテーマに組み込むプロセスについて説明します。可能であれば、新しいカスタムリージョンを追加するために一般化します。
テーマの.infoファイルでリージョンを定義します。参照: 。infoファイルの構造
次に、関連するテンプレートタグをpage.tpl.phpファイルに配置する必要があります。
たとえば、テーマ.infoファイルで領域sidebar
を定義した場合は、page.tpl.phpの関連する場所に<?php print render($page['sidebar']); ?>
を追加します。
もう1つのポイント:必要なリージョンをお見逃しなく!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
これについての詳細は http://drupal.org/update/themes/6/7#closure にあります。
この点を明確にするために:独自のリージョンを定義する場合、必要なものを含め、使用しているすべてのものを定義する必要があります。つまり、追加のリージョンを定義するだけではなく、いずれかを定義する場合は、それらすべてを定義する必要があります。
Drupal 7テーマのリージョンの作成は、Drupal 6リージョンのリージョンの作成と同じです。 Drupal 7と以前のバージョンの違いは本質的に次のとおりです。
mytheme_regions()
関数を使用して定義されていませんが、mytheme.infoで_regions[]
_ディレクティブを使用して定義されています。また、Drupal 6テーマ。render()
を使用してレンダリングされます。デフォルトのDrupal 7リージョンは次のとおりです。
_regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
_
Drupal 7のコアテーマには、Drupal 6のミッションステートメントエリアと同じ表示を使用する「ハイライト」という名前の領域が含まれるようになりました。また、「help」という名前の領域も含まれています。これには、デフォルトで、Drupal 6が使用する_$help
_変数と同じ内容が含まれます。
テーマ領域は、テーマの.infoファイルで定義されています— docs を参照してください。コーナー領域を取得するには、_regions[corner] = Corner
_で行を追加するだけです。
次に、page.tpl.phpファイルを編集して、領域を表示する場所に<php print render($corner); ?>
を追加する必要があります。テーマにpage.tpl.phpがない場合は、ベーステーマまたはシステムモジュールからコピーします。
一般的な落とし穴:
Theme.infoファイルでリージョンが宣言されていない場合は、Drupalデフォルトリージョンが使用されていました。追加する場合は、デフォルトリージョンを再宣言する必要があります。もちろん、リージョンを削除しますが、必要なリージョンをサポートしてください docs を再度参照してください。
.infoファイルの変更またはテーマへの新しいファイルの追加(page.tpl.phpなど)は、キャッシュをクリアした後にのみ通知されます。
非常に人気のあるベーステーマであるオメガは、.infoファイルだけで、page.tpl.phpを変更する必要はありません。ただし、UIのテーマ設定にアクセスして、領域をゾーンに割り当てる必要があります。
以下の手順に従って、テーマにカスタムリージョンを作成します。
Theme.infoファイルに移動して、この行を追加します。
regions[machine_name_of_your_region] = Name of your region
ノードテンプレートでリージョンブロックを呼び出すこともできますが、通常はテーマのページテンプレートにリージョンを追加します。通常、これはpage.tpl.phpです。別のページ用のカスタムテンプレートファイルがある場合は、それらも編集します。新しいリージョンは、新しいリージョンを追加するテンプレートを中心に構築されたページにのみ表示されます。新しいリージョンを表示したい場所に貼り付けます。
<?php if ($page['machine_name_of_your_region']): ?>
<div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['machine_name_of_your_region']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
構成-パフォーマンス-すべてのキャッシュをクリア
2つのファイルで定義する必要があります。
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
この領域をレンダリングします
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
すべてのキャッシュをクリアします。これで、テーマに新しいリージョンができました。ブロック構成ページで確認できます。
詳細については http://drupal.org/node/171205