/** * see notes on processfilter - 'fixing' this doesn't seem to work across the board * * @param string $fieldName * @param array $field * @param array $defaults * * @return boolean */ function dateParam($fieldName, &$field, &$defaults) { // type = 12 (datetime) is not recognized by Utils_Type::escape() method, // and therefore the below hack $type = 4; $from = CRM_Report_Utils_Get::getTypedValue("{$fieldName}_from", $type); $to = CRM_Report_Utils_Get::getTypedValue("{$fieldName}_to", $type); $relative = CRM_Utils_Array::value("{$fieldName}_relative", $_GET); if ($relative) { list($from, $to) = CRM_Report_Form::getFromTo($relative, NULL, NULL); $from = substr($from, 0, 8); $to = substr($to, 0, 8); } if (!($from || $to)) { return FALSE; } if ($from !== NULL) { $dateFrom = CRM_Utils_Date::setDateDefaults($from); if ($dateFrom !== NULL && !empty($dateFrom[0]) ) { $defaults["{$fieldName}_from"] = date('m/d/Y', strtotime($dateFrom[0])); $defaults["{$fieldName}_relative"] = 0; } } if ($to !== NULL) { $dateTo = CRM_Utils_Date::setDateDefaults($to); if ($dateTo !== NULL && !empty($dateTo[0]) ) { $defaults["{$fieldName}_to"] = $dateTo[0]; $defaults["{$fieldName}_relative"] = 0; } } }