php – Drupal 7用field_view_value()获取预告片

我有一个Ajax处理程序脚本,我在其中加载$nodeId并在默认(完整)视图中输出结果:

$node = node_load($input);
$prerendered_node = node_view( $node, 'default' );
...

现在我需要显示预告片(摘要或修剪).

到目前为止我试过这个,没有成功(摘要内容填写):

1.
$item = $node->body['en'][0];
$output = field_view_value('node', $node, 'body', $item, 'Teaser');
echo $output; (blank)

2. echo $node->body['eng']['0']['summary']; (blank)

this问题但不工作的解决方案:

3. $output = truncate_utf8(strip_tags($node->body['eng']['0']['summary']),200,true,true);
echo $output; (blank)

好奇的是var_dump($node-> body [‘eng’] [‘0’])显示和包含值(body),summary,clean_summary和其他元素的数组,并且摘要具有必要的值.但是在示例2中我无法直接访问它,它显示为空白.

提示,好吗?

谢谢.

我想这是一个多语言的网站,否则你可能会在$node-> body [‘und’] [0](即und,未定义的语言代码)中找到你要找的东西?

你的第一个解决方案应该有效,只有你使用了Teaser而不是预告片,我很确定视图模式区分大小写.你还有$node-> body [‘en’] [0](en的语言代码),而你在所有其他例子中都使用了语言代码eng ……这可能是问题吗?

如果$node-> body [‘eng’] [‘0’] [‘summary’]不为空,那么你的第二个解决方案就必须工作,所以我再次检查你的var_dump()是否产生了准确的结果(是在调用$node = node_load($input)之后立即检查var_dump()的输出;例如,使其成为公平的测试.

同样,如果您的第3个解决方案输出空白字符串,则表示$node-> body [‘eng’] [‘0’] [‘summary’]绝对必须为空.

我强烈建议安装devel module并使用dpm()函数打印格式良好的对象/数组的分层视图以供检查.如果你不能这样做,Drupal 7有一个debug()函数可以做类似的事情.这两个函数的输出都打印到标准的Drupal消息空间.

希望有所帮助!

相关文章
相关标签/搜索