From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- framework/I18N/TDateFormat.php | 506 ++++++++++++++++++++--------------------- 1 file changed, 253 insertions(+), 253 deletions(-) (limited to 'framework/I18N/TDateFormat.php') diff --git a/framework/I18N/TDateFormat.php b/framework/I18N/TDateFormat.php index 831fe71d..7604dd44 100644 --- a/framework/I18N/TDateFormat.php +++ b/framework/I18N/TDateFormat.php @@ -1,254 +1,254 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.I18N - */ - -/** - * Get the DateFormat class. - */ -Prado::using('System.I18N.core.DateFormat'); - -/** - * Get the parent control class. - */ -Prado::using('System.I18N.TI18NControl'); - -/** - * To format dates and/or time according to the current locale use - * - * - * - * The date will be formatted according to the current locale (or culture) - * using the format specified by 'Pattern' attribute. - * - * To format date and/or time for a locale (e.g. de_DE) include a Culture - * attribute, for example: - * - * - * - * The date will be formatted according to this format. - * - * If no Pattern was specified then the date will be formatted with the - * default format (both date and time). If no value for the date is specified - * then the current date will be used. E.g.: - * will result in the current date, formatted with default localized pattern. - * - * Namespace: System.I18N - * - * Properties - * - Value, date, - *
Gets or sets the date to format. The tag content is used as Value - * if the Value property is not specified. - * - Pattern, string, - *
Gets or sets the formatting pattern. The predefined patterns are - * 'fulldate', 'longdate', 'mediumdate', 'shortdate', 'fulltime', - * 'longtime', 'mediumtime', and 'shorttime'. Custom patterns can specified - * when the Pattern property does not match the predefined patterns. - * - DefaultText, string, - *
Gets or sets the default text. If Value is not set, DefaultText will be - * shown instead of todays date and time. - * - * @author Xiang Wei Zhuo - * @version v1.0, last update on Sat Dec 11 15:25:11 EST 2004 - * @package System.I18N - */ -class TDateFormat extends TI18NControl implements IDataRenderer -{ - /** - * Default DateFormat, set to the application culture. - * @var DateFormat - */ - protected static $formatter; - - /** - * A set of pattern presets and their respective formatting shorthand. - * @var array - */ - static private $_patternPresets = array( - 'fulldate'=>'P','full'=>'P', - 'longdate'=>'D','long'=>'d', - 'mediumdate'=>'p','medium'=>'p', - 'shortdate'=>'d','short'=>'d', - 'fulltime'=>'Q', 'longtime'=>'T', - 'mediumtime'=>'q', 'shorttime'=>'t'); - - /** - * Sets the date time formatting pattern. - * @param string format pattern. - */ - public function setPattern($value) - { - $this->setViewState('Pattern',$value,''); - } - - /** - * Gets the date time format pattern. - * @return string format pattern. - */ - public function getPattern() - { - $string = $this->getViewState('Pattern',''); - - $pattern = null; - - //try the subpattern of "date time" presets - $subpatterns = explode(' ',$string,2); - $datetime = array(); - if(count($subpatterns)==2) - { - $datetime[] = $this->getPreset($subpatterns[0]); - $datetime[] = $this->getPreset($subpatterns[1]); - } - - //we have a good subpattern - if(count($datetime) == 2 - && strlen($datetime[0]) == 1 - && strlen($datetime[1]) == 1) - { - $pattern = $datetime; - } - else //no subpattern, try the presets - $pattern = $this->getPreset($string); - - //no presets found, use the string as the pattern - //and let the DateFormat handle it. - if($pattern===null) - $pattern = $string; - if (!is_array($pattern) && strlen($pattern) == 0) - $pattern = null; - return $pattern; - } - - /** - * For a given string, try and find a preset pattern. - * @param string the preset pattern name - * @return string a preset pattern if found, null otherwise. - */ - protected function getPreset($string) - { - $string = strtolower($string); - foreach(self::$_patternPresets as $pattern => $preset) - { - if($string == $pattern) - return $preset; - } - } - - /** - * Get the date-time value for this control. - * @return string date time value. - */ - public function getValue() - { - $value = $this->getViewState('Value',''); - if(empty($value)) - { - $defaultText = $this->getDefaultText(); - if(empty($defaultText)) - return time(); - } - return $value; - } - - /** - * Set the date-time value for this control. - * @param string the date-time value. - */ - public function setValue($value) - { - $this->setViewState('Value',$value,''); - } - - /** - * Get the default text value for this control. - * @return string default text value - */ - public function getDefaultText() - { - return $this->getViewState('DefaultText',''); - } - - /** - * Set the default text value for this control. - * @param string default text value - */ - public function setDefaultText($value) - { - $this->setViewState('DefaultText',$value,''); - } - - /** - * Get the date-time value for this control. - * This method is required by {@link IDataRenderer}. - * It is the same as {@link getValue()}. - * @return string date time value. - * @see getValue - * @since 3.1.2 - */ - public function getData() - { - return $this->getValue(); - } - - /** - * Set the date-time value for this control. - * This method is required by {@link IDataRenderer}. - * It is the same as {@link setValue()}. - * @param string the date-time value. - * @see setValue - * @since 3.1.2 - */ - public function setData($value) - { - $this->setValue($value); - } - - /** - * Renders the localized version of the date-time value. - * If the culture is not specified, the default application - * culture will be used. - * This method overrides parent's implementation. - */ - protected function getFormattedDate() - { - $value = $this->getValue(); - $defaultText = $this->getDefaultText(); - if(empty($value) && !empty($defaultText)) - return $this->getDefaultText(); - - $app = $this->getApplication()->getGlobalization(); - - //initialized the default class wide formatter - if(self::$formatter===null) - self::$formatter = new DateFormat($app->getCulture()); - - $culture = $this->getCulture(); - - //return the specific cultural formatted date time - if(strlen($culture) && $app->getCulture() !== $culture) - { - $formatter = new DateFormat($culture); - return $formatter->format($value, - $this->getPattern(), - $this->getCharset()); - } - //return the application wide culture formatted date time. - $result = self::$formatter->format($value, - $this->getPattern(), - $this->getCharset()); - return $result; - } - - public function render($writer) - { - $writer->write($this->getFormattedDate()); - } - + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2012 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.I18N + */ + +/** + * Get the DateFormat class. + */ +Prado::using('System.I18N.core.DateFormat'); + +/** + * Get the parent control class. + */ +Prado::using('System.I18N.TI18NControl'); + +/** + * To format dates and/or time according to the current locale use + * + * + * + * The date will be formatted according to the current locale (or culture) + * using the format specified by 'Pattern' attribute. + * + * To format date and/or time for a locale (e.g. de_DE) include a Culture + * attribute, for example: + * + * + * + * The date will be formatted according to this format. + * + * If no Pattern was specified then the date will be formatted with the + * default format (both date and time). If no value for the date is specified + * then the current date will be used. E.g.: + * will result in the current date, formatted with default localized pattern. + * + * Namespace: System.I18N + * + * Properties + * - Value, date, + *
Gets or sets the date to format. The tag content is used as Value + * if the Value property is not specified. + * - Pattern, string, + *
Gets or sets the formatting pattern. The predefined patterns are + * 'fulldate', 'longdate', 'mediumdate', 'shortdate', 'fulltime', + * 'longtime', 'mediumtime', and 'shorttime'. Custom patterns can specified + * when the Pattern property does not match the predefined patterns. + * - DefaultText, string, + *
Gets or sets the default text. If Value is not set, DefaultText will be + * shown instead of todays date and time. + * + * @author Xiang Wei Zhuo + * @version v1.0, last update on Sat Dec 11 15:25:11 EST 2004 + * @package System.I18N + */ +class TDateFormat extends TI18NControl implements IDataRenderer +{ + /** + * Default DateFormat, set to the application culture. + * @var DateFormat + */ + protected static $formatter; + + /** + * A set of pattern presets and their respective formatting shorthand. + * @var array + */ + static private $_patternPresets = array( + 'fulldate'=>'P','full'=>'P', + 'longdate'=>'D','long'=>'d', + 'mediumdate'=>'p','medium'=>'p', + 'shortdate'=>'d','short'=>'d', + 'fulltime'=>'Q', 'longtime'=>'T', + 'mediumtime'=>'q', 'shorttime'=>'t'); + + /** + * Sets the date time formatting pattern. + * @param string format pattern. + */ + public function setPattern($value) + { + $this->setViewState('Pattern',$value,''); + } + + /** + * Gets the date time format pattern. + * @return string format pattern. + */ + public function getPattern() + { + $string = $this->getViewState('Pattern',''); + + $pattern = null; + + //try the subpattern of "date time" presets + $subpatterns = explode(' ',$string,2); + $datetime = array(); + if(count($subpatterns)==2) + { + $datetime[] = $this->getPreset($subpatterns[0]); + $datetime[] = $this->getPreset($subpatterns[1]); + } + + //we have a good subpattern + if(count($datetime) == 2 + && strlen($datetime[0]) == 1 + && strlen($datetime[1]) == 1) + { + $pattern = $datetime; + } + else //no subpattern, try the presets + $pattern = $this->getPreset($string); + + //no presets found, use the string as the pattern + //and let the DateFormat handle it. + if($pattern===null) + $pattern = $string; + if (!is_array($pattern) && strlen($pattern) == 0) + $pattern = null; + return $pattern; + } + + /** + * For a given string, try and find a preset pattern. + * @param string the preset pattern name + * @return string a preset pattern if found, null otherwise. + */ + protected function getPreset($string) + { + $string = strtolower($string); + foreach(self::$_patternPresets as $pattern => $preset) + { + if($string == $pattern) + return $preset; + } + } + + /** + * Get the date-time value for this control. + * @return string date time value. + */ + public function getValue() + { + $value = $this->getViewState('Value',''); + if(empty($value)) + { + $defaultText = $this->getDefaultText(); + if(empty($defaultText)) + return time(); + } + return $value; + } + + /** + * Set the date-time value for this control. + * @param string the date-time value. + */ + public function setValue($value) + { + $this->setViewState('Value',$value,''); + } + + /** + * Get the default text value for this control. + * @return string default text value + */ + public function getDefaultText() + { + return $this->getViewState('DefaultText',''); + } + + /** + * Set the default text value for this control. + * @param string default text value + */ + public function setDefaultText($value) + { + $this->setViewState('DefaultText',$value,''); + } + + /** + * Get the date-time value for this control. + * This method is required by {@link IDataRenderer}. + * It is the same as {@link getValue()}. + * @return string date time value. + * @see getValue + * @since 3.1.2 + */ + public function getData() + { + return $this->getValue(); + } + + /** + * Set the date-time value for this control. + * This method is required by {@link IDataRenderer}. + * It is the same as {@link setValue()}. + * @param string the date-time value. + * @see setValue + * @since 3.1.2 + */ + public function setData($value) + { + $this->setValue($value); + } + + /** + * Renders the localized version of the date-time value. + * If the culture is not specified, the default application + * culture will be used. + * This method overrides parent's implementation. + */ + protected function getFormattedDate() + { + $value = $this->getValue(); + $defaultText = $this->getDefaultText(); + if(empty($value) && !empty($defaultText)) + return $this->getDefaultText(); + + $app = $this->getApplication()->getGlobalization(); + + //initialized the default class wide formatter + if(self::$formatter===null) + self::$formatter = new DateFormat($app->getCulture()); + + $culture = $this->getCulture(); + + //return the specific cultural formatted date time + if(strlen($culture) && $app->getCulture() !== $culture) + { + $formatter = new DateFormat($culture); + return $formatter->format($value, + $this->getPattern(), + $this->getCharset()); + } + //return the application wide culture formatted date time. + $result = self::$formatter->format($value, + $this->getPattern(), + $this->getCharset()); + return $result; + } + + public function render($writer) + { + $writer->write($this->getFormattedDate()); + } + } \ No newline at end of file -- cgit v1.2.3