ホームページのテキストの前に、プログラムでテキストを追加する必要があります。しかし、私がhook_node_view()
を使用すると、次のようにこれを行うことができないようです:
function general_node_view(&$node, $view_mode, $langcode) {
if ($node->nid == 1) {
//echo '<pre>' . print_r($node->body['und'][0]['value'],1) . '</pre>';
$node->body['und'][0]['value'] = 'fdsf' . $node->body['und'][0]['value'];
}
}
私はこれを間違った方法で行っていますか?
ホームページを表示する場合は、ノードをフロントページのコンテンツとして設定する必要があります。そうでなければ、このフックはあなたのホームページに対して何もしません。
ただし、このフックによってノードビューを展開できます。
$node->content['additional-text'] = array(
'#markup' => 'TEXT TO GO BEFORE NODE VIEW',
'#weight' => -10, // Set as lower as to bring this markup upper
);
hook_node_view()
のドキュメントで報告されているように:
モジュールは、レンダリングの前に_
$node->content
_に要素を追加できます。このフックはhook_view()
の後に呼び出されます。 _$node->content
_の構造は、drupal_render()
が期待するレンダリング可能な配列です。
_$node->body
_を変更する必要はありませんが、_$node->content
_の内容を変更する必要があります。