summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/Web/UI/WebControls/TStyleSheet.php77
1 files changed, 39 insertions, 38 deletions
diff --git a/framework/Web/UI/WebControls/TStyleSheet.php b/framework/Web/UI/WebControls/TStyleSheet.php
index 5b4cc944..e5b6ac6d 100644
--- a/framework/Web/UI/WebControls/TStyleSheet.php
+++ b/framework/Web/UI/WebControls/TStyleSheet.php
@@ -1,8 +1,27 @@
<?php
+/**
+ * TStyleSheet class file.
+ *
+ * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @version $Revision: $ $Date: $
+ * @package System.Web.UI.WebControls
+ */
/**
* TStyleSheet class.
*
+ * TStyleSheet represents the link to a stylesheet file and/or a piece of
+ * stylesheet code. To specify the link to a CSS file, set {@link setStyleSheetUrl StyleSheetUrl}.
+ * The child rendering result of TStyleSheet is treated as CSS code and
+ * is rendered within an appropriate style HTML element.
+ * Therefore, if the child content is not empty, you should place the TStyleSheet
+ * control in the head section of your page to conform to the HTML standard.
+ * If only CSS file URL is specified, you may place the control anywhere on your page
+ * and the style element will be rendered in the right position.
+ *
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
* @version : $ Tue Jul 4 04:38:16 EST 2006 $
* @package System.Web.UI.WebControl
@@ -11,65 +30,47 @@
class TStyleSheet extends TControl
{
/**
- * @param string stylesheet url or asset resource.
+ * @param string URL to the stylesheet file
*/
- public function setStyleUrl($value)
+ public function setStyleSheetUrl($value)
{
- $this->setViewState('StyleUrl', $value);
+ $this->setViewState('StyleSheetUrl', $value);
}
-
+
/**
- * @return string stylesheet url.
+ * @return string URL to the stylesheet file
*/
- public function getStyleUrl()
+ public function getStyleSheetUrl()
{
- return $this->getViewState('StyleUrl', '');
+ return $this->getViewState('StyleSheetUrl', '');
}
-
+
/**
- * Registers the stylesheet urls. Calls {@link renderChildren} to capture
- * the body content to render the stylesheet in the head.
+ * Registers the stylesheet file and content to be rendered.
+ * This method overrides the parent implementation and is invoked right before rendering.
* @param mixed event parameter
*/
public function onPreRender($param)
{
if($this->getEnabled(true))
{
- $this->registerCustomStyleSheetFile();
- $this->registerCustomStyleSheet();
+ if(($url=$this->getStyleSheetUrl())!=='')
+ $this->getPage()->getClientScript()->registerStyleSheetFile($url,$url);
}
}
-
- /**
- * Overrides parent implementation, renders nothing.
- */
- public function renderChildren($writer)
- {
-
- }
-
- /**
- * Register custom stylesheet file.
- */
- protected function registerCustomStyleSheetFile()
- {
- $cs = $this->getPage()->getClientScript();
- $url = $this->getStyleUrl();
- if(strlen($url) > 0)
- $cs->registerStyleSheetFile($url, $url);
- }
-
+
/**
- * Registers the body content as stylesheet.
+ * Renders the control.
+ * This method overrides the parent implementation and renders nothing.
+ * @param ITextWriter writer
*/
- protected function registerCustomStyleSheet()
+ public function render($writer)
{
- $cs = $this->getPage()->getClientScript();
$textWriter=new TTextWriter;
parent::renderChildren(new THtmlWriter($textWriter));
- $text = $textWriter->flush();
- if(strlen($text)>0)
- $cs->registerStyleSheet(sprintf('%08X', crc32($text)), $text);
+ if(($css=trim($textWriter->flush()))!=='')
+ $writer->write("<style type=\"text/css\">\n/*<![CDATA[*/\n{$css}\n/*]]>*/\n</style>\n");
}
}
+
?> \ No newline at end of file