处理Drupal Node Body

时间:2014-04-18 01:12:03

标签: drupal drupal-7 render

我是Drupal的新手。在询问之前,我在谷歌和谷歌看了一会儿,但我确定无法找到答案,因为我不知道如何提问。

这是正在发生的事情。我使用自定义模块加载某些实体,然后以特定格式输出它们以供应用程序访问。问题是NODE BODY包含应转换的特殊信息和媒体文件。我的目标是获取通常在此字段上使用的HTML输出。

// Execute an EntityFieldQuery
$result = $query->execute();
if (isset($result['node'])) {
  $article_items_nids = array_keys($result['node']);
  $article_items = entity_load('node', $news_items_nids);
}

// Loop through each article
foreach ($article_items as $article) {
   return $article->body[LANGUAGE_NONE]['0']['value'];
}

所有这一切都很有效。唯一的问题是我在输出中得到了这样的东西:

[[{"type":"media","view_mode":"media_original","fid":"283","attributes":{"alt":"","class":"media-image","data-thmr":"thmr_32","height":"400","width":"580"}}]]

*protoss_icon*

我的目标是找到这些项目转换的方式,就像正常查看这些文章时一样。

我尝试过这样的事情:

render(field_view_field('node', $article, 'body'));

render($article->body[LANGUAGE_NONE]['0']['value']);

没有成功。感谢您的帮助,我正在学习,所以我不能完全掌握drupal用于构建输出的过程。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情(这仅适用于不与其他自定义实体类型相关的节点):

$node = node_load($nid);
$field = field_get_items('node', $node, 'your_field_name');
$output = field_view_value('node', $node, 'your_field_name', $field[$delta]);

field_view_value返回单个字段值的可渲染数组。 (来自drupal api文档)