Index: t3lib/class.t3lib_tceforms.php --- t3lib/class.t3lib_tceforms.php Base (BASE) +++ t3lib/class.t3lib_tceforms.php Locally Modified (Based On LOCAL) @@ -1097,7 +1097,17 @@ // css class and id will show the kind of field if (in_array('date', $evalList)) { $inputId = uniqid('tceforms-datefield-'); - $cssClasses[] = 'tceforms-textfield tceforms-datefield'; + + $dateRange = ''; + if (isset($config['range']['lower'])) { + $dateRange .= ' lower-' . intval($config['range']['lower']); + } + if (isset($config['range']['upper'])) { + $dateRange .= ' upper-' . intval($config['range']['upper']); + } + + $cssClasses[] = 'tceforms-textfield tceforms-datefield' . $dateRange; + $fieldAppendix = t3lib_iconWorks::getSpriteIcon( 'actions-edit-pick-date', array( Index: t3lib/js/extjs/tceforms.js --- t3lib/js/extjs/tceforms.js Base (BASE) +++ t3lib/js/extjs/tceforms.js Locally Modified (Based On LOCAL) @@ -38,17 +38,25 @@ }, convertDateFieldsToDatePicker: function() { - var dateFields = Ext.select("input[id^=tceforms-date]"); + var dateFields = Ext.select("input[id^=tceforms-date]"), minDate, maxDate, lowerMatch, upperMatch; dateFields.each(function(element) { var index = element.dom.id.match(/tceforms-datefield-/) ? 0 : 1; var format = TYPO3.settings.datePickerUSmode ? TYPO3.settings.dateFormatUS : TYPO3.settings.dateFormat; var datepicker = element.next('span'); + // check for daterange + var lowerMatch = element.dom.className.match(/lower-(\d+)\b/); + minDate = Ext.isArray(lowerMatch) ? new Date(lowerMatch[1] * 1000) : null; + var upperMatch = element.dom.className.match(/upper-(\d+)\b/); + maxDate = Ext.isArray(upperMatch) ? new Date(upperMatch[1] * 1000) : null; + var menu = new Ext.menu.DateMenu({ id: 'p' + element.dom.id, format: format[index], value: Date.parseDate(element.dom.value, format[index]), + minDate: minDate, + maxDate: maxDate, handler: function(picker, date){ var relElement = Ext.getDom(picker.ownerCt.id.substring(1)); relElement.value = date.format(format[index]);