跳转到主要内容
东方龙马 提交于 29 October 2014

格式:views_get_view($name, $reset = FALSE)(适合drupal 6和7版本)

作用:从数据库或者默认的views得到一个view

说明:$name 是view的名称.$reset若设为真, 在负载缓存内复位此项。当你确定你需要一个新的view时,才使用这个参数。

使用:这里假设创建了一个viewtest的viewtest

1,用代码输出views

  1. <?php
  2. $views=views_get_view("viewtest");
  3. $views->preview();
  4. $results=$views->result;
  5. //下面的代码与views无关的
  6. print_r($results);
复制代码

2,传入argument。

  1. <?php
  2. $views=views_get_view("viewtest");
  3. $views->set_arguments(array(3));
  4. $views->preview();
  5. $results=$views->result;
  6. print_r($results);
  7. ?>
复制代码

3,控制输出的结果数 目前我们的结果都是只输出10个结果,我现在想输出50个结果。 对比例子一:只增加了两行

  1. <?php
  2. $views=views_get_view("viewtest");
  3. $views->set_display('default');
  4. $views->display_handler->set_option('items_per_page', 50);
  5. $views->preview();
  6. $results=$views->result;
  7. print_r($results);
  8. ?>
复制代码

4,输出views的HTML print $views->preview(); 5,控制是否分页 $views->display_handler->set_option(‘use_pager’,1); 当为0时则不分页 6,控制当前显示在views的第三页而不是默认的第一页结果]

  1. $views=views_get_view("viewtest");
  2. //$views->args=array(1);
  3. $views->pager["use_pager"]=1;//要分页
  4. $views->pager["items_per_page"]=40;//每页40个
  5. $views->pager["current_page"]=3;//定位到第3页
  6. $views->execute();//执行
  7. print_r($views->result);
复制代码

上面的几个例子用的是preview方法,而这里用的是execute方法,这完全是views的设计者设计出来的。当然,你可以都改为这个例子的设定,但就我发现,在大规模测试的时候,我发现execute的性能比preview要差一点点(并不明显). 注:以上实例选自drupal中文论坛上trackself 所写的views文章系列。在这里感谢下作者的分享。

Drupal 版本