From 55c4ac1bfe565f1ca7f537fdd8b7a201be28e581 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 10 Nov 2005 12:47:19 +0000 Subject: Initial import of prado framework --- .../Web/UI/WebControls/TContentPlaceHolder.php | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 framework/Web/UI/WebControls/TContentPlaceHolder.php (limited to 'framework/Web/UI/WebControls/TContentPlaceHolder.php') diff --git a/framework/Web/UI/WebControls/TContentPlaceHolder.php b/framework/Web/UI/WebControls/TContentPlaceHolder.php new file mode 100644 index 00000000..fc832fae --- /dev/null +++ b/framework/Web/UI/WebControls/TContentPlaceHolder.php @@ -0,0 +1,47 @@ + + * @link http://www.xisc.com/ + * @copyright Copyright © 2004-2005, Qiang Xue + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @version $Revision: $ $Date: $ + * @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 + * @version $Revision: $ $Date: $ + * @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) + { + $loc=$parent->getHasControls()?$parent->getControls()->getCount():0; + $this->getTemplateControl()->registerContentPlaceHolder($this->getID(),$parent,$loc); + } +} + +?> \ No newline at end of file -- cgit v1.2.3