* @var array
*/
public $javascripts_footer = array();
-
+
/**
* The names of all the javascript files from parents that should be excluded.
* true value may be used to specify all parents or all themes from one parent.
// may contain core and plugin renderers and renderer factory
include_once($rendererfile);
}
-
+
// cascade all layouts properly
foreach ($baseconfig->layouts as $layout=>$value) {
if (!isset($this->layouts[$layout])) {
if (check_browser_version('MSIE', 5)) {
// lalala, IE does not allow more than 31 linked CSS files from main document
- $urls[] = new moodle_url($CFG->httpswwwroot.'/theme/styles_debug.php', array('theme'=>$this->name, 'type'=>'ie'));
+ $urls[] = new moodle_url($CFG->httpswwwroot.'/theme/styles_debug.php', array('theme'=>$this->name, 'type'=>'ie', 'subtype'=>'plugins'));
+ $urls[] = new moodle_url($CFG->httpswwwroot.'/theme/styles_debug.php', array('theme'=>$this->name, 'type'=>'ie', 'subtype'=>'parents'));
+ $urls[] = new moodle_url($CFG->httpswwwroot.'/theme/styles_debug.php', array('theme'=>$this->name, 'type'=>'ie', 'subtype'=>'theme'));
} else {
foreach ($css['plugins'] as $plugin=>$unused) {
} else {
$themes = array_merge(array($this->name),$this->parents);
}
-
+
foreach ($themes as $theme) {
if ($dir = $this->find_theme_location($theme)) {
$path = "$dir/layout/$layoutfile";
require('../config.php'); // this stops immediately at the beginning of lib/setup.php
$themename = min_optional_param('theme', 'standard', 'SAFEDIR');
-$type = min_optional_param('type', 'all', 'SAFEDIR');
+$type = min_optional_param('type', '', 'SAFEDIR');
$subtype = min_optional_param('subtype', '', 'SAFEDIR');
$sheet = min_optional_param('sheet', '', 'SAFEDIR');
$css = unserialize($css);
if ($type === 'ie') {
- send_ie_css($themename, $css);
+ // IE is a sloppy browser with weird limits, sorry
+ if ($subtype === 'plugins') {
+ $sendcss = implode("\n\n", $css['plugins']);
+ $sendcss = str_replace("\n", "\r\n", $sendcss);
+ send_uncached_css($sendcss);
+
+ } else if ($subtype === 'parents') {
+ $sendcss = array();
+ foreach ($css['parents'] as $parent=>$sheets) {
+ $sendcss = array_merge($sendcss, $sheets);
+ }
+ $sendcss = implode("\n\n", $sendcss);
+ $sendcss = str_replace("\n", "\r\n", $sendcss);
+ send_uncached_css($sendcss);
+
+ } else if ($subtype === 'theme') {
+ $sendcss = implode("\n\n", $css['theme']);
+ $sendcss = str_replace("\n", "\r\n", $sendcss);
+ send_uncached_css($sendcss);
+ }
} else if ($type === 'plugin') {
if (isset($css['plugins'][$subtype])) {
die('CSS was not found, sorry.');
}
-function send_ie_css($themename, $css) {
- $output = "/** Unfortunately IE6/7/8 does not support more than 31 CSS files, which means we have to use some ugly hacks :-( **/\n";
- foreach ($css['plugins'] as $plugin=>$unused) {
- $output .= "@import url(styles_debug.php?theme=$themename&type=plugin&subtype=$plugin);\n";
- }
- foreach ($css['parents'] as $parent=>$sheets) {
- foreach ($sheets as $sheet=>$unused2) {
- $output .= "@import url(styles_debug.php?theme=$themename&type=parent&subtype=$parent&sheet=$sheet);\n";
- }
- }
- foreach ($css['theme'] as $sheet=>$unused) {
- $output .= "@import url(styles_debug.php?theme=$themename&type=theme&sheet=$sheet);\n";
- }
-
- header('Content-Disposition: inline; filename="styles_debug.php"');
- header('Last-Modified: '. gmdate('D, d M Y H:i:s', time()) .' GMT');
- header('Expires: '. gmdate('D, d M Y H:i:s', time() + THEME_DESIGNER_CACHE_LIFETIME) .' GMT');
- header('Pragma: ');
- header('Accept-Ranges: none');
- header('Content-Type: text/css');
- //header('Content-Length: '.strlen($output));
-
- echo $output;
- die;
-}