From 2c384e732f532a975c698a5df5e69ec7a9b1358a Mon Sep 17 00:00:00 2001 From: Normann Lou Date: Thu, 16 Oct 2008 00:49:34 +0000 Subject: [PATCH] Feature: attach extraClasses to a CurrencyField when it is transform to readonly API: add CurrencyField_Readonly git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@64326 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/CurrencyField.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/forms/CurrencyField.php b/forms/CurrencyField.php index d3ee7e96f..ff44efc8f 100755 --- a/forms/CurrencyField.php +++ b/forms/CurrencyField.php @@ -26,7 +26,9 @@ class CurrencyField extends TextField { */ function performReadonlyTransformation() { - return new CurrencyField_Readonly($this->name, $this->title, $this->value); + $field = new CurrencyField_Readonly($this->name, $this->title, $this->value); + $field -> addExtraClass($this->extraClass()); + return $field; /* $this is-a object and cant be passed as_a string of the first parameter of formfield constructor. @@ -91,7 +93,7 @@ class CurrencyField_Readonly extends ReadonlyField{ $val = ''._t('CurrencyField.CURRENCYSYMBOL', '$').'0.00'; } $valforInput = $this->value ? Convert::raw2att($val) : ""; - return "id() . "\">$valname."\" value=\"".$valforInput."\" />"; + return "extraClass()."\" id=\"" . $this->id() . "\">$valname."\" value=\"".$valforInput."\" />"; } /** * This already is a readonly field. @@ -102,4 +104,27 @@ class CurrencyField_Readonly extends ReadonlyField{ } +/** + * Readonly version of a {@link CurrencyField}. + * @package forms + * @subpackage fields-formattedinput + */ +class CurrencyField_Disabled extends CurrencyField{ + + /** + * overloaded to display the correctly formated value for this datatype + */ + function Field() { + if($this->value){ + $val = $this->dontEscape ? ($this->reserveNL?Convert::raw2xml($this->value):$this->value) : Convert::raw2xml($this->value); + $val = _t('CurrencyField.CURRENCYSYMBOL', '$') . number_format(preg_replace('/[^0-9.]/',"",$val), 2); + + }else { + $val = ''._t('CurrencyField.CURRENCYSYMBOL', '$').'0.00'; + } + $valforInput = $this->value ? Convert::raw2att($val) : ""; + return "name."\" value=\"".$valforInput."\" />"; + } +} + ?> \ No newline at end of file