/** * Задать условия фильтрация для колонок * * @param RM_List_Object obList * @param array data * @return void **/ public function setFilters(RM_List_Object $obList, $data = array(), $default = array()) { $filter = isset($data['f']) ? $data['f'] : array(); foreach ($obList->getAllColumns() as $column) { //echo $column->variable() . ' => ' . $column->filterVariable() . '<br>'; if (isset($data[$column->variable()])) { $filter[$column->id()] = $data[$column->variable()]; } } // add dafult filters foreach ($default as $varname => $value) { if (is_array(@$filter[$obList->getColumnByVarname($varname)->id()])) { $count = array_count_values($filter[$obList->getColumnByVarname($varname)->id()]); if (@$count[''] == count(@$filter[$obList->getColumnByVarname($varname)->id()])) { // if all array elements is empty $filter[$obList->getColumnByVarname($varname)->id()] = $value; } } elseif (empty($filter[$obList->getColumnByVarname($varname)->id()])) { $filter[$varname] = $value; } } if ($obList->report_type == 'list') { $obList->setFilters($filter); } }