diff --git a/etemplate/inc/class.date_widget.inc.php b/etemplate/inc/class.date_widget.inc.php index 68044ac423..c82301f2c5 100644 --- a/etemplate/inc/class.date_widget.inc.php +++ b/etemplate/inc/class.date_widget.inc.php @@ -13,9 +13,10 @@ /* $Id$ */ /*! - @class datefield_widget + @class date_widget @author ralfbecker - @abstract widget that reads a date + @abstract widget that reads a date + @param Options/$cell['size'] = $format[,$year_no_select], $format: ''=timestamp or eg. 'Y-m-d' for 2002-12-31 @discussion This widget is independent of the UI as it only uses etemplate-widgets and has therefor no render-function */ class date_widget @@ -82,14 +83,23 @@ $tpl = new etemplate; $tpl->init('*** generated fields for date','','',0,'',0,0); // make an empty template - $fields = array('Y' => 'year', 'm' => 'month', 'd' => 'day'); + $fields = array( + 'Y' => ($options ? 'int' : 'select-year'), // if options set, show an int-field + 'm' => 'select-month', + 'd' => 'select-day' + ); + $help = array( + 'Y' => 'Year', + 'm' => 'Month', + 'd' => 'Day' + ); $row = array(); for ($n=0; $n < 3; ++$n) { $dcell = $tpl->empty_cell(); - $dcell['type'] = 'select-'.$fields[$format[$n]]; + $dcell['type'] = $fields[$format[$n]]; $dcell['name'] = $format[$n]; - $dcell['help'] = lang($fields[$format[$n]]).': '.$cell['help']; // note: no lang on help, already done + $dcell['help'] = lang($help[$format[$n]]).': '.$cell['help']; // note: no lang on help, already done $dcell['no_lang'] = True; $row[$tpl->num2chrs($n)] = &$dcell; unset($dcell); diff --git a/etemplate/inc/class.datefield_widget.inc.php b/etemplate/inc/class.datefield_widget.inc.php deleted file mode 100644 index 910c3abbf8..0000000000 --- a/etemplate/inc/class.datefield_widget.inc.php +++ /dev/null @@ -1,127 +0,0 @@ - * - * -------------------------------------------- * - * This program is free software; you can redistribute it and/or modify it * - * under the terms of the GNU General Public License as published by the * - * Free Software Foundation; either version 2 of the License, or (at your * - * option) any later version. * - \**************************************************************************/ - - /* $Id$ */ - - /*! - @class datefield_widget - @author ralfbecker - @abstract widget that reads date in via 3 input-fields - @discussion This widget is independent of the UI as it only uses etemplate-widgets and has therefor no render-function - */ - class datefield_widget - { - var $public_functions = array( - 'pre_process' => True, - 'post_process' => True - ); - var $human_name = 'DateField'; // this is the name for the editor - - function datefield_widget($ui) - { - } - - function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl) - { - $extension_data = $cell['size']; - - if ($cell['size'] != '') - { - $date = split('[/.-]',$value); - $mdy = split('[/.-]',$cell['size']); - for ($value=array(),$n = 0; $n < 3; ++$n) - { - switch($mdy[$n]) - { - case 'Y': $value['Y'] = $date[$n]; break; - case 'm': $value['m'] = $date[$n]; break; - case 'd': $value['d'] = $date[$n]; break; - } - } - } - else - { - $value = array( - 'Y' => date('Y',$value), - 'm' => date('m',$value), - 'd' => date('d',$value) - ); - } - $format = split('[/.-]',$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']); - $value = array( - 'f1' => $value[$format[0]], - 'f2' => $value[$format[1]], - 'f3' => $value[$format[2]], - 'sep' => $GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'][1], - 'help' => $cell['help'] - ); - $cell['size'] = $cell['name']; - $cell['type'] = 'template'; - $cell['name'] = 'etemplate.datefield'; - - return True; // extra Label is ok - } - - function post_process($name,&$value,&$extension_data,&$loop,&$tmpl) - { - if (!isset($value)) - { - return False; - } - $format = split('[/.-]',$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']); - - $value = array( - $format[0] => $value['f1'], - $format[1] => $value['f2'], - $format[2] => $value['f3'] - ); - if ($value['d']) - { - if (!$value['m']) - { - $value['m'] = date('m'); - } - if (!$value['Y']) - { - $value['Y'] = date('Y'); - } - elseif ($value['Y'] < 100) - { - $value['Y'] += $value['Y'] < 30 ? 2000 : 1900; - } - if (empty($extension_data)) - { - $value = mktime(0,0,0,$value['m'],$value['d'],$value['Y']); - } - else - { - for ($n = 0,$str = ''; $n < strlen($extension_data); ++$n) - { - if (strstr('Ymd',$c = $extension_data[$n])) - { - $str .= sprintf($c=='Y'?'%04d':'%02d',$value[$c]); - } - else - { - $str .= $c; - } - } - $value = $str; - } - } - else - { - $value = ''; - } - return True; - } - } \ No newline at end of file