テーマNode-xxx.tpl.php
-
29-09-2019 - |
質問
私はDrupalテーマに慣れていません。次のことをしたい:私はそれを操作している製品コンテンツタイプを持っています。それはノードプロダクトを操作しています。tpl.php、製品コンテンツタイプには「組み込みビデオ」のタイプのCCKフィールドがあります(で見つかったメディアモジュールを使用してください http://drupal.org/project/media )。 「埋め込まれたビデオ」フィールドを包む必要があるので
タグ私は私のnode-product.tpl.phpに追加したいです。
サイト/すべて/モジュール/CCK/コンテンツモジュールファイルで、次の関数を見つけました。
"function content_theme(){
$ path = drupal_get_path( 'module'、 'content')。 '/theme'; require_once "./$path/theme.inc";
return array( 'content_field' => array( 'template' => 'content-field'、 'arguments' => array( 'element' => null)、 'path' => $ path、 "...
そのコードから、私は自分のコードが「印刷テーマ( 'content_field'、$ element)」であるべきだと思います。
いくつかの質問:1。私は正しい軌道に乗っていますか?テーマ関数を使用する必要があります。適切なCCKフックテーマを呼んでいますか? 2.私が正しいと仮定すると、$ elementパラメーターが何であるべきかを知ることができません。Node-product.tpl.phpでは、多くのデータが含まれている$ノードパラメーターがあります。どうすれば取得できますか$ノードパラメーターテーマ(...)関数に送信する必要がある正しい$要素? 3.モジュールのコードを閲覧するよりも、各モジュールの登録テーマフック名と、彼らが得ると予想されるパラメーターについて知るバッターの方法はありますか?
私の長い質問を読んでくれてありがとう、助けをいただければ幸いです。
解決
CCKフィールドは、2つの形式でノードオブジェクトで利用できます。
$node->field_[field_name]
$node->field_[field_name]_rendered
レンダリングされたバージョンは、すべてのマークアップを含むCCKフィールドのテーマバージョンであり、他のバージョンはレンダリングされたバージョンとCCKが保存したその他のデータを含む配列です。
CCKがノードオブジェクトに注入したデータを使用して、テーマ関数なしで必要なことを行うことができるはずです。
他のヒント
次回はprint_r()関数を使用してください。 ;-)たとえば、この場合、print_r($ node)を探しれば、たくさんのグッズが表示されます。