【问题标题】:render fields individually drupal单独渲染字段 drupal
【发布时间】:2012-10-11 23:24:55
【问题描述】:

我希望在 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);

非常感谢您对此的任何帮助!

【问题讨论】:

  • 好的,我发现我在浏览代码后遗漏了一些非常基本的东西。它需要这样的显示: $field_view_field_field_banners = field_view_field('node', $node, 'field_banners', 'slideshow');回声渲染($field_view_field_field_banners);困扰我的一件事是,如何在无需手动输入的情况下找出默认显示的字段?

标签: drupal drupal-7 drupal-theming


【解决方案1】:

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

您似乎在尝试指定字段的格式,但实际情况是 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 文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多