1

我想在 中嵌入一个视图tpl.php,所以我正在使用该views_get_view('VIEWNAME')功能。

这是我正在做的事情tpl.php

<?php
   $view = views_get_view('MapView');  
   print $view->preview('default');
?>

MapView”是视图的名称,我不确定其中的参数views_get_view是机器名称还是人类可读的名称,实际上在我的示例中使用的是人类可读的名称,因为我在drupal视图配置中找不到机器名称.

无论如何,我收到一条错误消息“ Fatal error: Call to a member function preview() on a non-object”,好像我没有正确获取视图?

任何想法?

4

2 回答 2

4

您可以从编辑视图 url 轻松获取视图 ID。像任何键一样,它由取消划线和小写字母组成。也可以在需要的地方输出视图试试:

$view = views_embed_view('view_id', $display_id = 'block');
print $view;

它适用于节点内容,我在模块中向所需类型的节点添加了视图:

function YOUR_MODULE_node_view($node, $view_mode, $langcode) {
  if($node->type=="type"){
  $view = views_embed_view('view_id', $display_id = 'block');
  $node->content['myfield'] = array(
    '#markup' => '<h3>Title</h3>'.$view, 
    '#weight' => 1,
  );

  return $node;
  }
}
于 2012-05-19T21:02:53.777 回答
0

一个老问题,但我遇到了同样的问题,我找不到正确的答案:你必须使用机器名,它区分大小写!您可以在“名称”字段的 views_view 表中的数据库中找到它。

于 2017-02-17T11:39:01.970 回答