forked from extern/egroupware
date_widget has now an option to show an input for the year instead a select-box, datefield_widget is no longer used
This commit is contained in:
parent
49ef265853
commit
74248930c5
@ -13,9 +13,10 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@class datefield_widget
|
@class date_widget
|
||||||
@author ralfbecker
|
@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
|
@discussion This widget is independent of the UI as it only uses etemplate-widgets and has therefor no render-function
|
||||||
*/
|
*/
|
||||||
class date_widget
|
class date_widget
|
||||||
@ -82,14 +83,23 @@
|
|||||||
$tpl = new etemplate;
|
$tpl = new etemplate;
|
||||||
$tpl->init('*** generated fields for date','','',0,'',0,0); // make an empty template
|
$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();
|
$row = array();
|
||||||
for ($n=0; $n < 3; ++$n)
|
for ($n=0; $n < 3; ++$n)
|
||||||
{
|
{
|
||||||
$dcell = $tpl->empty_cell();
|
$dcell = $tpl->empty_cell();
|
||||||
$dcell['type'] = 'select-'.$fields[$format[$n]];
|
$dcell['type'] = $fields[$format[$n]];
|
||||||
$dcell['name'] = $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;
|
$dcell['no_lang'] = True;
|
||||||
$row[$tpl->num2chrs($n)] = &$dcell;
|
$row[$tpl->num2chrs($n)] = &$dcell;
|
||||||
unset($dcell);
|
unset($dcell);
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**************************************************************************\
|
|
||||||
* phpGroupWare - eTemplate Extension - DateField Widget *
|
|
||||||
* http://www.phpgroupware.org *
|
|
||||||
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
|
|
||||||
* -------------------------------------------- *
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user