我是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用于构建输出的过程。
答案 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文档)