你在这里

Drupal views的一个重量级api:views_get_view

主标签

格式: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 版本: 

猜你喜欢

之前看过相关文章,一直没有实践过。今天又看了一遍。

刚刚就用这个实现了分类列表  很方便

学习了~yes

扫一扫关注Drupal社区公众号LoveDrupal

qrcode_for_gh_037d374f7de5_258.jpg

龙马威武,原来只是简单的用这个方法,现在有了更具体的

第一次接触drupal,看似很不错的系统

感谢分享,drupal中文文档太有限了,感谢大牛们的奉献。

三多网-3D打印模型下载