From 6f7fdef0f500cd4bb540affd3bc1482243f337c1 Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 24 Feb 2016 23:18:07 +0100 Subject: * Prado 3.3.0 --- .../Web/UI/WebControls/TContentPlaceHolder.php | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 lib/prado/framework/Web/UI/WebControls/TContentPlaceHolder.php (limited to 'lib/prado/framework/Web/UI/WebControls/TContentPlaceHolder.php') diff --git a/lib/prado/framework/Web/UI/WebControls/TContentPlaceHolder.php b/lib/prado/framework/Web/UI/WebControls/TContentPlaceHolder.php new file mode 100644 index 0000000..0355467 --- /dev/null +++ b/lib/prado/framework/Web/UI/WebControls/TContentPlaceHolder.php @@ -0,0 +1,46 @@ + + * @link https://github.com/pradosoft/prado + * @copyright Copyright © 2005-2015 The PRADO Group + * @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT + * @package System.Web.UI.WebControls + */ + +/** + * TContentPlaceHolder class + * + * TContentPlaceHolder reserves a place on a template where a {@link TContent} + * control can inject itself and its children in. TContentPlaceHolder and {@link TContent} + * together implement a decoration pattern for prado templated controls. + * A template control (called content control) can specify a master control + * whose template contains some TContentPlaceHolder controls. + * {@link TContent} controls on the content control's template will replace the corresponding + * {@link TContentPlaceHolder} controls on the master control's template. + * This is called content injection. It is done by matching the IDs of + * {@link TContent} and {@link TContentPlaceHolder} controls. + * + * @author Qiang Xue + * @package System.Web.UI.WebControls + * @since 3.0 + */ +class TContentPlaceHolder extends TControl +{ + /** + * This method is invoked after the control is instantiated on a template. + * This overrides the parent implementation by registering the content placeholder + * control to the template owner control. The placeholder control will NOT + * be added to the potential parent control! + * @param TControl potential parent of this control + */ + public function createdOnTemplate($parent) + { + if(($id=$this->getID())==='') + throw new TConfigurationException('contentplaceholder_id_required'); + $this->getTemplateControl()->registerContentPlaceHolder($id,$this); + $parent->getControls()->add($this); + } +} + -- cgit v1.2.3