渲染字段单独drupal

时间:2012-10-11 23:24:55

标签: drupal drupal-7 drupal-theming

我希望在page.tpl.php中单独渲染每个字段。我的情况是,我有一个图像字段,无限值和幻灯片格式。我希望使用幻灯片格式呈现此字段,并将其放在我想要的位置。

我已尝试过以下操作,但这不适用于正确的格式,它只是以默认格式输出:

$field_view_field_field_banners = field_view_field('node', $node, 'field_banners');
$field_view_field_field_banners['#formatter'] = 'slideshow'; // I added this because the formatter was 'image'
echo render($field_view_field_field_banners);

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

field_view_field所采用的第四个参数可以是视图模式的名称,也可以是显示设置键的数组:labeltypesettings ,和weight

看起来您正在尝试指定字段的格式,但正在发生的事情是field_view_field正在寻找名为“幻灯片”的视图模式(如默认或预告片)。

而不是

$foo = field_view_field('node', $node, 'field_banners', 'slideshow');

尝试:

$foo = field_view_field('node', $node, 'field_banners', array('type' => 'slideshow'));

第二个问题的答案基于上面的问题。区别在于视图模式和字段格式化程序。当你导航到

时很可能
/admin/structure/types/manage/foo/display 

您有两种默认查看模式:DefaultTeaser。如果您在默认视图模式下将field_banners字段设置为使用slideshow格式化程序,则无需使用第四个参数,因为将使用“默认”视图模式没有指定。

在那种情况下,您可以这样做:     $ foo = field_view_field('node',$ node,'field_banners');

$foo在呈现时会有slideshow格式。

查看field_view_field的Drupal API文档。