基本上我有一个名为' promo '的视图,它建立在Nodequeue上。它被限制为1行,并按Global:Random
排序视图本身用于网站上的块。
此外,视图相同的视图用于节点参考字段“ field_promo ”。
我想要做的是从促销视图中获取最近的两行,并将这些行用作 field_promo 的默认值。
这需要我:
...
自从写完这一切并确保我不是白痴之后,我已经收集了我可能会在下面发布的解决方案,因为我花了这么长时间才找到它! (将在8小时后发布解决方案,如果你在发布之前解决问题,我会给出分数:P)
答案 0 :(得分:6)
以下是我提出的解决方案:
$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)从视图中删除该项
我怀疑这个代码有一个更精致的版本,但是我花了很长时间才到达那里我害怕触摸它以防万一我销毁它:)