仅在drupal 7中以全视图模式显示自定义块

时间:2014-12-26 03:47:38

标签: drupal-7

我是drupal的新手。我在drupal7中创建了一个自定义块。现在我想在这个块中显示自定义内容类型的数据(例如广告)。这个广告具有在主页中显示广告的功能,预告片,全景模式页面。

现在问题是我想以编程方式获得类似于节点视图的块的视图模式,以便我可以获得与该视图相关的广告(即具有预告视图的广告)等。< / p>

这是我实施的方式,但未能显示视图模式

/**
 * Implements hook_block_view().
 */
function Advertisement_block_view($delta = '',$view_mode) {

    echo $view_mode;   
    $block['subject'] = t('Advertisements');
    $block['content'] = Advertisement_block_content();
    return $block;
}

请帮忙...

三江源

1 个答案:

答案 0 :(得分:0)

默认情况下,Blocks不支持查看模式。至少就我所知,节点的做法并非如此。查看您使用的hook_block_view()上的 Drupal API 。它没有提到$view_mode参数。如果使用,你实际上应该收到警告。

获取特定视图模式的广告(节点)听起来有点奇怪,因为您没有将视图模式分配到节点上,而是分配到内容类型上,这意味着所有广告一旦将节点分配给其内容类型,就可以在某种视图模式下查看节点。

如果您想要在内容类型上配置所有视图模式,可以使用field_view_mode_settings($entity_type, $bundle),其中$entity_type = 'node'&amp; $bundle = 'Your_advertisement_content_type_machine_name'