$view=views_get_view($view_name); if(is_object($view)) { $view->set_arguments(array(3)); $view->preview(); // print HTML $results=$views->result; // object results } $results = views_get_view_result($view_name, $display_id, array(3)); // object results // 多值参数 $view->set_arguments(array(implode(',', $ids)));
注意set_arguments是接受一个array,而array的元素是表明每一个views中设置的contextual filters。若是contextual filter被设置为Allow multiple values,则容许多值参数,但输入的还是string,不是array。多值能够用,或者+来分隔。php
$view = views_get_view($view_name); $view->display_handler->default_display->options['filters']['xxx']['value'] = 'xxx'; print $view->preview();
$view = views_get_view($view_name); $view->display_handler->default_display->options['pager']['type'] = 'some'; $view->display_handler->default_display->options['pager']['options']['items_per_page'] = 30; print $view->preview();
Contextual filters: Content: Has taxonomy term ID Provide default value Raw value from URL Path component: 2 When the filter value IS in the URL or a default is provided Override title: %1 Path: /xxx/% Filter criteria: Content: Published (Yes) Content: Type (= Xxxx)
Relationship: Vote results Add sort criterion: Vote results: Value, Relationship: Voting results
$view = views_get_view($view_name); if(is_object($view)) { $view->set_display($display_id); $view->set_exposed_input(array('sort_by' => 'publish_date')); return $view->preview(); }
/** * Implements hook_views_pre_render */ function hook_views_pre_render(&$view) { if($view->name == 'view_name' && $view->current_display == 'display_id') { foreach($view->result as $key => $row) { unset($view->result[$key]->field_name); } } }
解决方法: 一、在views编辑里面找到filter criteria,点击add 找下 內容: Type 二、用Grouped filters 不要用Single filter,选择后再填完相关信息后方能够显示。 注意:下面必定要选择any, 不能选择其它,不然就不能所有显示。
function hook_views_pre_view(&$view, &$display_id, &$args) { if ($view->name == 'view_name') { if(!empty($_GET['field_xxxxx'])) { if($_GET['field_xxxxx'] == 1) { if(!empty($view->display['default']->handler->options['filters']['field_xxxxx'])) unset($view->display['default']->handler->options['filters']['field_xxxxx']); } } } }