特定のコンテンツタイプのコンテンツを表示できるモジュールを作成しました。表示はやや複雑で、オフにしてすべてをグループ化できるように、このためのモジュールを作成しました。
しかし最終的には、通常のnode.tpl.phpをカスタム.tpl.phpファイルでオーバーライドするだけです。テンプレートフォルダーにファイルを置くと、ファイルが取得され、ページが意図したとおりに表示されますが、ファイルがモジュールフォルダーにあるときにファイルを機能させることができません。
.tplファイルと前処理の登録について多くのことを読みましたが、必要なものを組み合わせるものは何もありませんでした。
これが今のところ
function apps_theme($existing, $type, $theme, $path) {
$items = array(
'node--app' => array(
'template' => drupal_get_path('module', 'app') . '/node--app',
'variables' => array('node' => (object)array())
)
);
return $items;
}
function apps_preprocess_node(&$vars) {
$variables['theme_hook_suggestions'][] = 'node__app';
}
1
私はこれについて声を掛けられるかもしれませんが、私の(そうではない)控えめな意見では、モジュールはノードが表示されたときの外観を気にする必要はありません。表示部分。モジュールに、ノードに表示されるカスタムオブジェクトを作成させたい場合、それは別の話ですが、そのためのテンプレートを作成できます。しかし、そのステップを短絡させたい場合は、node.tpl.phpをテーマディレクトリに配置することが唯一の「正しい」方法です。
—
Jimajamma
誰かが特にDrupal 6でこれを行うことを検討している場合は、この回答を確認してください:stackoverflow.com/a/6153043/1154642
—
bryanbraun