summaryrefslogtreecommitdiff
path: root/framework/web/form/CFormStringElement.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/web/form/CFormStringElement.php')
-rw-r--r--framework/web/form/CFormStringElement.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/framework/web/form/CFormStringElement.php b/framework/web/form/CFormStringElement.php
new file mode 100644
index 0000000..7d869ea
--- /dev/null
+++ b/framework/web/form/CFormStringElement.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * CFormStringElement class file.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @link http://www.yiiframework.com/
+ * @copyright Copyright &copy; 2008-2011 Yii Software LLC
+ * @license http://www.yiiframework.com/license/
+ */
+
+/**
+ * CFormStringElement represents a string in a form.
+ *
+ * @property string $on Scenario names separated by commas. Defaults to null.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @version $Id: CFormStringElement.php 3426 2011-10-25 00:01:09Z alexander.makarow $
+ * @package system.web.form
+ * @since 1.1
+ */
+class CFormStringElement extends CFormElement
+{
+ /**
+ * @var string the string content
+ */
+ public $content;
+
+ private $_on;
+
+ /**
+ * Returns a value indicating under which scenarios this string is visible.
+ * If the value is empty, it means the string is visible under all scenarios.
+ * Otherwise, only when the model is in the scenario whose name can be found in
+ * this value, will the string be visible. See {@link CModel::scenario} for more
+ * information about model scenarios.
+ * @return string scenario names separated by commas. Defaults to null.
+ */
+ public function getOn()
+ {
+ return $this->_on;
+ }
+
+ /**
+ * @param string $value scenario names separated by commas.
+ */
+ public function setOn($value)
+ {
+ $this->_on=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY);
+ }
+
+ /**
+ * Renders this element.
+ * The default implementation simply returns {@link content}.
+ * @return string the string content
+ */
+ public function render()
+ {
+ return $this->content;
+ }
+
+ /**
+ * Evaluates the visibility of this element.
+ * This method will check the {@link on} property to see if
+ * the model is in a scenario that should have this string displayed.
+ * @return boolean whether this element is visible.
+ */
+ protected function evaluateVisible()
+ {
+ return empty($this->_on) || in_array($this->getParent()->getModel()->getScenario(),$this->_on);
+ }
+}