Drupal 7中与内容(上下文)相关的块

时间:2012-08-06 17:44:36

标签: drupal drupal-blocks

案例如下:例如,我有一个带有“data_field”字段的自定义内容类型。我希望在侧边栏上有一个块,可以正确处理和显示这个“data_field”字段的数据。如何使用Drupal API访问它?

P.S。我知道这个问题可以通过某种方式解决,它具有内容特定显示的能力,但我对它因API的实现方式感兴趣。

1 个答案:

答案 0 :(得分:1)

使用内容类型的默认Drupal设置呈现字段:

$n = node_load($nid_of_content);
$n = node_view($n);
print render($n['field_somevalue']);

您也可以指定节点显示格式,例如

$n = node_view($n, 'teaser');

如果要以不同方式操作字段内容,请使用原始字段值:

$n = node_load($nid_of_content);
$value_you_want = $n->field_data_field_somevalue['und'][0]['value'];

这假设您没有使用任何语言/翻译功能 - “und”代表“undefined”,并声明没有为节点明确设置语言。

如果该字段可以包含多个值,则通过['und'] [0] ['value']迭代到['und'] [x] ['value']

上面的代码显示了大多数字段类型的原始值。在开发期间使用print_r($ n-> field_somevalue)来找出可用的值;这取决于字段类型。例如,文件类型给你'uri'而不是'value',文本字段也有'safe_value',它应用了输入格式过滤,长文本字段将有'summary'和'safe_summary',& c