Как да променим/зададен стойност на филтър (пък бил той и exposed) на views в кода?
$view_name = 'invoice_items'; $display = 'block'; $view = views_get_view($view_name); $view -> set_display($display); $filter_1 = $view -> get_item($display, 'filter', 'field_delivery_order_ref'); $filter_1['value'] = $order_nid; $view -> set_item($display, 'filter', 'field_delivery_order_ref', $filter_1); $output = $view -> render();
редакция: 03.05.2015
Може да се зададат няколко филтър от различен вид полета
// $view_name = 'delivery'; $display = 'block_2'; // $view = views_get_view($view_name); $view -> set_display($display); // exclude current $filter_1 = $view -> get_item($display, 'filter', 'nid'); $filter_1['value']['value'] = $delivery -> nid; $view -> set_item($display, 'filter', 'nid', $filter_1); // add ref to order $filter_2 = $view -> get_item($display, 'filter', 'field_delivery_order_ref_nid'); $filter_2['value'] = array($order -> nid); $view -> set_item($display, 'filter', 'field_delivery_order_ref_nid', $filter_2); // $view -> execute(); $output = $view -> preview();
Category: