From 4c6ec7afd97f329d857e37453793880992bed74f Mon Sep 17 00:00:00 2001 From: Christopher Pitt Date: Mon, 27 Apr 2015 16:00:53 +1200 Subject: [PATCH] Clean up LiteralField --- forms/LiteralField.php | 75 ++++++++++++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/forms/LiteralField.php b/forms/LiteralField.php index c6fc69876..c2b576329 100644 --- a/forms/LiteralField.php +++ b/forms/LiteralField.php @@ -1,76 +1,103 @@ Usage - * + * * * new LiteralField ( * $name = "literalfield", * $content = 'some bold text and a link' * ) * - * + * * @package forms * @subpackage fields-dataless */ class LiteralField extends DatalessField { - /** - * @var string $content + * @var string|FormField */ protected $content; - + + /** + * @param string $name + * @param string|FormField $content + */ public function __construct($name, $content) { - $this->content = $content; - + $this->setContent($content); + parent::__construct($name); } - + + /** + * @param array $properties + * + * @return string + */ public function FieldHolder($properties = array()) { - if(is_object($this->content)) { - $obj = $this->content; - if($properties) - $obj = $obj->customise($properties); - return $obj->forTemplate(); - } else { - return $this->content; + if($this->content instanceof ViewableData) { + $context = $this->content; + + if($properties) { + $context = $context->customise($properties); + } + + return $context->forTemplate(); } + + return $this->content; } + /** + * @param array $properties + * + * @return string + */ public function Field($properties = array()) { return $this->FieldHolder($properties); } /** - * Sets the content of this field to a new value + * Sets the content of this field to a new value. * - * @param string $content + * @param string|FormField $content + * + * @return $this */ public function setContent($content) { $this->content = $content; + return $this; } - + /** * @return string */ public function getContent() { return $this->content; } - + /** * Synonym of {@link setContent()} so that LiteralField is more compatible with other field types. + * + * @param string|FormField $content + * + * @return $this */ - public function setValue($value) { - $this->setContent($value); + public function setValue($content) { + $this->setContent($content); + return $this; } + /** + * @return static + */ public function performReadonlyTransformation() { $clone = clone $this; + $clone->setReadonly(true); + return $clone; } - }