From dc76ce6c04347a42bdd03b2c6060395d071ddb0e Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 2 Aug 2006 12:06:13 +0000 Subject: Fixed #316. --- framework/Web/UI/TPage.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'framework/Web/UI/TPage.php') diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 1fa9330c..8c01a501 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -490,19 +490,36 @@ class TPage extends TTemplateControl if($this->_theme instanceof ITheme) { foreach($this->_theme->getStyleSheetFiles() as $url) - $cs->registerStyleSheetFile($url,$url); + $cs->registerStyleSheetFile($url,$url,$this->getCssMediaType($url)); foreach($this->_theme->getJavaScriptFiles() as $url) $cs->registerHeadScriptFile($url,$url); } if($this->_styleSheet instanceof ITheme) { foreach($this->_styleSheet->getStyleSheetFiles() as $url) - $cs->registerStyleSheetFile($url,$url); + $cs->registerStyleSheetFile($url,$url,$this->getCssMediaType($url)); foreach($this->_styleSheet->getJavaScriptFiles() as $url) $cs->registerHeadScriptFile($url,$url); } } + /** + * Determines the media type of the CSS file. + * The media type is determined according to the following file name pattern: + * xxx.media-type.extension + * For example, 'mystyle.print.css' means its media type is 'print'. + * @param string CSS URL + * @return string media type of the CSS file + */ + private function getCssMediaType($url) + { + $segs=explode('.',basename($url)); + if(isset($segs[2])) + return $segs[count($segs)-2]; + else + return ''; + } + /** * Raises OnSaveStateComplete event. * This method is invoked right after {@link onSaveState OnSaveState} stage. -- cgit v1.2.3