Чтение значений полей узла в drupal7 программным способом - PullRequest
1 голос
/ 21 февраля 2011

Я ищу лучший способ получить значение поля из идентификатора узла.

На самом деле мой код работает, но я думаю, что есть более простой способ.

$node = node_load( 1 );
$lang = $node->language;
$field = 'body';
$value = '';

if ( isset($node->{$field}[$lang]) && isset($node->{$field}[$lang][0]) )
{
  $value = $node->{$field}[$lang][0]['value'];
}

echo $value;

Есть ли какая-нибудь сборка в функции друпала, которая позаботится об этом?

Ответы [ 2 ]

2 голосов
/ 07 августа 2013

Спасибо @Berdir. Я согласен, что field_get_items - лучший способ. Вот пример кода:

<?php
  $body = field_get_items('node',$node, 'body');
  print $body[0]['value'];
?>
2 голосов
/ 21 февраля 2011

Не все, но вы можете немного упростить это с http://api.drupal.org/api/drupal/modules--field--field.module/function/field_get_items/7.

Вам все еще нужно проверить, существует ли $ items [0] и получить «значение» этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...