gpt4 book ai didi

Drupal View : Programmatically alter a View and execute to array

转载 作者:行者123 更新时间:2023-12-02 08:39:00 24 4
gpt4 key购买 nike

本质上,我有一个名为“promo”的 View ,它构建在 Nodequeue 上。它被限制为 1 行,并且按 Global:Random 排序

View 本身被用于网站上的一个 block 。

此外,节点引用字段“field_promo”的 View 相同。

我想要做的是从 promo View 中获取最近的 2 行,并将它们用作 field_promo 的默认值。

这需要我:

  • 加载 View
  • 删除global:random排序
  • 添加已创建排序
  • 更改寻呼机以显示 2 行而不是 1 行
  • 执行 View

...

自从写完所有这些并确保我不是白痴后,我已经收集了解决方案,我也可以将其发布在下面,因为我花了很长时间才找到它! (将在8小时后发布解决方案,如果您在我发布之前解决了答案,我将给予积分:P)

最佳答案

这是我想出的解决方案:

$view = views_get_view('promo_feature');
$view->init_display();
$view->preview=TRUE;
$view->is_cacheable = FALSE;
$view->display_handler->set_option('items_per_page',2);
$view->set_item('default', 'sort', 'random', NULL);
$view->add_item('default', 'sort', 'node', 'created',array('order' => 'DESC'));
$view->pre_execute();
$output = $view->display_handler->preview();
$view->post_execute();

$return=array();
foreach($view->result as $row){
$return[]=array('nid' => $row->nid);
}

return($return);

$view->set_item($display,$type,$id,NULL) 从 View 中删除该项目

我怀疑这个代码有一个更精致的版本,但是我花了很长时间才到达那里,我害怕碰它,以防我破坏它:)

关于Drupal View : Programmatically alter a View and execute to array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5894901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com