Beispiel #1
0
 /**
  *	Задать условия фильтрация для колонок
  *
  *	@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);
     }
 }