diff options
| -rw-r--r-- | framework/Web/UI/WebControls/TIframe.php | 199 | 
1 files changed, 108 insertions, 91 deletions
diff --git a/framework/Web/UI/WebControls/TIframe.php b/framework/Web/UI/WebControls/TIframe.php index 32091d78..e6a919ba 100644 --- a/framework/Web/UI/WebControls/TIframe.php +++ b/framework/Web/UI/WebControls/TIframe.php @@ -1,47 +1,38 @@  <?php  /** - * Class TIframe. - *  - * Prado V3 Porting Author Information + * TIframe class file. + *   * @author Jason Ragsdale <jrags@jasrags.net> - * @version $Revision: 1.0$  $Date: 3/1/2006$ + * @author Harry Pottash <hpottash@gmail.com>   * @link http://www.pradosoft.com/   * @copyright Copyright © 2005 PradoSoft   * @license http://www.pradosoft.com/license/ + * @version $Revision: $  $Date: $   * @package System.Web.UI.WebControls   */ -  /**   * TIframe class   * - * TIframe displays displays a Iframe to another Web page. - * - * The TIframe component creates an Iframe in your page which will display - * whatever is specified in the <b>FrameUrl</b> property - * - * - * Properties - * - <b>FrameUrl</b>, string, kept in viewstate - *   <br>Gets or sets the URL for the JIframe component. - * - <b>Scrolling</b>, booliean, default=true, kept in viewstate - *   <br>Gets or sets the flag determining if scroll bars should be displaed on the nav window - * - <b>LongDesc</b>, string, kept in viewstate - *   <br>Gets or sets the long description of the iframe - * - <b>FrameBorder</b>, booliean, default=true, kept in viewstate - *   <br>Gets or sets the flag determining if iframe will have a border - * - <b>MarginHeight</b>, string, default=true, kept in viewstate - *   <br>Gets or sets the margin height within the iframe - * - <b>MarginWidth</b>, string, default=true, kept in viewstate - *   <br>Gets or sets the margin width within the iframe + * TIframe displays an inline frame (iframe) on a Web page. + * The location of the frame content is specified by {@link setFrameUrl FrameUrl}. + * The frame's alignment is specified by {@link setAlign Align}. + * The {@link setMarginWidth MarginWidth} and {@link setMarginHeight MarginHeight} + * properties define the number of pixels to use as the left/right margins and + * top/bottom margins, respectively, within the inline frame. + * The {@link setScrollBars ScrollBars} property specifies whether scrollbars are + * provided for the inline frame. And {@link setDescriptionUrl DescriptionUrl} + * gives the URI of a long description of the frame's contents.   *   * Original Prado v2 IFrame Author Information + * @author Jason Ragsdale <jrags@jasrags.net>   * @author Harry Pottash <hpottash@gmail.com> - * @version v1.0, last update on 2005/05/21 + * @version $Revision: $  $Date: $ + * @package System.Web.UI.WebControls + * @since 3.0   */  class TIframe extends TWebControl  { -  	/**  	 * @return string tag name of the iframe.  	 */ @@ -51,99 +42,125 @@ class TIframe extends TWebControl  	}  	/** -	 * @return string  Defaults to ''. +	 * @return string alignment of the iframe. Defaults to 'NotSet'.  	 */ -	public function getFrameUrl() +	public function getAlign()  	{ -		return $this->getViewState('FrameUrl',''); +		return $this->getViewState('Align','NotSet');  	} -  +  	/** -	 * @param string  +	 * @param string alignment of the iframe. Valid values include +	 * 'NotSet', 'Left', 'Right', 'Top', 'Middle', 'Bottom'.  	 */ -	public function setFrameUrl($value) +	public function setAlign($value)  	{ -		$this->setViewState('FrameUrl',TPropertyValue::ensureString($value),''); +		$this->setViewState('Align',TPropertyValue::ensureEnum($value,'NotSet','Left','Right','Top','Middle','Bottom'),'NotSet');  	} -  +  	/** -	 * @return boolean  Defaults to true. +	 * @return string the URL to long description  	 */ -	public function getScrolling() +	public function getDescriptionUrl()  	{ -		return $this->getViewState('Scrolling',true); +		return $this->getViewState('DescriptionUrl','');  	} -  +  	/** -	 * @param boolean  +	 * @param string the URL to the long description of the image.  	 */ -	public function setScrolling($value) +	public function setDescriptionUrl($value)  	{ -		$this->setViewState('Scrolling',TPropertyValue::ensureBoolean($value),true); +		$this->setViewState('DescriptionUrl',$value,'');  	} -  +  	/** -	 * @return string  Defaults to ''. +	 * @return boolean whether there should be a visual separator between the frames. Defaults to true.  	 */ -	public function getLongDesc() +	public function getShowBorder()  	{ -		return $this->getViewState('LongDesc',''); +		return $this->getViewState('ShowBorder',true);  	} -  +  	/** -	 * @param string  +	 * @param boolean whether there should be a visual separator between the frames.  	 */ -	public function setLongDesc($value) +	public function setShowBorder($value)  	{ -		$this->setViewState('LongDesc',TPropertyValue::ensureString($value),''); +		$this->setViewState('ShowBorder',TPropertyValue::ensureBoolean($value),true);  	} -  +  	/** -	 * @return boolean  Defaults to true. +	 * @return string URL that this iframe will load content from. Defaults to ''.  	 */ -	public function getFrameBorder() +	public function getFrameUrl()  	{ -		return $this->getViewState('FrameBorder',true); +		return $this->getViewState('FrameUrl','');  	} -  +  	/** -	 * @param boolean  +	 * @param string URL that this iframe will load content from.  	 */ -	public function setFrameBorder($value) +	public function setFrameUrl($value)  	{ -		$this->setViewState('FrameBorder',TPropertyValue::ensureBoolean($value),true); +		$this->setViewState('FrameUrl',$value,'');  	} -  + +	/** +	 * @return string the visibility and position of scroll bars in an iframe. Defaults to 'Auto'. +	 */ +	public function getScrollBars() +	{ +		return $this->getViewState('ScrollBars','Auto'); +	} + +	/** +	 * @param string the visibility and position of scroll bars in an iframe. +	 * Valid values include None, Auto, Both. +	 */ +	public function setScrollBars($value) +	{ +		$this->setViewState('ScrollBars',TPropertyValue::ensureEnum($value,array('None','Auto','Both')),'Auto'); +	} +  	/** -	 * @return string  Defaults to ''. +	 * @return integer the amount of space, in pixels, that should be left between +	 * the frame's contents and the left and right margins. Defaults to -1, meaning not set.  	 */  	public function getMarginWidth()  	{ -		return $this->getViewState('MarginWidth',''); +		return $this->getViewState('MarginWidth',-1);  	} -  +  	/** -	 * @param string  +	 * @param integer the amount of space, in pixels, that should be left between +	 * the frame's contents and the left and right margins.  	 */  	public function setMarginWidth($value)  	{ -		$this->setViewState('MarginWidth',TPropertyValue::ensureString($value),''); +		if(($value=TPropertyValue::ensureInteger($value))<0) +			$value=-1; +		$this->setViewState('MarginWidth',$value,-1);  	} -  +  	/** -	 * @return string  Defaults to ''. +	 * @return integer the amount of space, in pixels, that should be left between +	 * the frame's contents and the top and bottom margins. Defaults to -1, meaning not set.  	 */  	public function getMarginHeight()  	{ -		return $this->getViewState('MarginHeight',''); +		return $this->getViewState('MarginHeight',-1);  	} -  +  	/** -	 * @param string  +	 * @param integer the amount of space, in pixels, that should be left between +	 * the frame's contents and the top and bottom margins.  	 */  	public function setMarginHeight($value)  	{ -		$this->setViewState('MarginHeight',TPropertyValue::ensureString($value),''); +		if(($value=TPropertyValue::ensureInteger($value))<0) +			$value=-1; +		$this->setViewState('MarginHeight',$value,-1);  	}  	/** @@ -152,34 +169,34 @@ class TIframe extends TWebControl  	 * @param THtmlWriter the writer used for the rendering purpose  	 */  	protected function addAttributesToRender($writer) -	{	 -		if(($uniqueID=$this->getUniqueID())!=='') -			$writer->addAttribute('name',$uniqueID); -		 -		$writer->addAttribute('src',$this->getFrameUrl()); +	{ +		if(($id=$this->getID())!=='') +			$writer->addAttribute('name',$this->getUniqueID()); + +		if(($src=$this->getFrameUrl())!=='') +			$writer->addAttribute('src',$src); -		if(!$this->getEnabled()) -			$writer->addAttribute('disabled','disabled'); -		 -		if($this->getScrolling()) -			$writer->addAttribute('scrolling','auto'); -		else  +		if(($align=strtolower($this->getAlign()))!=='notset') +			$writer->addAttribute('align',$align); + +		$scrollBars=$this->getScrollBars(); +		if($scrollBars==='None') +			$writer->addAttribute('scrolling','yes'); +		else if($scrollBars==='Both')  			$writer->addAttribute('scrolling','no'); -		 -		if ($this->getFrameBorder()) -			$writer->addAttribute('frameborder','1'); -		else  + +		if (!$this->getShowBorder())  			$writer->addAttribute('frameborder','0'); -			 -		if(($longdesc=$this->getLongDesc())!=='') -			$writer->addAttribute('LongDesc',$longdesc); -		if(($marginheight=$this->getMarginHeight())!=='') +		if(($longdesc=$this->getDescriptionUrl())!=='') +			$writer->addAttribute('longdesc',$longdesc); + +		if(($marginheight=$this->getMarginHeight())!==-1)  			$writer->addAttribute('marginheight',$marginheight); -		 -		if(($marginwidth=$this->getMarginWidth())!=='') + +		if(($marginwidth=$this->getMarginWidth())!==-1)  			$writer->addAttribute('marginwidth',$marginwidth); -			 +  		parent::addAttributesToRender($writer);  	}  }  | 
