From 318cd03ee91d3a5344bab636a77c3cb19c32c5b7 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 26 Feb 2011 21:22:14 +0000 Subject: improved css.php and core styles * code cleanup in lib/exe/css.php * renamed 'default' userstyle to 'screen' in config_cascade * splitted core lib/styles/style.css up into all.css, print.css and screen.css --- inc/config_cascade.php | 2 +- lib/exe/css.php | 61 ++++++++++++------------ lib/styles/all.css | 48 +++++++++++++++++++ lib/styles/print.css | 24 ++++++++++ lib/styles/screen.css | 80 +++++++++++++++++++++++++++++++ lib/styles/style.css | 125 ------------------------------------------------- 6 files changed, 182 insertions(+), 158 deletions(-) create mode 100644 lib/styles/all.css create mode 100644 lib/styles/print.css create mode 100644 lib/styles/screen.css delete mode 100644 lib/styles/style.css diff --git a/inc/config_cascade.php b/inc/config_cascade.php index b016de8a0..96cd5d4b5 100644 --- a/inc/config_cascade.php +++ b/inc/config_cascade.php @@ -49,7 +49,7 @@ $config_cascade = array_merge( 'local' => array(DOKU_CONF.'wordblock.local.conf'), ), 'userstyle' => array( - 'default' => DOKU_CONF.'userstyle.css', + 'screen' => DOKU_CONF.'userstyle.css', 'rtl' => DOKU_CONF.'rtlstyle.css', 'print' => DOKU_CONF.'printstyle.css', 'feed' => DOKU_CONF.'feedstyle.css', diff --git a/lib/exe/css.php b/lib/exe/css.php index 4db81de0b..98a34860e 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -30,10 +30,10 @@ function css_out(){ global $lang; global $config_cascade; - $style = ''; + $mediatype = 'screen'; if (isset($_REQUEST['s']) && in_array($_REQUEST['s'], array('all', 'print', 'feed'))) { - $style = $_REQUEST['s']; + $mediatype = $_REQUEST['s']; } $tpl = trim(preg_replace('/[^\w-]+/','',$_REQUEST['t'])); @@ -46,7 +46,7 @@ function css_out(){ } // The generated script depends on some dynamic options - $cache = getCacheName('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tplinc.$style,'.css'); + $cache = getCacheName('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tplinc.$mediatype,'.css'); // load template styles $tplstyles = array(); @@ -60,27 +60,29 @@ function css_out(){ // Array of needed files and their web locations, the latter ones // are needed to fix relative paths in the stylesheets $files = array(); - //if (isset($tplstyles['all'])) $files = array_merge($files, $tplstyles['all']); - if(!empty($style)){ - $files[DOKU_INC.'lib/styles/'.$style.'.css'] = DOKU_BASE.'lib/styles/'; - // load plugin, template, user styles - $files = array_merge($files, css_pluginstyles($style)); - if (isset($tplstyles[$style])) $files = array_merge($files, $tplstyles[$style]); - - if(isset($config_cascade['userstyle'][$style])){ - $files[$config_cascade['userstyle'][$style]] = DOKU_BASE; - } - }else{ - $files[DOKU_INC.'lib/styles/style.css'] = DOKU_BASE.'lib/styles/'; - // load plugin, template, user styles - $files = array_merge($files, css_pluginstyles('screen')); - if (isset($tplstyles['screen'])) $files = array_merge($files, $tplstyles['screen']); + // load core styles + $files[DOKU_INC.'lib/styles/'.$mediatype.'.css'] = DOKU_BASE.'lib/styles/'; + // load plugin styles + $files = array_merge($files, css_pluginstyles($mediatype)); + // load template styles + if (isset($tplstyles[$mediatype])) { + $files = array_merge($files, $tplstyles[$mediatype]); + } + // if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility + if (isset($config_cascade['userstyle']['default'])) { + $config_cascade['userstyle']['screen'] = $config_cascade['userstyle']['default']; + } + // load user styles + if(isset($config_cascade['userstyle'][$mediatype])){ + $files[$config_cascade['userstyle'][$mediatype]] = DOKU_BASE; + } + // load rtl styles + // @todo: this currently adds the rtl styles only to the 'screen' media type + // but 'print' and 'all' should also be supported + if ($mediatype=='screen') { if($lang['direction'] == 'rtl'){ if (isset($tplstyles['rtl'])) $files = array_merge($files, $tplstyles['rtl']); } - if(isset($config_cascade['userstyle']['default'])){ - $files[$config_cascade['userstyle']['default']] = DOKU_BASE; - } } // check cache age & handle conditional request @@ -122,7 +124,7 @@ function css_out(){ // apply style replacements $css = css_applystyle($css,$tplinc); - + // place all @import statements at the top of the file $css = css_moveimports($css); @@ -278,20 +280,15 @@ function css_loadfile($file,$location=''){ * * @author Andreas Gohr */ -function css_pluginstyles($mode='screen'){ +function css_pluginstyles($mediatype='screen'){ global $lang; $list = array(); $plugins = plugin_list(); foreach ($plugins as $p){ - if($mode == 'all'){ - $list[DOKU_PLUGIN."$p/all.css"] = DOKU_BASE."lib/plugins/$p/"; - }elseif($mode == 'print'){ - $list[DOKU_PLUGIN."$p/print.css"] = DOKU_BASE."lib/plugins/$p/"; - }elseif($mode == 'feed'){ - $list[DOKU_PLUGIN."$p/feed.css"] = DOKU_BASE."lib/plugins/$p/"; - }else{ + $list[DOKU_PLUGIN."$p/$mediatype.css"] = DOKU_BASE."lib/plugins/$p/"; + // alternative for screen.css + if ($mediatype=='screen') { $list[DOKU_PLUGIN."$p/style.css"] = DOKU_BASE."lib/plugins/$p/"; - $list[DOKU_PLUGIN."$p/screen.css"] = DOKU_BASE."lib/plugins/$p/"; } if($lang['direction'] == 'rtl'){ $list[DOKU_PLUGIN."$p/rtl.css"] = DOKU_BASE."lib/plugins/$p/"; @@ -302,7 +299,7 @@ function css_pluginstyles($mode='screen'){ /** * Move all @import statements in a combined stylesheet to the top so they - * aren't ignored by the browser. + * aren't ignored by the browser. * * @author Gabriel Birke */ diff --git a/lib/styles/all.css b/lib/styles/all.css new file mode 100644 index 000000000..dd9f46462 --- /dev/null +++ b/lib/styles/all.css @@ -0,0 +1,48 @@ +/** + * Basic styles. These styles are needed for basic DokuWiki functions + * regardless of the used template. Templates can override them of course + */ + +div.clearer { + clear: both; + line-height: 0; + height: 0; + overflow: hidden; +} + +div.no { + display: inline; + margin: 0; + padding: 0; +} + +.hidden { + display: none; +} + +/* image alignment */ +.medialeft { + float: left; +} +.mediaright { + float: right; +} +.mediacenter { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* table cell alignment */ +.leftalign { text-align: left; } +.centeralign { text-align: center; } +.rightalign { text-align: right; } + +/* underline */ +em.u { + font-style: normal; + text-decoration: underline; +} +em em.u { + font-style: italic; +} diff --git a/lib/styles/print.css b/lib/styles/print.css new file mode 100644 index 000000000..16543473a --- /dev/null +++ b/lib/styles/print.css @@ -0,0 +1,24 @@ +/** + * Basic styles. These styles are needed for basic DokuWiki functions + * regardless of the used template. Templates can override them of course + */ + +/* messages with msg() */ +div.error, +div.info, +div.success, +div.notify { + display: none; +} + +/* section edit button */ +.secedit { + display: none; +} + +/* modal windows */ +.JSpopup, +#link__wiz, +#media__popup { + display: none; +} diff --git a/lib/styles/screen.css b/lib/styles/screen.css new file mode 100644 index 000000000..0a6a4f295 --- /dev/null +++ b/lib/styles/screen.css @@ -0,0 +1,80 @@ +/** + * Basic styles. These styles are needed for basic DokuWiki functions + * regardless of the used template. Templates can override them of course + */ + +/* messages with msg() */ +div.error, +div.info, +div.success, +div.notify { + color: #000; + background-repeat: no-repeat; + background-position: .5em 0; + border-bottom: 1px solid; + font-size: 90%; + margin: 0; + padding-left: 3em; + overflow: hidden; +} + +div.error { + background-color: #fcc; + background-image: url(../images/error.png); + border-bottom-color: #faa; +} + +div.info { + background-color: #ccf; + background-image: url(../images/info.png); + border-bottom-color: #aaf; +} + +div.success { + background-color: #cfc; + background-image: url(../images/success.png); + border-bottom-color: #afa; +} + +div.notify { + background-color: #ffc; + background-image: url(../images/notify.png); + border-bottom-color: #ffa; +} + +/* modal windows */ +.JSpopup, +#link__wiz, +#media__popup { + position: absolute; + background-color: #fff; + color: #000; + z-index: 20; + overflow: hidden; +} + + +/* syntax highlighting code */ +.code .br0 { color: #66cc66; } +.code .co0 { color: #808080; font-style: italic; } +.code .co1 { color: #808080; font-style: italic; } +.code .co2 { color: #808080; font-style: italic; } +.code .co3 { color: #808080; } +.code .coMULTI { color: #808080; font-style: italic; } +.code .es0 { color: #000099; font-weight: bold; } +.code .kw1 { color: #b1b100; } +.code .kw2 { color: #000000; font-weight: bold; } +.code .kw3 { color: #000066; } +.code .kw4 { color: #993333; } +.code .kw5 { color: #0000ff; } +.code .me1 { color: #006600; } +.code .me2 { color: #006600; } +.code .nu0 { color: #cc66cc; } +.code .re0 { color: #0000ff; } +.code .re1 { color: #0000ff; } +.code .re2 { color: #0000ff; } +.code .re3 { color: #ff3333; font-weight:bold; } +.code .re4 { color: #009999; } +.code .st0 { color: #ff0000; } +.code .sy0 { color: #66cc66; } + diff --git a/lib/styles/style.css b/lib/styles/style.css deleted file mode 100644 index 395f82b78..000000000 --- a/lib/styles/style.css +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Basic styles. These styles are needed for basic DokuWiki functions - * regardless of the used template. Templates can override them of course - */ - -div.clearer { - clear: both; - line-height: 0; - height: 0; - overflow: hidden; -} - -div.no { - display: inline; - margin: 0; - padding: 0; -} - -.hidden { - display: none; -} - -/* messages with msg() */ -div.error, -div.info, -div.success, -div.notify { - color: #000; - background-repeat: no-repeat; - background-position: .5em 0; - border-bottom: 1px solid; - font-size: 90%; - margin: 0; - padding-left: 3em; - overflow: hidden; -} - -div.error { - background-color: #fcc; - background-image: url(../images/error.png); - border-bottom-color: #faa; -} - -div.info { - background-color: #ccf; - background-image: url(../images/info.png); - border-bottom-color: #aaf; -} - -div.success { - background-color: #cfc; - background-image: url(../images/success.png); - border-bottom-color: #afa; -} - -div.notify { - background-color: #ffc; - background-image: url(../images/notify.png); - border-bottom-color: #ffa; -} - - -/* image alignment */ -.medialeft { - float: left; -} -.mediaright { - float: right; -} -.mediacenter { - display: block; - margin-left: auto; - margin-right: auto; -} - -/* table cell alignment */ -.leftalign { text-align: left; } -.centeralign { text-align: center; } -.rightalign { text-align: right; } - -/* underline */ -em.u { - font-style: normal; - text-decoration: underline; -} -em em.u { - font-style: italic; -} - -/* modal windows */ -.JSpopup, -#link__wiz, -#media__popup { - position: absolute; - background-color: #fff; - color: #000; - z-index: 20; - overflow: hidden; -} - - -/* syntax highlighting code */ -.code .br0 { color: #66cc66; } -.code .co0 { color: #808080; font-style: italic; } -.code .co1 { color: #808080; font-style: italic; } -.code .co2 { color: #808080; font-style: italic; } -.code .co3 { color: #808080; } -.code .coMULTI { color: #808080; font-style: italic; } -.code .es0 { color: #000099; font-weight: bold; } -.code .kw1 { color: #b1b100; } -.code .kw2 { color: #000000; font-weight: bold; } -.code .kw3 { color: #000066; } -.code .kw4 { color: #993333; } -.code .kw5 { color: #0000ff; } -.code .me1 { color: #006600; } -.code .me2 { color: #006600; } -.code .nu0 { color: #cc66cc; } -.code .re0 { color: #0000ff; } -.code .re1 { color: #0000ff; } -.code .re2 { color: #0000ff; } -.code .re3 { color: #ff3333; font-weight:bold; } -.code .re4 { color: #009999; } -.code .st0 { color: #ff0000; } -.code .sy0 { color: #66cc66; } - -- cgit v1.2.3