summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2011-02-26 21:22:14 +0000
committerAnika Henke <anika@selfthinker.org>2011-02-26 21:22:14 +0000
commit318cd03ee91d3a5344bab636a77c3cb19c32c5b7 (patch)
tree9e8fa3e38cd511bf8f7b301f2f7219fedaa3963f
parentaeb1fea310b2067fbd3e259b9a2822783a2b7221 (diff)
downloadrpg-318cd03ee91d3a5344bab636a77c3cb19c32c5b7.tar.gz
rpg-318cd03ee91d3a5344bab636a77c3cb19c32c5b7.tar.bz2
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
-rw-r--r--inc/config_cascade.php2
-rw-r--r--lib/exe/css.php61
-rw-r--r--lib/styles/all.css48
-rw-r--r--lib/styles/print.css24
-rw-r--r--lib/styles/screen.css (renamed from lib/styles/style.css)45
5 files changed, 102 insertions, 78 deletions
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 <andi@splitbrain.org>
*/
-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 <birke@d-scribe.de>
*/
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/style.css b/lib/styles/screen.css
index 395f82b78..0a6a4f295 100644
--- a/lib/styles/style.css
+++ b/lib/styles/screen.css
@@ -3,23 +3,6 @@
* 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,
@@ -59,34 +42,6 @@ div.notify {
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,