web-dev-qa-db-ja.com

render()およびtheme()フィールド

bodyフィールドと言って、ノードからコンテンツをリージョンに割り当てたいと思います。したがって、このコンテンツをテーマに設定することはできませんnode.tpl.php

template_process_page(&$vars)では、_$page['my_region'] = HTML._を簡単に設定できます

_$vars['node']->body_を使用すると、私の体フィールドdadaにアクセスできます。そこから、通常のテーマ関数を使用してbodyフィールドをレンダリングしたいと思います。 theme('field',$variables)またはrender($variables)を使用するにはbody-arrayを以下から取得する必要があります:

配列
(
 [und] =>配列
(
 [0] =>配列
(
 [値] = > TEXT 
 [概要] => 
 [形式] => full_html 
 [safe_value] => TEXT 
 [safe_summary] => 
) 
 
)
 
)

次のように:

配列
(
 [#theme] =>フィールド
 [#weight] => 1 
 [#title] =>本文
 [#アクセス] => 1 
 [#label_display] =>非表示
 [#view_mode] =>完全
 [#language] => und 
 [#field_name] => body 
 [#field_type] => text_with_summary 
 [#field_translatable] => 0 
 [#entity_type] => node 
 [#bundle] => article 
 [#object] => stdClass Object 
(...)
 [#items] => Array 
(
 [0] =>配列
(
 [値] => TEXT 
 [概要] => 
 [フォーマット] => full_html 
 [safe_value] = > TEXT 
 [safe_summary] => 
)
)
 [#formatter] => text_default 
 [0] =>配列
(
 [#markup] => TEXT 
)
)

しかし、正確にはわかりません。どのようにして2番目のアレイアーキテクチャでフィールドを生成できますか。可能であれば、dbクエリを追加せずに。

ご協力ありがとうございます!

2

あなたは探している - field_attach_view

ロードされたノードで行う必要があるのは次のようなものです。

$fields = field_attach_view('node', $node, 'full');
$body = $fields['field_body'];
5
googletorp