$fields) { foreach ($fields as $fieldName => $field) { switch (CRM_Utils_Array::value('type', $field)) { case CRM_Utils_Type::T_INT: case CRM_Utils_Type::T_FLOAT: case CRM_Utils_Type::T_MONEY: self::intParam($fieldName, $field, $defaults); break; case CRM_Utils_Type::T_DATE: case CRM_Utils_Type::T_DATE | CRM_Utils_Type::T_TIME: self::dateParam($fieldName, $field, $defaults); break; case CRM_Utils_Type::T_STRING: default: self::stringParam($fieldName, $field, $defaults); break; } } } } /** * unset default filters. * @param $defaults */ public static function unsetFilters(&$defaults) { static $unsetFlag = TRUE; if ($unsetFlag) { foreach ($defaults as $field_name => $field_value) { $newstr = substr($field_name, strrpos($field_name, '_')); if ($newstr == '_value' || $newstr == '_op' || $newstr == '_min' || $newstr == '_max' || $newstr == '_from' || $newstr == '_to' || $newstr == '_relative' ) { unset($defaults[$field_name]); } } $unsetFlag = FALSE; } } /** * @param $fieldGrp * @param $defaults */ public static function processGroupBy(&$fieldGrp, &$defaults) { // process only group_bys for now $flag = FALSE; if (is_array($fieldGrp)) { foreach ($fieldGrp as $tableName => $fields) { if ($groupBys = CRM_Utils_Array::value("gby", $_GET)) { $groupBys = explode(' ', $groupBys); if (!empty($groupBys)) { if (!$flag) { unset($defaults['group_bys']); $flag = TRUE; } foreach ($groupBys as $gby) { if (array_key_exists($gby, $fields)) { $defaults['group_bys'][$gby] = 1; } } } } } } } /** * @param $reportFields * @param $defaults */ public static function processFields(&$reportFields, &$defaults) { //add filters from url if (is_array($reportFields)) { if ($urlFields = CRM_Utils_Array::value("fld", $_GET)) { $urlFields = explode(',', $urlFields); } if (CRM_Utils_Array::value("ufld", $_GET) == 1) { // unset all display columns $defaults['fields'] = array(); } if (!empty($urlFields)) { foreach ($reportFields as $tableName => $fields) { foreach ($urlFields as $fld) { if (array_key_exists($fld, $fields)) { $defaults['fields'][$fld] = 1; } } } } } } }