diff options
author | Martin Doucha <next_ghost@quick.cz> | 2012-07-06 14:02:10 +0200 |
---|---|---|
committer | Martin Doucha <next_ghost@quick.cz> | 2012-07-06 14:02:10 +0200 |
commit | 27849ebfc6b61fbb42ec6deb9c99ff548c40b4ac (patch) | |
tree | 5c231dfd7978a65522f56fd3be29bfe9679a64a7 /lib/exe | |
parent | 3fb0e07d018fc6c8d173bd4a8a58c77ba00290fb (diff) | |
parent | 4ba05e11e88dd654689b0f6333b1427e03d1b0fe (diff) | |
download | rpg-27849ebfc6b61fbb42ec6deb9c99ff548c40b4ac.tar.gz rpg-27849ebfc6b61fbb42ec6deb9c99ff548c40b4ac.tar.bz2 |
Merge branch 'master' of git://github.com/splitbrain/dokuwiki
Diffstat (limited to 'lib/exe')
-rw-r--r-- | lib/exe/css.php | 130 | ||||
-rw-r--r-- | lib/exe/detail.php | 4 | ||||
-rw-r--r-- | lib/exe/fetch.php | 8 | ||||
-rw-r--r-- | lib/exe/indexer.php | 7 | ||||
-rw-r--r-- | lib/exe/mediamanager.php | 36 |
5 files changed, 107 insertions, 78 deletions
diff --git a/lib/exe/css.php b/lib/exe/css.php index 69b512205..8de3db11b 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -9,6 +9,7 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching) if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT',1); // we gzip ourself here +if(!defined('NL')) define('NL',"\n"); require_once(DOKU_INC.'inc/init.php'); // Main (don't run when UNIT test) @@ -29,14 +30,17 @@ function css_out(){ global $conf; global $lang; global $config_cascade; - - $mediatype = 'screen'; - if (isset($_REQUEST['s']) && - in_array($_REQUEST['s'], array('all', 'print', 'feed'))) { - $mediatype = $_REQUEST['s']; + global $INPUT; + + if ($INPUT->str('s') == 'feed') { + $mediatypes = array('feed'); + $type = 'feed'; + } else { + $mediatypes = array('screen', 'all', 'print'); + $type = ''; } - $tpl = trim(preg_replace('/[^\w-]+/','',$_REQUEST['t'])); + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); if($tpl){ $tplinc = DOKU_INC.'lib/tpl/'.$tpl.'/'; $tpldir = DOKU_BASE.'lib/tpl/'.$tpl.'/'; @@ -46,7 +50,7 @@ function css_out(){ } // The generated script depends on some dynamic options - $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tplinc.$mediatype,'.css'); + $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tplinc.$type,'.css'); // load template styles $tplstyles = array(); @@ -57,57 +61,79 @@ 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(); - // load core styles - $files[DOKU_INC.'lib/styles/'.$mediatype.'.css'] = DOKU_BASE.'lib/styles/'; - // load jQuery-UI theme - $files[DOKU_INC.'lib/scripts/jquery/jquery-ui-theme/smoothness.css'] = DOKU_BASE.'lib/scripts/jquery/jquery-ui-theme/'; - // 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']); + // start output buffering + ob_start(); + + foreach($mediatypes as $mediatype) { + // Array of needed files and their web locations, the latter ones + // are needed to fix relative paths in the stylesheets + $files = array(); + // load core styles + $files[DOKU_INC.'lib/styles/'.$mediatype.'.css'] = DOKU_BASE.'lib/styles/'; + // load jQuery-UI theme + if ($mediatype == 'screen') { + $files[DOKU_INC.'lib/scripts/jquery/jquery-ui-theme/smoothness.css'] = DOKU_BASE.'lib/scripts/jquery/jquery-ui-theme/'; + } + // 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 + // note: this adds the rtl styles only to the 'screen' media type + // @deprecated 2012-04-09: rtl will cease to be a mode of its own, + // please use "[dir=rtl]" in any css file in all, screen or print mode instead + if ($mediatype=='screen') { + if($lang['direction'] == 'rtl'){ + if (isset($tplstyles['rtl'])) $files = array_merge($files, $tplstyles['rtl']); + } } - } - $cache_files = array_merge(array_keys($files), getConfigFiles('main')); - $cache_files[] = $tplinc.'style.ini'; - $cache_files[] = __FILE__; + $cache_files = array_merge(array_keys($files), getConfigFiles('main')); + $cache_files[] = $tplinc.'style.ini'; + $cache_files[] = __FILE__; - // check cache age & handle conditional request - // This may exit if a cache can be used - http_cached($cache->cache, - $cache->useCache(array('files' => $cache_files))); + // check cache age & handle conditional request + // This may exit if a cache can be used + http_cached($cache->cache, + $cache->useCache(array('files' => $cache_files))); - // start output buffering and build the stylesheet - ob_start(); + // build the stylesheet - // print the default classes for interwiki links and file downloads - css_interwiki(); - css_filetypes(); + // print the default classes for interwiki links and file downloads + if ($mediatype == 'screen') { + css_interwiki(); + css_filetypes(); + } - // load files - foreach($files as $file => $location){ - print css_loadfile($file, $location); + // load files + $css_content = ''; + foreach($files as $file => $location){ + $css_content .= css_loadfile($file, $location); + } + switch ($mediatype) { + case 'screen': + print NL.'@media screen { /* START screen styles */'.NL.$css_content.NL.'} /* /@media END screen styles */'.NL; + break; + case 'print': + print NL.'@media print { /* START print styles */'.NL.$css_content.NL.'} /* /@media END print styles */'.NL; + break; + case 'all': + case 'feed': + default: + print NL.'/* START rest styles */ '.NL.$css_content.NL.'/* END rest styles */'.NL; + break; + } } - // end output buffering and get contents $css = ob_get_contents(); ob_end_clean(); @@ -275,6 +301,8 @@ function css_pluginstyles($mediatype='screen'){ if ($mediatype=='screen') { $list[DOKU_PLUGIN."$p/style.css"] = DOKU_BASE."lib/plugins/$p/"; } + // @deprecated 2012-04-09: rtl will cease to be a mode of its own, + // please use "[dir=rtl]" in any css file in all, screen or print mode instead if($lang['direction'] == 'rtl'){ $list[DOKU_PLUGIN."$p/rtl.css"] = DOKU_BASE."lib/plugins/$p/"; } diff --git a/lib/exe/detail.php b/lib/exe/detail.php index 35186f5dd..ea46bc037 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -6,9 +6,9 @@ require_once(DOKU_INC.'inc/init.php'); session_write_close(); $IMG = getID('media'); -$ID = cleanID($_REQUEST['id']); +$ID = cleanID($INPUT->str('id')); -if($conf['allowdebug'] && $_REQUEST['debug']){ +if($conf['allowdebug'] && $INPUT->has('debug')){ print '<pre>'; foreach(explode(' ','basedir userewrite baseurl useslash') as $x){ print '$'."conf['$x'] = '".$conf[$x]."';\n"; diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index 143d40f22..60843460e 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -17,10 +17,10 @@ //get input $MEDIA = stripctl(getID('media',false)); // no cleaning except control chars - maybe external - $CACHE = calc_cache($_REQUEST['cache']); - $WIDTH = (int) $_REQUEST['w']; - $HEIGHT = (int) $_REQUEST['h']; - $REV = (int) @$_REQUEST['rev']; + $CACHE = calc_cache($INPUT->str('cache')); + $WIDTH = $INPUT->int('w'); + $HEIGHT = $INPUT->int('h'); + $REV = &$INPUT->ref('rev'); //sanitize revision $REV = preg_replace('/[^0-9]/','',$REV); diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 738a29503..e149770c0 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -20,10 +20,10 @@ if(!$defer){ sendGIF(); // send gif } -$ID = cleanID($_REQUEST['id']); +$ID = cleanID($INPUT->str('id')); // Catch any possible output (e.g. errors) -$output = isset($_REQUEST['debug']) && $conf['allowdebug']; +$output = $INPUT->has('debug') && $conf['allowdebug']; if(!$output) ob_start(); // run one of the jobs @@ -261,7 +261,8 @@ function sendDigest() { * @author Harry Fuecks <fuecks@gmail.com> */ function sendGIF(){ - if(isset($_REQUEST['debug'])){ + global $INPUT; + if($INPUT->has('debug')){ header('Content-Type: text/plain'); return; } diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 5f09fe1f8..04dd178cc 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -10,25 +10,25 @@ trigger_event('MEDIAMANAGER_STARTED',$tmp=array()); session_write_close(); //close session + global $INPUT; // handle passed message - if($_REQUEST['msg1']) msg(hsc($_REQUEST['msg1']),1); - if($_REQUEST['err']) msg(hsc($_REQUEST['err']),-1); + if($INPUT->str('msg1')) msg(hsc($INPUT->str('msg1')),1); + if($INPUT->str('err')) msg(hsc($INPUT->str('err')),-1); // get namespace to display (either direct or from deletion order) - if($_REQUEST['delete']){ - $DEL = cleanID($_REQUEST['delete']); + if($INPUT->str('delete')){ + $DEL = cleanID($INPUT->str('delete')); $IMG = $DEL; $NS = getNS($DEL); - }elseif($_REQUEST['edit']){ - $IMG = cleanID($_REQUEST['edit']); + }elseif($INPUT->str('edit')){ + $IMG = cleanID($INPUT->str('edit')); $NS = getNS($IMG); - }elseif($_REQUEST['img']){ - $IMG = cleanID($_REQUEST['img']); + }elseif($INPUT->str('img')){ + $IMG = cleanID($INPUT->str('img')); $NS = getNS($IMG); }else{ - $NS = $_REQUEST['ns']; - $NS = cleanID($NS); + $NS = cleanID($INPUT->str('ns')); } // check auth @@ -76,18 +76,18 @@ } // handle meta saving - if($IMG && @array_key_exists('save', $_REQUEST['do'])){ - $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); + if($IMG && @array_key_exists('save', $INPUT->arr('do'))){ + $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta')); } - if($IMG && ($_REQUEST['mediado'] == 'save' || @array_key_exists('save', $_REQUEST['mediado']))) { - $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); + if($IMG && ($INPUT->str('mediado') == 'save' || @array_key_exists('save', $INPUT->arr('mediado')))) { + $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta')); } - if ($_REQUEST['rev'] && $conf['mediarevisions']) $REV = (int) $_REQUEST['rev']; + if ($INPUT->int('rev') && $conf['mediarevisions']) $REV = $INPUT->int('rev'); - if($_REQUEST['mediado'] == 'restore' && $conf['mediarevisions']){ - $JUMPTO = media_restore($_REQUEST['image'], $REV, $AUTH); + if($INPUT->str('mediado') == 'restore' && $conf['mediarevisions']){ + $JUMPTO = media_restore($INPUT->str('image'), $REV, $AUTH); } // handle deletion @@ -101,7 +101,7 @@ if ($res & DOKU_MEDIA_EMPTY_NS && !$fullscreen) { // current namespace was removed. redirecting to root ns passing msg along send_redirect(DOKU_URL.'lib/exe/mediamanager.php?msg1='. - rawurlencode($msg).'&edid='.$_REQUEST['edid']); + rawurlencode($msg).'&edid='.$INPUT->str('edid')); } msg($msg,1); } elseif ($res & DOKU_MEDIA_INUSE) { |