From f16aa6762984e4d555a1cf93692db0a69fa2ab38 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 14 Jan 2006 00:19:18 +0000 Subject: Added TBaseDataList control. Updated class tree. Modified TTextBox about SafeHtml support. Modified TTextBox demo accordingly. --- framework/Web/UI/WebControls/TTextBox.php | 56 ++++++++++++++++++------------- 1 file changed, 33 insertions(+), 23 deletions(-) (limited to 'framework/Web/UI/WebControls/TTextBox.php') diff --git a/framework/Web/UI/WebControls/TTextBox.php b/framework/Web/UI/WebControls/TTextBox.php index dae0ccf8..4eb42313 100644 --- a/framework/Web/UI/WebControls/TTextBox.php +++ b/framework/Web/UI/WebControls/TTextBox.php @@ -10,8 +10,6 @@ * @package System.Web.UI.WebControls */ -Prado::using('System.3rdParty.SafeHtml.TSafeHtmlParser'); - /** * TTextBox class * @@ -56,8 +54,14 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable * @var array list of auto complete types */ private static $_autoCompleteTypes=array('BusinessCity','BusinessCountryRegion','BusinessFax','BusinessPhone','BusinessState','BusinessStreetAddress','BusinessUrl','BusinessZipCode','Cellular','Company','Department','Disabled','DisplayName','Email','FirstName','Gender','HomeCity','HomeCountryRegion','HomeFax','Homepage','HomePhone','HomeState','HomeStreetAddress','HomeZipCode','JobTitle','LastName','MiddleName','None','Notes','Office','Pager','Search'); - - protected $_safeContent; + /** + * @var mixed safe text parser + */ + private static $_safeTextParser=null; + /** + * @var string safe textbox content with javascript stripped off + */ + private $_safeText; /** * @return string tag name of the textbox @@ -94,7 +98,7 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable if($textMode==='SingleLine') { $writer->addAttribute('type','text'); - if(($text=$this->getRawText())!=='') + if(($text=$this->getText())!=='') $writer->addAttribute('value',$text); if(($act=$this->getAutoCompleteType())!=='None') { @@ -173,7 +177,7 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable public function loadPostData($key,$values) { $value=$values[$key]; - if(!$this->getReadOnly() && $this->getRawText()!==$value) + if(!$this->getReadOnly() && $this->getText()!==$value) { $this->setText($value); return true; @@ -230,7 +234,7 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable protected function renderContents($writer) { if($this->getTextMode()==='MultiLine') - $writer->write(THttpUtility::htmlEncode($this->getRawText())); + $writer->write(THttpUtility::htmlEncode($this->getText())); } /** @@ -362,35 +366,41 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable } /** - * @return string the unmodified text content of the TTextBox control. + * @return string the text content of the TTextBox control. */ - public function getRawText() + public function getText() { return $this->getViewState('Text',''); } /** - * @return string safe text content. + * Sets the text content of the TTextBox control. + * @param string the text content */ - public function getText() + public function setText($value) { - $text = $this->getRawText(); - if(is_null($this->_safeContent)) - { - $renderer = new TSafeHtmlParser(); - $this->_safeContent = $renderer->parse($text); - } - return $this->_safeContent; + $this->setViewState('Text',$value,''); + $this->_safeText = null; } /** - * Sets the text content of the TTextBox control. - * @param string the text content + * @return string safe text content with javascript stripped off */ - public function setText($value) + public function getSafeText() { - $this->setViewState('Text',$value,''); - $this->_safeContent = null; + if($this->_safeText===null) + $this->_safeText=$this->getSafeTextParser()->parse($this->getText()); + return $this->_safeText; + } + + /** + * @return mixed safe text parser + */ + protected function getSafeTextParser() + { + if(!self::$_safeTextParser) + self::$_safeTextParser=Prado::createComponent('System.3rdParty.SafeHtml.TSafeHtmlParser'); + return self::$_safeTextParser; } /** -- cgit v1.2.3