さて、これが取引です。私はいくつかの異なるセクションを持つDrupalWebサイトを構築しています。各セクションは、コンテンツタイプを表示するビューです。(各セクションには独自のコンテンツタイプがあります)たとえば、?q=blog
コンテンツタイプを表示するポイントを指すビューがありますblog
。
すべてのセクションは互いに少し異なって見えます。'website-within-a-website'とは異なりますが、すべてが同じテンプレートファイルを使用できず、それぞれがCSSで変更されるほどの違いがあります。各セクションには独自のが必要page.tpl.php
です。
残念ながら、AFAIK Drupalテーマの.infoファイルはpage.tpl.php
、テーマ全体に1つだけ割り当てるか、page-node-####.tpl.php
ノードごとに1つしか割り当てることができません。このWebサイトには多くのコンテンツが含まれるためpage-node-####.tpl.php
、作成されたすべてのノードに対して新しい同一のものを作成するようにDrupalを設定すると、非常に高速に管理できなくなります。
この問題を解決するために、pathautoを使用して各コンテンツタイプのエイリアスを作成します。たとえば、コンテンツタイプのすべてのノードにはblog
エイリアスが与えられ?q=blog/[post title]
ます。エイリアスが「blog」という単語で始まるページtemplate.php
に使用するように変更します。page-blog.tpl.php
他の人はこのようなことをやってみて、説明したような関数を作成しました。残念ながら、私が見たものはすべてDrupal6以下のものです。既存のものを変更しようとしましたが、成功しませんでした。ただし、これまでのところ、これは正しい方向に進んでいると思います。
function basic_preprocess_page(&$vars, $hook) {
...
if( module_exists('path') ) {
$alias = drupal_get_path_alias( $_GET['q'] );
$site_section = "blog";
if( strpos( $alias, $site_section ) === 0 ) {
$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE = "/path/to/page-blog.php";
}
}
}
私は$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE
それが何であるか誰もが知っているのを見つけることができませんか?
たぶん私のサイトはひどく構成されています。誰かが私のサイトを再構築して、別々のセクションでより簡単にテーマを作成できるようにする方法を知っているなら、その方法を共有してください!
どうもありがとう!(c:
編集:おそらく、代わりにテンプレートの提案を使用する必要があります。これを設定するために使用する関数または変数を知っている人はいますか?