diff options
Diffstat (limited to 'framework/Web/UI/WebControls/TConditional.php')
-rw-r--r-- | framework/Web/UI/WebControls/TConditional.php | 284 |
1 files changed, 142 insertions, 142 deletions
diff --git a/framework/Web/UI/WebControls/TConditional.php b/framework/Web/UI/WebControls/TConditional.php index d04324f0..28af2305 100644 --- a/framework/Web/UI/WebControls/TConditional.php +++ b/framework/Web/UI/WebControls/TConditional.php @@ -1,143 +1,143 @@ -<?php
-/**
- * TConditional class file.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @link http://www.pradosoft.com/
+<?php +/** + * TConditional class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/
- * @version $Id$
- * @package System.Web.UI.WebControls
- */
-
-/**
- * TConditional class.
- *
- * TConditional displays appropriate content based on the evaluation result
- * of a PHP expression specified via {@link setCondition Condition}.
- * If the result is true, it instantiates the template {@link getTrueTemplate TrueTemplate};
- * otherwise, the template {@link getFalseTemplate FalseTemplate} is instantiated.
- * The PHP expression is evaluated right before {@link onInit} stage of the control lifecycle.
- *
- * Since {@link setCondition Condition} is evaluated at a very early stage, it is recommended
- * you set {@link setCondition Condition} in template and the expression should not refer to
- * objects that are available on or after {@link onInit} lifecycle.
- *
- * A typical usage of TConditional is shown as following:
- * <code>
- * <com:TConditional Condition="$this->User->IsGuest">
- * <prop:TrueTemplate>
- * <a href="path/to/login">Login</a>
- * </prop:TrueTemplate>
- * <prop:FalseTemplate>
- * <a href="path/to/logout">Logout</a>
- * </prop:FalseTemplate>
- * </com:TConditional>
- * </code>
- *
- * TConditional is very light. It instantiates either {@link getTrueTemplate TrueTemplate}
- * or {@link getFalseTemplate FalseTemplate}, but never both. And the condition is evaluated only once.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id$
- * @package System.Web.UI.WebControls
- * @since 3.1.1
- */
-class TConditional extends TControl
-{
- private $_condition='true';
- private $_trueTemplate;
- private $_falseTemplate;
- private $_creatingChildren=false;
-
- /**
- * Processes an object that is created during parsing template.
- * This method overrides the parent implementation by removing
- * all contents enclosed in the template tag.
- * @param string|TComponent text string or component parsed and instantiated in template
- * @see createdOnTemplate
- */
- public function addParsedObject($object)
- {
- if($this->_creatingChildren)
- parent::addParsedObject($object);
- }
-
- /**
- * Creates child controls.
- * This method overrides the parent implementation. It evaluates {@link getCondition Condition}
- * and instantiate the corresponding template.
- */
- public function createChildControls()
- {
- $this->_creatingChildren=true;
- $result=true;
- try
- {
- $result=$this->getTemplateControl()->evaluateExpression($this->_condition);
- }
- catch(Exception $e)
- {
- throw new TInvalidDataValueException('conditional_condition_invalid',$this->_condition,$e->getMessage());
- }
- if($result)
- {
- if($this->_trueTemplate)
- $this->_trueTemplate->instantiateIn($this->getTemplateControl(),$this);
- }
- else if($this->_falseTemplate)
- $this->_falseTemplate->instantiateIn($this->getTemplateControl(),$this);
- $this->_creatingChildren=false;
- }
-
- /**
- * @return string the PHP expression used for determining which template to use. Defaults to 'true', meaning using TrueTemplate.
- */
- public function getCondition()
- {
- return $this->_condition;
- }
-
- /**
- * Sets the PHP expression to be evaluated for conditionally displaying content.
- * The context of the expression is the template control containing TConditional.
- * @param string the PHP expression used for determining which template to use.
- */
- public function setCondition($value)
- {
- $this->_condition=TPropertyValue::ensureString($value);
- }
-
- /**
- * @return ITemplate the template applied when {@link getCondition Condition} is true.
- */
- public function getTrueTemplate()
- {
- return $this->_trueTemplate;
- }
-
- /**
- * @param ITemplate the template applied when {@link getCondition Condition} is true.
- */
- public function setTrueTemplate(ITemplate $value)
- {
- $this->_trueTemplate=$value;
- }
-
- /**
- * @return ITemplate the template applied when {@link getCondition Condition} is false.
- */
- public function getFalseTemplate()
- {
- return $this->_falseTemplate;
- }
-
- /**
- * @param ITemplate the template applied when {@link getCondition Condition} is false.
- */
- public function setFalseTemplate(ITemplate $value)
- {
- $this->_falseTemplate=$value;
- }
-}
-
+ * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Web.UI.WebControls + */ + +/** + * TConditional class. + * + * TConditional displays appropriate content based on the evaluation result + * of a PHP expression specified via {@link setCondition Condition}. + * If the result is true, it instantiates the template {@link getTrueTemplate TrueTemplate}; + * otherwise, the template {@link getFalseTemplate FalseTemplate} is instantiated. + * The PHP expression is evaluated right before {@link onInit} stage of the control lifecycle. + * + * Since {@link setCondition Condition} is evaluated at a very early stage, it is recommended + * you set {@link setCondition Condition} in template and the expression should not refer to + * objects that are available on or after {@link onInit} lifecycle. + * + * A typical usage of TConditional is shown as following: + * <code> + * <com:TConditional Condition="$this->User->IsGuest"> + * <prop:TrueTemplate> + * <a href="path/to/login">Login</a> + * </prop:TrueTemplate> + * <prop:FalseTemplate> + * <a href="path/to/logout">Logout</a> + * </prop:FalseTemplate> + * </com:TConditional> + * </code> + * + * TConditional is very light. It instantiates either {@link getTrueTemplate TrueTemplate} + * or {@link getFalseTemplate FalseTemplate}, but never both. And the condition is evaluated only once. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id$ + * @package System.Web.UI.WebControls + * @since 3.1.1 + */ +class TConditional extends TControl +{ + private $_condition='true'; + private $_trueTemplate; + private $_falseTemplate; + private $_creatingChildren=false; + + /** + * Processes an object that is created during parsing template. + * This method overrides the parent implementation by removing + * all contents enclosed in the template tag. + * @param string|TComponent text string or component parsed and instantiated in template + * @see createdOnTemplate + */ + public function addParsedObject($object) + { + if($this->_creatingChildren) + parent::addParsedObject($object); + } + + /** + * Creates child controls. + * This method overrides the parent implementation. It evaluates {@link getCondition Condition} + * and instantiate the corresponding template. + */ + public function createChildControls() + { + $this->_creatingChildren=true; + $result=true; + try + { + $result=$this->getTemplateControl()->evaluateExpression($this->_condition); + } + catch(Exception $e) + { + throw new TInvalidDataValueException('conditional_condition_invalid',$this->_condition,$e->getMessage()); + } + if($result) + { + if($this->_trueTemplate) + $this->_trueTemplate->instantiateIn($this->getTemplateControl(),$this); + } + else if($this->_falseTemplate) + $this->_falseTemplate->instantiateIn($this->getTemplateControl(),$this); + $this->_creatingChildren=false; + } + + /** + * @return string the PHP expression used for determining which template to use. Defaults to 'true', meaning using TrueTemplate. + */ + public function getCondition() + { + return $this->_condition; + } + + /** + * Sets the PHP expression to be evaluated for conditionally displaying content. + * The context of the expression is the template control containing TConditional. + * @param string the PHP expression used for determining which template to use. + */ + public function setCondition($value) + { + $this->_condition=TPropertyValue::ensureString($value); + } + + /** + * @return ITemplate the template applied when {@link getCondition Condition} is true. + */ + public function getTrueTemplate() + { + return $this->_trueTemplate; + } + + /** + * @param ITemplate the template applied when {@link getCondition Condition} is true. + */ + public function setTrueTemplate(ITemplate $value) + { + $this->_trueTemplate=$value; + } + + /** + * @return ITemplate the template applied when {@link getCondition Condition} is false. + */ + public function getFalseTemplate() + { + return $this->_falseTemplate; + } + + /** + * @param ITemplate the template applied when {@link getCondition Condition} is false. + */ + public function setFalseTemplate(ITemplate $value) + { + $this->_falseTemplate=$value; + } +} + |