createElement('radio', NULL, NULL, $dateText, self::DATE_yyyy_mm_dd); $dateOptions[] = $form->createElement('radio', NULL, NULL, ts('mm/dd/yy OR mm-dd-yy (12/25/98 OR 12-25-98) OR (9/1/08 OR 9-1-08)'), self::DATE_mm_dd_yy); $dateOptions[] = $form->createElement('radio', NULL, NULL, ts('mm/dd/yyyy OR mm-dd-yyyy (12/25/1998 OR 12-25-1998) OR (9/1/2008 OR 9-1-2008)'), self::DATE_mm_dd_yyyy); $dateOptions[] = $form->createElement('radio', NULL, NULL, ts('Month dd, yyyy (December 12, 1998)'), self::DATE_Month_dd_yyyy); $dateOptions[] = $form->createElement('radio', NULL, NULL, ts('dd-mon-yy OR dd/mm/yy (25-Dec-98 OR 25/12/98)'), self::DATE_dd_mon_yy); $dateOptions[] = $form->createElement('radio', NULL, NULL, ts('dd/mm/yyyy (25/12/1998) OR (1/9/2008)'), self::DATE_dd_mm_yyyy); $form->addGroup($dateOptions, 'dateFormats', ts('Date Format'), '
'); $form->setDefaults(array('dateFormats' => self::DATE_yyyy_mm_dd)); } /** * This function is to retrieve the date range - relative or absolute * and assign it to the form * @param object $form - the form the dates should be added to * @param string $fieldName * @param integer $count * @param string $from * @param string $to * @param string $fromLabel * @param boolean $required * @param array $operators Additional value pairs to add * @param string $dateFormat * @param string $displayTime * * * @static * @access public */ static function buildDateRange( &$form, $fieldName, $count = 1, $from = '_from', $to = '_to', $fromLabel = 'From:', $required = FALSE, $operators = array(), $dateFormat = 'searchDate', $displayTime = FALSE ) { $selector = CRM_Core_Form_Date::returnDateRangeSelector( $form, $fieldName, $count, $from, $to, $fromLabel, $required, $operators, $dateFormat, $displayTime ); CRM_Core_Form_Date::addDateRangeToForm( $form, $fieldName, $selector, $from, $to, $fromLabel, $required, $dateFormat, $displayTime ); } /** * This function is to build the date range array that will provide the form option values * It can be - relative or absolute * * @param Object $form the form object that we are operating on * @param string $fieldName * @param integer $count * @param String $from * @param String $to * @param String $fromLabel * @param Boolean $required * @param Array $operators Additional Operator Selections to add * @param String $dateFormat * @param Boolean $displayTime * @return array Values for Selector */ static function returnDateRangeSelector( &$form, $fieldName, $count = 1, $from = '_from', $to = '_to', $fromLabel = 'From:', $required = FALSE, $operators = array(), $dateFormat = 'searchDate', $displayTime = FALSE ) { $selector = array( '' => ts('- any -'), 0 => ts('Choose Date Range'), 'this.year' => ts('This Year'), 'this.fiscal_year' => ts('This Fiscal Year'), 'this.quarter' => ts('This Quarter'), 'this.month' => ts('This Month'), 'this.week' => ts('This Week'), 'this.day' => ts('This Day'), 'previous.year' => ts('Previous Year'), 'previous.fiscal_year' => ts('Previous Fiscal Year'), 'previous.quarter' => ts('Previous Quarter'), 'previous.month' => ts('Previous Month'), 'previous.week' => ts('Previous Week'), 'previous.day' => ts('Previous Day'), 'previous_before.year' => ts('Prior to Previous Year'), 'previous_before.quarter' => ts('Prior to Previous Quarter'), 'previous_before.month' => ts('Prior to Previous Month'), 'previous_before.week' => ts('Prior to Previous Week'), 'previous_before.day' => ts('Prior to Previous Day'), 'previous_2.year' => ts('Previous 2 Years'), 'previous_2.quarter' => ts('Previous 2 Quarters'), 'previous_2.month' => ts('Previous 2 Months'), 'previous_2.week' => ts('Previous 2 Weeks'), 'previous_2.day' => ts('Previous 2 Days'), 'earlier.year' => ts('To End of Prior Year'), 'earlier.quarter' => ts('To End of Prior Quarter'), 'earlier.month' => ts('To End of Prior Month'), 'earlier.week' => ts('To End of Prior Week'), 'earlier.day' => ts('To End of Prior Day'), 'greater.year' => ts('From Start of Current Year'), 'greater.quarter' => ts('From Start of Current Quarter'), 'greater.month' => ts('From Start of Current Month'), 'greater.week' => ts('From Start of Current Week'), 'greater.day' => ts('From Start of Current Day'), 'current.year' => ts('Current Year to-date'), 'current.quarter' => ts('Current Quarter to-date'), 'current.month' => ts('Current Month to-date'), 'current.week' => ts('Current Week to-date'), 'ending_3.year' => ts('Last 3 Years'), 'ending_2.year' => ts('Last 2 Years'), 'ending.year' => ts('Last 12 Months'), 'ending.quarter' => ts('Last 3 Months'), 'ending.month' => ts('Last Month'), 'ending.week' => ts('Last 7 days'), ); if (is_array($operators)) { $selector = array_merge($selector, $operators); } $config = CRM_Core_Config::singleton(); //if fiscal year start on 1 jan then remove fiscal year task //form list if ($config->fiscalYearStart['d'] == 1 & $config->fiscalYearStart['M'] == 1) { unset($selector['this.fiscal_year']); unset($selector['previous.fiscal_year']); } return $selector; } /** * This function is to build the date range - relative or absolute * * @param CRM_Core_Form $form the form object that we are operating on * @param string $fieldName * @param Array $selector array of option values to add * @param integer $count * @param string $from * @param stringe $to * @param string $from Label * @param boolean $required * @param string $dateFormat * @param boolean $displayTime * @return null */ static function addDateRangeToForm(&$form, $fieldName, $selector, $from = '_from', $to = '_to', $fromLabel = 'From:', $required = FALSE, $dateFormat = 'searchDate', $displayTime = FALSE) { $form->add('select', "{$fieldName}_relative", ts('Relative Date Range'), $selector, $required, array('class' => 'crm-select2') ); $form->addDateRange($fieldName, $from, $to, $fromLabel, $dateFormat, FALSE, $displayTime); } }