From b7f95ce37ae577e95a81e64aa2aaf3e2e698109d Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 5 Aug 2006 21:34:30 +0000 Subject: merge from 3.0 branch till 1329. --- 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 22aee89f..60586fab 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -637,19 +637,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