2

Drupal が特定のクラス名を持つ div タグの特定のコンテンツ タイプの本文を出力するようにしようとしています。

まず、node.tpl.php をオーバーライドしようとしましたが、$content 変数には、追加のカスタム cck フィールドとともに body が既に含まれていることがわかりました。そして、私がやろうとしていることは、身体を他のフィールドから正確に分離することです.

その後、content-field.tpl.php を調べたところ、カスタム cck フィールドに対してのみ実行されることがわかりました。だから私も似合わない。

だから..ノードボディフィールドをテーマにする方法は?

4

3 に答える 3

2

電話することから始める

print_r($node);

これはノード オブジェクトに含まれるものであり、コンテンツを印刷するだけでなく、そのメンバーのいずれかを直接使用できます。これを分析すると、正確に何を呼ぶべきかがわかります;)

本文の場合、スタイル設定されていないコンテンツには次の方法でアクセスできます。

$node->content['body']['#value']

他のフィールドについては、次のようにします。

$node->field_name[0]['view']

(ここで、[0] は配列内の項目のインデックスです。多数の画像をアップロードできる場合に ImageField に役立ちます)。

たとえばnode-event.tpl.php、イベントに関する詳細を表示する my のコンテンツは次のとおりです。

<div class="event clear-block">
<?php
    $class = (convert_datetime($node->field_event_date[0]['value']) < time()) ? 'past' : 'future';
    echo "<h3 class='header'>When?</h3><p class='$class'>".$node->field_event_date[0]['view']."</p>";
    echo "<h3 class='header'>Where?</h3><p>".$node->field_event_place[0]['view']."</p>";
    echo "<h3 class='header'>What?</h3>".$node->content['body']['#value'];
    echo "<h3 class='header'>How much?</h3><p>".$node->field_event_price[0]['view']."</p>";
    echo "<h3 class='header'>How to participate?</h3>".$node->field_event_subscribe[0]['view'];
?>
</div>
于 2011-03-09T10:34:10.577 に答える
1

これを見てください:http://capellic.com/blog/theming-the-node-body-field

于 2011-03-09T10:29:48.713 に答える
0

あなたが非常に柔軟である必要があるならば、私にとって最良の方法はこのページに行くことです:

admin / content / node-type / [ContentType] / display / basic

そして、すべての追加フィールドを「非表示」に設定します。

次に、$content変数にはbodyフィールドのみが含まれます。欠点は、すべての追加フィールドを1つずつ表示する必要があることです。CCKは、各フィールドに完全にレンダリングされた変数を提供することにより、これを行う簡単な方法を提供します

print $field_FIELDNAME_rendered;

これを使用すると、コンテンツタイプの出力を簡単にカスタマイズできます。

于 2011-03-09T10:27:37.983 に答える