Example #1
0
  /**
   * 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;
      }
    }
  }