summaryrefslogtreecommitdiff
path: root/inc/template.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-08-09 23:32:58 +0200
committerAndreas Gohr <andi@splitbrain.org>2012-08-09 23:32:58 +0200
commitac7a515f564d088e043bf190c9a4ced1d5c309db (patch)
tree62df795b216f853ec05d96189ff858a7aa866272 /inc/template.php
parentd9e9c1bb60342ce88be150cc05de21dabfe130b2 (diff)
downloadrpg-ac7a515f564d088e043bf190c9a4ced1d5c309db.tar.gz
rpg-ac7a515f564d088e043bf190c9a4ced1d5c309db.tar.bz2
code cleanup in template.php
* make use of $INPUT * clean up coding style * add phpdoc comments
Diffstat (limited to 'inc/template.php')
-rw-r--r--inc/template.php925
1 files changed, 511 insertions, 414 deletions
diff --git a/inc/template.php b/inc/template.php
index 7d09f7dd4..2dc58b36d 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -9,29 +9,33 @@
if(!defined('DOKU_INC')) die('meh.');
/**
- * Returns the path to the given template, uses
- * default one if the custom version doesn't exist.
+ * Access a template file
+ *
+ * Returns the path to the given file inside the current template, uses
+ * default template if the custom version doesn't exist.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $file
+ * @return string
*/
-function template($tpl){
+function template($file) {
global $conf;
- if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl))
- return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl;
+ if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file))
+ return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file;
- return DOKU_INC.'lib/tpl/default/'.$tpl;
+ return DOKU_INC.'lib/tpl/dokuwiki/'.$file;
}
-
/**
* Convenience function to access template dir from local FS
*
* This replaces the deprecated DOKU_TPLINC constant
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return string
*/
-function tpl_incdir(){
+function tpl_incdir() {
global $conf;
return DOKU_INC.'lib/tpl/'.$conf['template'].'/';
}
@@ -42,8 +46,9 @@ function tpl_incdir(){
* This replaces the deprecated DOKU_TPL constant
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return string
*/
-function tpl_basedir(){
+function tpl_basedir() {
global $conf;
return DOKU_BASE.'lib/tpl/'.$conf['template'].'/';
}
@@ -59,32 +64,43 @@ function tpl_basedir(){
* handled by this function. ACL stuff is not done here either.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @triggers TPL_ACT_RENDER
+ * @triggers TPL_CONTENT_DISPLAY
+ * @param bool $prependTOC should the TOC be displayed here?
+ * @return bool true if any output
*/
-function tpl_content($prependTOC=true) {
+function tpl_content($prependTOC = true) {
global $ACT;
global $INFO;
$INFO['prependTOC'] = $prependTOC;
ob_start();
- trigger_event('TPL_ACT_RENDER',$ACT,'tpl_content_core');
+ trigger_event('TPL_ACT_RENDER', $ACT, 'tpl_content_core');
$html_output = ob_get_clean();
- trigger_event('TPL_CONTENT_DISPLAY',$html_output,'ptln');
+ trigger_event('TPL_CONTENT_DISPLAY', $html_output, 'ptln');
return !empty($html_output);
}
-function tpl_content_core(){
+/**
+ * Default Action of TPL_ACT_RENDER
+ *
+ * @return bool
+ */
+function tpl_content_core() {
global $ACT;
global $TEXT;
global $PRE;
global $SUF;
global $SUM;
global $IDX;
+ global $INPUT;
- switch($ACT){
+ switch($ACT) {
case 'show':
html_show();
break;
+ /** @noinspection PhpMissingBreakStatementInspection */
case 'locked':
html_locked();
case 'edit':
@@ -102,20 +118,13 @@ function tpl_content_core(){
html_search();
break;
case 'revisions':
- $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0;
- html_revisions($first);
+ html_revisions($INPUT->int('first'));
break;
case 'diff':
html_diff();
break;
case 'recent':
- if (is_array($_REQUEST['first'])) {
- $_REQUEST['first'] = array_keys($_REQUEST['first']);
- $_REQUEST['first'] = $_REQUEST['first'][0];
- }
- $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0;
- $show_changes = $_REQUEST['show_changes'];
- html_recent($first, $show_changes);
+ html_recent($INPUT->extract('first')->int('first'), $INPUT->str('show_changes'));
break;
case 'index':
html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly?
@@ -124,8 +133,8 @@ function tpl_content_core(){
html_backlinks();
break;
case 'conflict':
- html_conflict(con($PRE,$TEXT,$SUF),$SUM);
- html_diff(con($PRE,$TEXT,$SUF),false);
+ html_conflict(con($PRE, $TEXT, $SUF), $SUM);
+ html_diff(con($PRE, $TEXT, $SUF), false);
break;
case 'login':
html_login();
@@ -152,9 +161,9 @@ function tpl_content_core(){
tpl_media();
break;
default:
- $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT);
- if ($evt->advise_before())
- msg("Failed to handle command: ".hsc($ACT),-1);
+ $evt = new Doku_Event('TPL_ACT_UNKNOWN', $ACT);
+ if($evt->advise_before())
+ msg("Failed to handle command: ".hsc($ACT), -1);
$evt->advise_after();
unset($evt);
return false;
@@ -169,43 +178,47 @@ function tpl_content_core(){
* a false argument
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $return Should the TOC be returned instead to be printed?
+ * @return string
*/
-function tpl_toc($return=false){
+function tpl_toc($return = false) {
global $TOC;
global $ACT;
global $ID;
global $REV;
global $INFO;
global $conf;
+ global $INPUT;
$toc = array();
- if(is_array($TOC)){
+ if(is_array($TOC)) {
// if a TOC was prepared in global scope, always use it
$toc = $TOC;
- }elseif(($ACT == 'show' || substr($ACT,0,6) == 'export') && !$REV && $INFO['exists']){
+ } elseif(($ACT == 'show' || substr($ACT, 0, 6) == 'export') && !$REV && $INFO['exists']) {
// get TOC from metadata, render if neccessary
$meta = p_get_metadata($ID, false, METADATA_RENDER_USING_CACHE);
- if(isset($meta['internal']['toc'])){
+ if(isset($meta['internal']['toc'])) {
$tocok = $meta['internal']['toc'];
- }else{
+ } else {
$tocok = true;
}
- $toc = $meta['description']['tableofcontents'];
- if(!$tocok || !is_array($toc) || !$conf['tocminheads'] || count($toc) < $conf['tocminheads']){
+ $toc = $meta['description']['tableofcontents'];
+ if(!$tocok || !is_array($toc) || !$conf['tocminheads'] || count($toc) < $conf['tocminheads']) {
$toc = array();
}
- }elseif($ACT == 'admin'){
+ } elseif($ACT == 'admin') {
// try to load admin plugin TOC FIXME: duplicates code from tpl_admin
$plugin = null;
- if (!empty($_REQUEST['page'])) {
+ $class = $INPUT->str('page');
+ if(!empty($class)) {
$pluginlist = plugin_list('admin');
- if (in_array($_REQUEST['page'], $pluginlist)) {
+ if(in_array($class, $pluginlist)) {
// attempt to load the plugin
- $plugin =& plugin_load('admin',$_REQUEST['page']);
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ $plugin =& plugin_load('admin', $class);
}
}
- if ( ($plugin !== null) &&
- (!$plugin->forAdminOnly() || $INFO['isadmin']) ){
+ if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
$toc = $plugin->getTOC();
$TOC = $toc; // avoid later rebuild
}
@@ -215,6 +228,7 @@ function tpl_toc($return=false){
$html = html_TOC($toc);
if($return) return $html;
echo $html;
+ return '';
}
/**
@@ -222,26 +236,28 @@ function tpl_toc($return=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_admin(){
+function tpl_admin() {
global $INFO;
global $TOC;
+ global $INPUT;
$plugin = null;
- if (!empty($_REQUEST['page'])) {
+ $class = $INPUT->str('page');
+ if(!empty($class)) {
$pluginlist = plugin_list('admin');
- if (in_array($_REQUEST['page'], $pluginlist)) {
-
+ if(in_array($class, $pluginlist)) {
// attempt to load the plugin
- $plugin =& plugin_load('admin',$_REQUEST['page']);
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ $plugin =& plugin_load('admin', $class);
}
}
- if ($plugin !== null){
+ if($plugin !== null) {
if(!is_array($TOC)) $TOC = $plugin->getTOC(); //if TOC wasn't requested yet
if($INFO['prependTOC']) tpl_toc();
$plugin->html();
- }else{
+ } else {
html_admin();
}
return true;
@@ -252,11 +268,12 @@ function tpl_admin(){
*
* This has to go into the head section of your template.
*
- * @triggers TPL_METAHEADER_OUTPUT
- * @param boolean $alt Should feeds and alternative format links be added?
* @author Andreas Gohr <andi@splitbrain.org>
+ * @triggers TPL_METAHEADER_OUTPUT
+ * @param bool $alt Should feeds and alternative format links be added?
+ * @return bool
*/
-function tpl_metaheaders($alt=true){
+function tpl_metaheaders($alt = true) {
global $ID;
global $REV;
global $INFO;
@@ -265,13 +282,12 @@ function tpl_metaheaders($alt=true){
global $QUERY;
global $lang;
global $conf;
- $it=2;
// prepare the head array
$head = array();
// prepare seed for js and css
- $tseed = 0;
+ $tseed = 0;
$depends = getConfigFiles('main');
foreach($depends as $f) {
$time = @filemtime($f);
@@ -279,99 +295,119 @@ function tpl_metaheaders($alt=true){
}
// the usual stuff
- $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki');
- $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml',
- 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] );
- $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE );
- if(actionOK('index')){
- $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'),
- 'title'=>$lang['btn_index'] );
+ $head['meta'][] = array('name'=> 'generator', 'content'=> 'DokuWiki');
+ $head['link'][] = array(
+ 'rel' => 'search', 'type'=> 'application/opensearchdescription+xml',
+ 'href'=> DOKU_BASE.'lib/exe/opensearch.php', 'title'=> $conf['title']
+ );
+ $head['link'][] = array('rel'=> 'start', 'href'=> DOKU_BASE);
+ if(actionOK('index')) {
+ $head['link'][] = array(
+ 'rel' => 'contents', 'href'=> wl($ID, 'do=index', false, '&'),
+ 'title'=> $lang['btn_index']
+ );
}
- if($alt){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php');
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Current Namespace',
- 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']);
- if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){
- $head['link'][] = array( 'rel'=>'edit',
- 'title'=>$lang['btn_edit'],
- 'href'=> wl($ID,'do=edit',false,'&'));
+ if($alt) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Recent Changes', 'href'=> DOKU_BASE.'feed.php'
+ );
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Current Namespace',
+ 'href' => DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']
+ );
+ if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']) {
+ $head['link'][] = array(
+ 'rel' => 'edit',
+ 'title'=> $lang['btn_edit'],
+ 'href' => wl($ID, 'do=edit', false, '&')
+ );
}
- if($ACT == 'search'){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml',
- 'title'=>'Search Result',
- 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY);
+ if($ACT == 'search') {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'application/rss+xml',
+ 'title'=> 'Search Result',
+ 'href' => DOKU_BASE.'feed.php?mode=search&q='.$QUERY
+ );
}
- if(actionOK('export_xhtml')){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML',
- 'href'=>exportlink($ID, 'xhtml', '', false, '&'));
+ if(actionOK('export_xhtml')) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> 'Plain HTML',
+ 'href'=> exportlink($ID, 'xhtml', '', false, '&')
+ );
}
- if(actionOK('export_raw')){
- $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup',
- 'href'=>exportlink($ID, 'raw', '', false, '&'));
+ if(actionOK('export_raw')) {
+ $head['link'][] = array(
+ 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> 'Wiki Markup',
+ 'href'=> exportlink($ID, 'raw', '', false, '&')
+ );
}
}
// setup robot tags apropriate for different modes
- if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){
- if($INFO['exists']){
+ if(($ACT == 'show' || $ACT == 'export_xhtml') && !$REV) {
+ if($INFO['exists']) {
//delay indexing:
- if((time() - $INFO['lastmod']) >= $conf['indexdelay']){
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow');
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow');
+ if((time() - $INFO['lastmod']) >= $conf['indexdelay']) {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
}
- $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') );
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow');
+ $head['link'][] = array('rel'=> 'canonical', 'href'=> wl($ID, '', true, '&'));
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,follow');
}
- }elseif(defined('DOKU_MEDIADETAIL')){
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow');
- }else{
- $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow');
+ } elseif(defined('DOKU_MEDIADETAIL')) {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
+ } else {
+ $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
}
// set metadata
- if($ACT == 'show' || $ACT=='export_xhtml'){
+ if($ACT == 'show' || $ACT == 'export_xhtml') {
// date of modification
- if($REV){
- $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV));
- }else{
- $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod']));
+ if($REV) {
+ $head['meta'][] = array('name'=> 'date', 'content'=> date('Y-m-d\TH:i:sO', $REV));
+ } else {
+ $head['meta'][] = array('name'=> 'date', 'content'=> date('Y-m-d\TH:i:sO', $INFO['lastmod']));
}
// keywords (explicit or implicit)
- if(!empty($INFO['meta']['subject'])){
- $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject']));
- }else{
- $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID));
+ if(!empty($INFO['meta']['subject'])) {
+ $head['meta'][] = array('name'=> 'keywords', 'content'=> join(',', $INFO['meta']['subject']));
+ } else {
+ $head['meta'][] = array('name'=> 'keywords', 'content'=> str_replace(':', ',', $ID));
}
}
// load stylesheets
- $head['link'][] = array('rel'=>'stylesheet', 'type'=>'text/css',
- 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed);
+ $head['link'][] = array(
+ 'rel' => 'stylesheet', 'type'=> 'text/css',
+ 'href'=> DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed
+ );
// make $INFO and other vars available to JavaScripts
- $json = new JSON();
+ $json = new JSON();
$script = "var NS='".$INFO['namespace']."';";
- if($conf['useacl'] && $_SERVER['REMOTE_USER']){
+ if($conf['useacl'] && $_SERVER['REMOTE_USER']) {
$script .= "var SIG='".toolbar_signature()."';";
}
$script .= 'var JSINFO = '.$json->encode($JSINFO).';';
- $head['script'][] = array( 'type'=>'text/javascript', '_data'=> $script);
+ $head['script'][] = array('type'=> 'text/javascript', '_data'=> $script);
// load external javascript
- $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'',
- 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed);
+ $head['script'][] = array(
+ 'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '',
+ 'src' => DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed
+ );
// trigger event here
- trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true);
+ trigger_event('TPL_METAHEADER_OUTPUT', $head, '_tpl_metaheaders_action', true);
return true;
}
@@ -387,18 +423,18 @@ function tpl_metaheaders($alt=true){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function _tpl_metaheaders_action($data){
- foreach($data as $tag => $inst){
- foreach($inst as $attr){
- echo '<',$tag,' ',buildAttributes($attr);
- if(isset($attr['_data']) || $tag == 'script'){
+function _tpl_metaheaders_action($data) {
+ foreach($data as $tag => $inst) {
+ foreach($inst as $attr) {
+ echo '<', $tag, ' ', buildAttributes($attr);
+ if(isset($attr['_data']) || $tag == 'script') {
if($tag == 'script' && $attr['_data'])
$attr['_data'] = "/*<![CDATA[*/".
$attr['_data'].
"\n/*!]]>*/";
- echo '>',$attr['_data'],'</',$tag,'>';
- }else{
+ echo '>', $attr['_data'], '</', $tag, '>';
+ } else {
echo '/>';
}
echo "\n";
@@ -413,11 +449,11 @@ function _tpl_metaheaders_action($data){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_link($url,$name,$more='',$return=false){
+function tpl_link($url, $name, $more = '', $return = false) {
$out = '<a href="'.$url.'" ';
- if ($more) $out .= ' '.$more;
+ if($more) $out .= ' '.$more;
$out .= ">$name</a>";
- if ($return) return $out;
+ if($return) return $out;
print $out;
return true;
}
@@ -429,8 +465,8 @@ function tpl_link($url,$name,$more='',$return=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_pagelink($id,$name=null){
- print html_wikilink($id,$name);
+function tpl_pagelink($id, $name = null) {
+ print html_wikilink($id, $name);
return true;
}
@@ -442,14 +478,13 @@ function tpl_pagelink($id,$name=null){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_getparent($id){
- global $conf;
+function tpl_getparent($id) {
$parent = getNS($id).':';
- resolve_pageid('',$parent,$exists);
+ resolve_pageid('', $parent, $exists);
if($parent == $id) {
- $pos = strrpos (getNS($id),':');
- $parent = substr($parent,0,$pos).':';
- resolve_pageid('',$parent,$exists);
+ $pos = strrpos(getNS($id), ':');
+ $parent = substr($parent, 0, $pos).':';
+ resolve_pageid('', $parent, $exists);
if($parent == $id) return false;
}
return $parent;
@@ -461,21 +496,27 @@ function tpl_getparent($id){
* @author Adrian Lang <mail@adrianlang.de>
* @see tpl_get_action
*/
-function tpl_button($type,$return=false){
+function tpl_button($type, $return = false) {
$data = tpl_get_action($type);
- if ($data === false) {
+ if($data === false) {
return false;
- } elseif (!is_array($data)) {
+ } elseif(!is_array($data)) {
$out = sprintf($data, 'button');
} else {
+ /**
+ * @var string $accesskey
+ * @var string $id
+ * @var string $method
+ * @var array $params
+ */
extract($data);
- if ($id === '#dokuwiki__top') {
+ if($id === '#dokuwiki__top') {
$out = html_topbtn();
} else {
$out = html_btn($type, $id, $accesskey, $params, $method);
}
}
- if ($return) return $out;
+ if($return) return $out;
echo $out;
return true;
}
@@ -486,32 +527,40 @@ function tpl_button($type,$return=false){
* @author Adrian Lang <mail@adrianlang.de>
* @see tpl_get_action
*/
-function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){
+function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = false) {
global $lang;
$data = tpl_get_action($type);
- if ($data === false) {
+ if($data === false) {
return false;
- } elseif (!is_array($data)) {
+ } elseif(!is_array($data)) {
$out = sprintf($data, 'link');
} else {
+ /**
+ * @var string $accesskey
+ * @var string $id
+ * @var string $method
+ * @var array $params
+ */
extract($data);
- if (strpos($id, '#') === 0) {
+ if(strpos($id, '#') === 0) {
$linktarget = $id;
} else {
$linktarget = wl($id, $params);
}
- $caption = $lang['btn_' . $type];
- $akey = $addTitle = '';
- if($accesskey){
- $akey = 'accesskey="'.$accesskey.'" ';
+ $caption = $lang['btn_'.$type];
+ $akey = $addTitle = '';
+ if($accesskey) {
+ $akey = 'accesskey="'.$accesskey.'" ';
$addTitle = ' ['.strtoupper($accesskey).']';
}
- $out = tpl_link($linktarget, $pre.(($inner)?$inner:$caption).$suf,
- 'class="action ' . $type . '" ' .
- $akey . 'rel="nofollow" ' .
- 'title="' . hsc($caption).$addTitle . '"', 1);
+ $out = tpl_link(
+ $linktarget, $pre.(($inner) ? $inner : $caption).$suf,
+ 'class="action '.$type.'" '.
+ $akey.'rel="nofollow" '.
+ 'title="'.hsc($caption).$addTitle.'"', 1
+ );
}
- if ($return) return $out;
+ if($return) return $out;
echo $out;
return true;
}
@@ -536,53 +585,53 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){
* @author Andreas Gohr <andi@splitbrain.org>
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
* @author Adrian Lang <mail@adrianlang.de>
+ * @param string $type
+ * @return array|bool|string
*/
function tpl_get_action($type) {
global $ID;
global $INFO;
global $REV;
global $ACT;
- global $conf;
- global $auth;
// check disabled actions and fix the badly named ones
- if($type == 'history') $type='revisions';
+ if($type == 'history') $type = 'revisions';
if(!actionOK($type)) return false;
$accesskey = null;
$id = $ID;
$method = 'get';
$params = array('do' => $type);
- switch($type){
+ switch($type) {
case 'edit':
// most complicated type - we need to decide on current action
- if($ACT == 'show' || $ACT == 'search'){
+ if($ACT == 'show' || $ACT == 'search') {
$method = 'post';
- if($INFO['writable']){
+ if($INFO['writable']) {
$accesskey = 'e';
if(!empty($INFO['draft'])) {
- $type = 'draft';
+ $type = 'draft';
$params['do'] = 'draft';
} else {
$params['rev'] = $REV;
- if(!$INFO['exists']){
- $type = 'create';
+ if(!$INFO['exists']) {
+ $type = 'create';
}
}
- }else{
+ } else {
if(!actionOK('source')) return false; //pseudo action
$params['rev'] = $REV;
- $type = 'source';
- $accesskey = 'v';
+ $type = 'source';
+ $accesskey = 'v';
}
- }else{
- $params = array();
- $type = 'show';
+ } else {
+ $params = array();
+ $type = 'show';
$accesskey = 'v';
}
break;
case 'revisions':
- $type = 'revs';
+ $type = 'revs';
$accesskey = 'o';
break;
case 'recent':
@@ -593,40 +642,40 @@ function tpl_get_action($type) {
break;
case 'top':
$accesskey = 't';
- $params = array();
- $id = '#dokuwiki__top';
+ $params = array();
+ $id = '#dokuwiki__top';
break;
case 'back':
$parent = tpl_getparent($ID);
- if (!$parent) {
+ if(!$parent) {
return false;
}
- $id = $parent;
- $params = array();
+ $id = $parent;
+ $params = array();
$accesskey = 'b';
break;
case 'login':
$params['sectok'] = getSecurityToken();
- if(isset($_SERVER['REMOTE_USER'])){
- if (!actionOK('logout')) {
+ if(isset($_SERVER['REMOTE_USER'])) {
+ if(!actionOK('logout')) {
return false;
}
$params['do'] = 'logout';
- $type = 'logout';
+ $type = 'logout';
}
break;
case 'register':
- if($_SERVER['REMOTE_USER']){
+ if($_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'resendpwd':
- if($_SERVER['REMOTE_USER']){
+ if($_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'admin':
- if(!$INFO['ismanager']){
+ if(!$INFO['ismanager']) {
return false;
}
break;
@@ -634,21 +683,22 @@ function tpl_get_action($type) {
if(!$INFO['ismanager'] || !$REV || !$INFO['writable']) {
return false;
}
- $params['rev'] = $REV;
+ $params['rev'] = $REV;
$params['sectok'] = getSecurityToken();
break;
+ /** @noinspection PhpMissingBreakStatementInspection */
case 'subscription':
- $type = 'subscribe';
+ $type = 'subscribe';
$params['do'] = 'subscribe';
case 'subscribe':
- if(!$_SERVER['REMOTE_USER']){
+ if(!$_SERVER['REMOTE_USER']) {
return false;
}
break;
case 'backlink':
break;
case 'profile':
- if(!isset($_SERVER['REMOTE_USER'])){
+ if(!isset($_SERVER['REMOTE_USER'])) {
return false;
}
break;
@@ -665,14 +715,25 @@ function tpl_get_action($type) {
* Wrapper around tpl_button() and tpl_actionlink()
*
* @author Anika Henke <anika@selfthinker.org>
+ * @param
+ * @param bool $link link or form button?
+ * @param bool $wrapper HTML element wrapper
+ * @param bool $return return or print
+ * @param string $pre prefix for links
+ * @param string $suf suffix for links
+ * @param string $inner inner HTML for links
+ * @return bool|string
*/
-function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$inner='') {
+function tpl_action($type, $link = false, $wrapper = false, $return = false, $pre = '', $suf = '', $inner = '') {
$out = '';
- if ($link) $out .= tpl_actionlink($type,$pre,$suf,$inner,1);
- else $out .= tpl_button($type,1);
- if ($out && $wrapper) $out = "<$wrapper>$out</$wrapper>";
+ if($link) {
+ $out .= tpl_actionlink($type, $pre, $suf, $inner, 1);
+ } else {
+ $out .= tpl_button($type, 1);
+ }
+ if($out && $wrapper) $out = "<$wrapper>$out</$wrapper>";
- if ($return) return $out;
+ if($return) return $out;
print $out;
return $out ? true : false;
}
@@ -688,14 +749,17 @@ function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$
* autocompletion feature (MSIE and Firefox)
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $ajax
+ * @param bool $autocomplete
+ * @return bool
*/
-function tpl_searchform($ajax=true,$autocomplete=true){
+function tpl_searchform($ajax = true, $autocomplete = true) {
global $lang;
global $ACT;
global $QUERY;
// don't print the search form if search action has been disabled
- if (!actionOk('search')) return false;
+ if(!actionOk('search')) return false;
print '<form action="'.wl().'" accept-charset="utf-8" class="search" id="dw__search" method="get"><div class="no">';
print '<input type="hidden" name="do" value="search" />';
@@ -713,8 +777,10 @@ function tpl_searchform($ajax=true,$autocomplete=true){
* Print the breadcrumbs trace
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $sep Separator between entries
+ * @return bool
*/
-function tpl_breadcrumbs($sep='•'){
+function tpl_breadcrumbs($sep = '•') {
global $lang;
global $conf;
@@ -725,7 +791,7 @@ function tpl_breadcrumbs($sep='•'){
//reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups
if($lang['direction'] == 'rtl') {
- $crumbs = array_reverse($crumbs,true);
+ $crumbs = array_reverse($crumbs, true);
$crumbs_sep = ' &#8207;<span class="bcsep">'.$sep.'</span>&#8207; ';
} else {
$crumbs_sep = ' <span class="bcsep">'.$sep.'</span> ';
@@ -734,13 +800,13 @@ function tpl_breadcrumbs($sep='•'){
//render crumbs, highlight the last one
print '<span class="bchead">'.$lang['breadcrumb'].':</span>';
$last = count($crumbs);
- $i = 0;
- foreach ($crumbs as $id => $name){
+ $i = 0;
+ foreach($crumbs as $id => $name) {
$i++;
echo $crumbs_sep;
- if ($i == $last) print '<span class="curid">';
- tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"');
- if ($i == $last) print '</span>';
+ if($i == $last) print '<span class="curid">';
+ tpl_link(wl($id), hsc($name), 'class="breadcrumbs" title="'.$id.'"');
+ if($i == $last) print '</span>';
}
return true;
}
@@ -756,8 +822,10 @@ function tpl_breadcrumbs($sep='•'){
* @author Sean Coates <sean@caedmon.net>
* @author <fredrik@averpil.com>
* @todo May behave strangely in RTL languages
+ * @param string $sep Separator between entries
+ * @return bool
*/
-function tpl_youarehere($sep=' » '){
+function tpl_youarehere($sep = ' » ') {
global $conf;
global $ID;
global $lang;
@@ -775,10 +843,10 @@ function tpl_youarehere($sep=' » '){
// print intermediate namespace links
$part = '';
- for($i=0; $i<$count - 1; $i++){
+ for($i = 0; $i < $count - 1; $i++) {
$part .= $parts[$i].':';
$page = $part;
- if ($page == $conf['start']) continue; // Skip startpage
+ if($page == $conf['start']) continue; // Skip startpage
// output
echo $sep;
@@ -786,10 +854,10 @@ function tpl_youarehere($sep=' » '){
}
// print current page, skipping start page, skipping for namespace index
- resolve_pageid('',$page,$exists);
- if(isset($page) && $page==$part.$parts[$i]) return;
+ resolve_pageid('', $page, $exists);
+ if(isset($page) && $page == $part.$parts[$i]) return true;
$page = $part.$parts[$i];
- if($page == $conf['start']) return;
+ if($page == $conf['start']) return true;
echo $sep;
tpl_pagelink($page);
return true;
@@ -802,11 +870,12 @@ function tpl_youarehere($sep=' » '){
* Could be enhanced with a profile link in future?
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @return bool
*/
-function tpl_userinfo(){
+function tpl_userinfo() {
global $lang;
global $INFO;
- if(isset($_SERVER['REMOTE_USER'])){
+ if(isset($_SERVER['REMOTE_USER'])) {
print $lang['loggedinas'].': '.hsc($INFO['userinfo']['name']).' ('.hsc($_SERVER['REMOTE_USER']).')';
return true;
}
@@ -817,51 +886,55 @@ function tpl_userinfo(){
* Print some info about the current page
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param bool $ret return content instead of printing it
+ * @return bool|string
*/
-function tpl_pageinfo($ret=false){
+function tpl_pageinfo($ret = false) {
global $conf;
global $lang;
global $INFO;
global $ID;
// return if we are not allowed to view the page
- if (!auth_quickaclcheck($ID)) { return false; }
+ if(!auth_quickaclcheck($ID)) {
+ return false;
+ }
// prepare date and path
$fn = $INFO['filepath'];
- if(!$conf['fullpath']){
- if($INFO['rev']){
- $fn = str_replace(fullpath($conf['olddir']).'/','',$fn);
- }else{
- $fn = str_replace(fullpath($conf['datadir']).'/','',$fn);
+ if(!$conf['fullpath']) {
+ if($INFO['rev']) {
+ $fn = str_replace(fullpath($conf['olddir']).'/', '', $fn);
+ } else {
+ $fn = str_replace(fullpath($conf['datadir']).'/', '', $fn);
}
}
- $fn = utf8_decodeFN($fn);
+ $fn = utf8_decodeFN($fn);
$date = dformat($INFO['lastmod']);
// print it
- if($INFO['exists']){
+ if($INFO['exists']) {
$out = '';
$out .= $fn;
$out .= ' · ';
$out .= $lang['lastmod'];
$out .= ': ';
$out .= $date;
- if($INFO['editor']){
+ if($INFO['editor']) {
$out .= ' '.$lang['by'].' ';
$out .= editorinfo($INFO['editor']);
- }else{
+ } else {
$out .= ' ('.$lang['external_edit'].')';
}
- if($INFO['locked']){
+ if($INFO['locked']) {
$out .= ' · ';
$out .= $lang['lockedby'];
$out .= ': ';
$out .= editorinfo($INFO['locked']);
}
- if($ret){
+ if($ret) {
return $out;
- }else{
+ } else {
echo $out;
return true;
}
@@ -876,21 +949,23 @@ function tpl_pageinfo($ret=false){
* the given ID is used.
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $id page id
+ * @param bool $ret return content instead of printing
+ * @return bool|string
*/
-function tpl_pagetitle($id=null, $ret=false){
- global $conf;
- if(is_null($id)){
+function tpl_pagetitle($id = null, $ret = false) {
+ if(is_null($id)) {
global $ID;
$id = $ID;
}
$name = $id;
- if (useHeading('navigation')) {
+ if(useHeading('navigation')) {
$title = p_get_first_heading($id);
- if ($title) $name = $title;
+ if($title) $name = $title;
}
- if ($ret) {
+ if($ret) {
return hsc($name);
} else {
print hsc($name);
@@ -911,8 +986,12 @@ function tpl_pagetitle($id=null, $ret=false){
* Only allowed in: detail.php
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @param array $tags tags to try
+ * @param string $alt alternative output if no data was found
+ * @param null $src the image src, uses global $SRC if not given
+ * @return string
*/
-function tpl_img_getTag($tags,$alt='',$src=null){
+function tpl_img_getTag($tags, $alt = '', $src = null) {
// Init Exif Reader
global $SRC;
@@ -931,66 +1010,72 @@ function tpl_img_getTag($tags,$alt='',$src=null){
*
* Only allowed in: detail.php
*
+ * @triggers TPL_IMG_DISPLAY
* @param $maxwidth int - maximal width of the image
* @param $maxheight int - maximal height of the image
* @param $link bool - link to the orginal size?
* @param $params array - additional image attributes
+ * @return mixed Result of TPL_IMG_DISPLAY
*/
-function tpl_img($maxwidth=0,$maxheight=0,$link=true,$params=null){
+function tpl_img($maxwidth = 0, $maxheight = 0, $link = true, $params = null) {
global $IMG;
+ global $INPUT;
$w = tpl_img_getTag('File.Width');
$h = tpl_img_getTag('File.Height');
//resize to given max values
$ratio = 1;
- if($w >= $h){
- if($maxwidth && $w >= $maxwidth){
- $ratio = $maxwidth/$w;
- }elseif($maxheight && $h > $maxheight){
- $ratio = $maxheight/$h;
+ if($w >= $h) {
+ if($maxwidth && $w >= $maxwidth) {
+ $ratio = $maxwidth / $w;
+ } elseif($maxheight && $h > $maxheight) {
+ $ratio = $maxheight / $h;
}
- }else{
- if($maxheight && $h >= $maxheight){
- $ratio = $maxheight/$h;
- }elseif($maxwidth && $w > $maxwidth){
- $ratio = $maxwidth/$w;
+ } else {
+ if($maxheight && $h >= $maxheight) {
+ $ratio = $maxheight / $h;
+ } elseif($maxwidth && $w > $maxwidth) {
+ $ratio = $maxwidth / $w;
}
}
- if($ratio){
- $w = floor($ratio*$w);
- $h = floor($ratio*$h);
+ if($ratio) {
+ $w = floor($ratio * $w);
+ $h = floor($ratio * $h);
}
//prepare URLs
- $url=ml($IMG,array('cache'=>$_REQUEST['cache']),true,'&');
- $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h),true,'&');
+ $url = ml($IMG, array('cache'=> $INPUT->str('cache')), true, '&');
+ $src = ml($IMG, array('cache'=> $INPUT->str('cache'), 'w'=> $w, 'h'=> $h), true, '&');
//prepare attributes
- $alt=tpl_img_getTag('Simple.Title');
- if(is_null($params)){
+ $alt = tpl_img_getTag('Simple.Title');
+ if(is_null($params)) {
$p = array();
- }else{
+ } else {
$p = $params;
}
- if($w) $p['width'] = $w;
+ if($w) $p['width'] = $w;
if($h) $p['height'] = $h;
- $p['class'] = 'img_detail';
- if($alt){
+ $p['class'] = 'img_detail';
+ if($alt) {
$p['alt'] = $alt;
$p['title'] = $alt;
- }else{
+ } else {
$p['alt'] = '';
}
$p['src'] = $src;
- $data = array('url'=>($link?$url:null), 'params'=>$p);
- return trigger_event('TPL_IMG_DISPLAY',$data,'_tpl_img_action',true);
+ $data = array('url'=> ($link ? $url : null), 'params'=> $p);
+ return trigger_event('TPL_IMG_DISPLAY', $data, '_tpl_img_action', true);
}
/**
* Default action for TPL_IMG_DISPLAY
+ *
+ * @param array $data
+ * @return bool
*/
-function _tpl_img_action($data, $param=null) {
+function _tpl_img_action($data) {
global $lang;
$p = buildAttributes($data['params']);
@@ -1005,38 +1090,42 @@ function _tpl_img_action($data, $param=null) {
*
* Should be called somewhere at the very end of the main.php
* template
+ *
+ * @return bool
*/
-function tpl_indexerWebBug(){
+function tpl_indexerWebBug() {
global $ID;
- $p = array();
+ $p = array();
$p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID).
'&'.time();
$p['width'] = 2; //no more 1x1 px image because we live in times of ad blockers...
$p['height'] = 1;
$p['alt'] = '';
- $att = buildAttributes($p);
+ $att = buildAttributes($p);
print "<img $att />";
return true;
}
-// configuration methods
/**
* tpl_getConf($id)
*
* use this function to access template configuration variables
+ *
+ * @param string $id
+ * @return string
*/
-function tpl_getConf($id){
+function tpl_getConf($id) {
global $conf;
static $tpl_configloaded = false;
$tpl = $conf['template'];
- if (!$tpl_configloaded){
+ if(!$tpl_configloaded) {
$tconf = tpl_loadConfig();
- if ($tconf !== false){
- foreach ($tconf as $key => $value){
- if (isset($conf['tpl'][$tpl][$key])) continue;
+ if($tconf !== false) {
+ foreach($tconf as $key => $value) {
+ if(isset($conf['tpl'][$tpl][$key])) continue;
$conf['tpl'][$tpl][$key] = $value;
}
$tpl_configloaded = true;
@@ -1048,15 +1137,18 @@ function tpl_getConf($id){
/**
* tpl_loadConfig()
+ *
* reads all template configuration variables
* this function is automatically called by tpl_getConf()
+ *
+ * @return array
*/
-function tpl_loadConfig(){
+function tpl_loadConfig() {
$file = tpl_incdir().'/conf/default.php';
$conf = array();
- if (!@file_exists($file)) return false;
+ if(!@file_exists($file)) return false;
// load default config file
include($file);
@@ -1070,18 +1162,18 @@ function tpl_loadConfig(){
*
* use this function to access template language variables
*/
-function tpl_getLang($id){
+function tpl_getLang($id) {
static $lang = array();
- if (count($lang) === 0){
+ if(count($lang) === 0) {
$path = tpl_incdir().'lang/';
$lang = array();
- global $conf; // definitely don't invoke "global $lang"
+ global $conf; // definitely don't invoke "global $lang"
// don't include once
@include($path.'en/lang.php');
- if ($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php');
+ if($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php');
}
return $lang[$id];
@@ -1100,44 +1192,41 @@ function tpl_getLang($id){
* @param bool $fromajax - set true when calling this function via ajax
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaContent($fromajax=false){
+function tpl_mediaContent($fromajax = false) {
global $IMG;
global $AUTH;
global $INUSE;
global $NS;
global $JUMPTO;
+ global $INPUT;
- if(is_array($_REQUEST['do'])){
- $do = array_shift(array_keys($_REQUEST['do']));
- }else{
- $do = $_REQUEST['do'];
- }
- if(in_array($do,array('save','cancel'))) $do = '';
+ $do = $INPUT->extract('do')->str('do');
+ if(in_array($do, array('save', 'cancel'))) $do = '';
- if(!$do){
- if($_REQUEST['edit']){
+ if(!$do) {
+ if($INPUT->bool('edit')) {
$do = 'metaform';
- }elseif(is_array($INUSE)){
+ } elseif(is_array($INUSE)) {
$do = 'filesinuse';
- }else{
+ } else {
$do = 'filelist';
}
}
// output the content pane, wrapped in an event.
if(!$fromajax) ptln('<div id="media__content">');
- $data = array( 'do' => $do);
- $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data);
- if ($evt->advise_before()) {
+ $data = array('do' => $do);
+ $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data);
+ if($evt->advise_before()) {
$do = $data['do'];
- if($do == 'filesinuse'){
- media_filesinuse($INUSE,$IMG);
- }elseif($do == 'filelist'){
- media_filelist($NS,$AUTH,$JUMPTO);
- }elseif($do == 'searchlist'){
- media_searchlist($_REQUEST['q'],$NS,$AUTH);
- }else{
- msg('Unknown action '.hsc($do),-1);
+ if($do == 'filesinuse') {
+ media_filesinuse($INUSE, $IMG);
+ } elseif($do == 'filelist') {
+ media_filelist($NS, $AUTH, $JUMPTO);
+ } elseif($do == 'searchlist') {
+ media_searchlist($INPUT->str('q'), $NS, $AUTH);
+ } else {
+ msg('Unknown action '.hsc($do), -1);
}
}
$evt->advise_after();
@@ -1153,37 +1242,38 @@ function tpl_mediaContent($fromajax=false){
*
* @author Kate Arzamastseva <pshns@ukr.net>
*/
-function tpl_mediaFileList(){
+function tpl_mediaFileList() {
global $AUTH;
global $NS;
global $JUMPTO;
global $lang;
+ global $INPUT;
- $opened_tab = $_REQUEST['tab_files'];
- if (!$opened_tab || !in_array($opened_tab, array('files', 'upload', 'search'))) $opened_tab = 'files';
- if ($_REQUEST['mediado'] == 'update') $opened_tab = 'upload';
+ $opened_tab = $INPUT->str('tab_files');
+ if(!$opened_tab || !in_array($opened_tab, array('files', 'upload', 'search'))) $opened_tab = 'files';
+ if($INPUT->str('mediado') == 'update') $opened_tab = 'upload';
- echo '<h2 class="a11y">' . $lang['mediaselect'] . '</h2>'.NL;
+ echo '<h2 class="a11y">'.$lang['mediaselect'].'</h2>'.NL;
media_tabs_files($opened_tab);
echo '<div class="panelHeader">'.NL;
echo '<h3>';
$tabTitle = ($NS) ? $NS : '['.$lang['mediaroot'].']';
- printf($lang['media_' . $opened_tab], '<strong>'.hsc($tabTitle).'</strong>');
+ printf($lang['media_'.$opened_tab], '<strong>'.hsc($tabTitle).'</strong>');
echo '</h3>'.NL;
- if ($opened_tab === 'search' || $opened_tab === 'files') {
+ if($opened_tab === 'search' || $opened_tab === 'files') {
media_tab_files_options();
}
echo '</div>'.NL;
echo '<div class="panelContent">'.NL;
- if ($opened_tab == 'files') {
- media_tab_files($NS,$AUTH,$JUMPTO);
- } elseif ($opened_tab == 'upload') {
- media_tab_upload($NS,$AUTH,$JUMPTO);
- } elseif ($opened_tab == 'search') {
- media_tab_search($NS,$AUTH);
+ if($opened_tab == 'files') {
+ media_tab_files($NS, $AUTH, $JUMPTO);
+ } elseif($opened_tab == 'upload') {
+ media_tab_upload($NS, $AUTH, $JUMPTO);
+ } elseif($opened_tab == 'search') {
+ media_tab_search($NS, $AUTH);
}
echo '</div>'.NL;
}
@@ -1196,55 +1286,55 @@ function tpl_mediaFileList(){
*
* @author Kate Arzamastseva <pshns@ukr.net>
*/
-function tpl_mediaFileDetails($image, $rev){
- global $AUTH, $NS, $conf, $DEL, $lang;
+function tpl_mediaFileDetails($image, $rev) {
+ global $AUTH, $NS, $conf, $DEL, $lang, $INPUT;
$removed = (!file_exists(mediaFN($image)) && file_exists(mediaMetaFN($image, '.changes')) && $conf['mediarevisions']);
- if (!$image || (!file_exists(mediaFN($image)) && !$removed) || $DEL) return '';
- if ($rev && !file_exists(mediaFN($image, $rev))) $rev = false;
- if (isset($NS) && getNS($image) != $NS) return '';
- $do = $_REQUEST['mediado'];
+ if(!$image || (!file_exists(mediaFN($image)) && !$removed) || $DEL) return;
+ if($rev && !file_exists(mediaFN($image, $rev))) $rev = false;
+ if(isset($NS) && getNS($image) != $NS) return;
+ $do = $INPUT->str('mediado');
- $opened_tab = $_REQUEST['tab_details'];
+ $opened_tab = $INPUT->str('tab_details');
$tab_array = array('view');
- list($ext, $mime) = mimetype($image);
- if ($mime == 'image/jpeg') {
+ list(, $mime) = mimetype($image);
+ if($mime == 'image/jpeg') {
$tab_array[] = 'edit';
}
- if ($conf['mediarevisions']) {
+ if($conf['mediarevisions']) {
$tab_array[] = 'history';
}
- if (!$opened_tab || !in_array($opened_tab, $tab_array)) $opened_tab = 'view';
- if ($_REQUEST['edit']) $opened_tab = 'edit';
- if ($do == 'restore') $opened_tab = 'view';
+ if(!$opened_tab || !in_array($opened_tab, $tab_array)) $opened_tab = 'view';
+ if($INPUT->bool('edit')) $opened_tab = 'edit';
+ if($do == 'restore') $opened_tab = 'view';
media_tabs_details($image, $opened_tab);
echo '<div class="panelHeader"><h3>';
- list($ext,$mime,$dl) = mimetype($image,false);
- $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext);
- $class = 'select mediafile mf_'.$class;
+ list($ext) = mimetype($image, false);
+ $class = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
+ $class = 'select mediafile mf_'.$class;
$tabTitle = '<strong><a href="'.ml($image).'" class="'.$class.'" title="'.$lang['mediaview'].'">'.$image.'</a>'.'</strong>';
- if ($opened_tab === 'view' && $rev) {
+ if($opened_tab === 'view' && $rev) {
printf($lang['media_viewold'], $tabTitle, dformat($rev));
} else {
- printf($lang['media_' . $opened_tab], $tabTitle);
+ printf($lang['media_'.$opened_tab], $tabTitle);
}
echo '</h3></div>'.NL;
echo '<div class="panelContent">'.NL;
- if ($opened_tab == 'view') {
+ if($opened_tab == 'view') {
media_tab_view($image, $NS, $AUTH, $rev);
- } elseif ($opened_tab == 'edit' && !$removed) {
+ } elseif($opened_tab == 'edit' && !$removed) {
media_tab_edit($image, $NS, $AUTH);
- } elseif ($opened_tab == 'history' && $conf['mediarevisions']) {
- media_tab_history($image,$NS,$AUTH);
+ } elseif($opened_tab == 'history' && $conf['mediarevisions']) {
+ media_tab_history($image, $NS, $AUTH);
}
echo '</div>'.NL;
@@ -1257,14 +1347,13 @@ function tpl_mediaFileDetails($image, $rev){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaTree(){
+function tpl_mediaTree() {
global $NS;
ptln('<div id="media__tree">');
media_nstree($NS);
ptln('</div>');
}
-
/**
* Print a dropdown menu with all DokuWiki actions
*
@@ -1272,16 +1361,12 @@ function tpl_mediaTree(){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_actiondropdown($empty='',$button='&gt;'){
+function tpl_actiondropdown($empty = '', $button = '&gt;') {
global $ID;
- global $INFO;
global $REV;
- global $ACT;
- global $conf;
global $lang;
- global $auth;
- echo '<form action="' . DOKU_SCRIPT . '" method="post" accept-charset="utf-8">';
+ echo '<form action="'.DOKU_SCRIPT.'" method="post" accept-charset="utf-8">';
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />';
@@ -1291,45 +1376,45 @@ function tpl_actiondropdown($empty='',$button='&gt;'){
echo '<option value="">'.$empty.'</option>';
echo '<optgroup label="'.$lang['page_tools'].'">';
- $act = tpl_get_action('edit');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('edit');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('revert');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('revert');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('revisions');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('revisions');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('backlink');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('backlink');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('subscribe');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
+ $act = tpl_get_action('subscribe');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ echo '</optgroup>';
echo '<optgroup label="'.$lang['site_tools'].'">';
- $act = tpl_get_action('recent');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('recent');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('media');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('media');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('index');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('index');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
echo '</optgroup>';
echo '<optgroup label="'.$lang['user_tools'].'">';
- $act = tpl_get_action('login');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('login');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('register');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('register');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('profile');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('profile');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- $act = tpl_get_action('admin');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ $act = tpl_get_action('admin');
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
echo '</optgroup>';
echo '</select>';
@@ -1342,24 +1427,26 @@ function tpl_actiondropdown($empty='',$button='&gt;'){
* Print a informational line about the used license
*
* @author Andreas Gohr <andi@splitbrain.org>
- * @param string $img - print image? (|button|badge)
- * @param bool $return - when true don't print, but return HTML
- * @param bool $wrap - wrap in div with class="license"?
+ * @param string $img print image? (|button|badge)
+ * @param bool $imgonly skip the textual description?
+ * @param bool $return when true don't print, but return HTML
+ * @param bool $wrap wrap in div with class="license"?
+ * @return string
*/
-function tpl_license($img='badge',$imgonly=false,$return=false,$wrap=true){
+function tpl_license($img = 'badge', $imgonly = false, $return = false, $wrap = true) {
global $license;
global $conf;
global $lang;
if(!$conf['license']) return '';
if(!is_array($license[$conf['license']])) return '';
- $lic = $license[$conf['license']];
+ $lic = $license[$conf['license']];
$target = ($conf['target']['extern']) ? ' target="'.$conf['target']['extern'].'"' : '';
$out = '';
- if($wrap) $out .= '<div class="license">';
- if($img){
+ if($wrap) $out .= '<div class="license">';
+ if($img) {
$src = license_img($img);
- if($src){
+ if($src) {
$out .= '<a href="'.$lic['url'].'" rel="license"'.$target;
$out .= '><img src="'.DOKU_BASE.$src.'" alt="'.$lic['name'].'" /></a>';
if(!$imgonly) $out .= ' ';
@@ -1374,23 +1461,23 @@ function tpl_license($img='badge',$imgonly=false,$return=false,$wrap=true){
if($return) return $out;
echo $out;
+ return '';
}
-
/**
* Includes the rendered XHTML of a given page
*
* This function is useful to populate sidebars or similar features in a
* template
*/
-function tpl_include_page($pageid,$print=true){
+function tpl_include_page($pageid, $print = true) {
global $ID;
global $TOC;
$oldid = $ID;
$oldtoc = $TOC;
- $html = p_wiki_xhtml($pageid,'',false);
- $ID = $oldid;
- $TOC = $oldtoc;
+ $html = p_wiki_xhtml($pageid, '', false);
+ $ID = $oldid;
+ $TOC = $oldtoc;
if(!$print) return $html;
echo $html;
@@ -1400,7 +1487,7 @@ function tpl_include_page($pageid,$print=true){
/**
* Include the sidebar, will check current namespaces first
*/
-function tpl_sidebar($print=true){
+function tpl_sidebar($print = true) {
global $conf;
$sidebar = page_findnearest($conf['sidebar']);
@@ -1418,18 +1505,18 @@ function tpl_subscribe() {
global $ID;
global $lang;
global $conf;
- $stime_days = $conf['subscribe_time']/60/60/24;
+ $stime_days = $conf['subscribe_time'] / 60 / 60 / 24;
echo p_locale_xhtml('subscr_form');
- echo '<h2>' . $lang['subscr_m_current_header'] . '</h2>';
+ echo '<h2>'.$lang['subscr_m_current_header'].'</h2>';
echo '<div class="level2">';
- if ($INFO['subscribed'] === false) {
- echo '<p>' . $lang['subscr_m_not_subscribed'] . '</p>';
+ if($INFO['subscribed'] === false) {
+ echo '<p>'.$lang['subscr_m_not_subscribed'].'</p>';
} else {
echo '<ul>';
foreach($INFO['subscribed'] as $sub) {
echo '<li><div class="li">';
- if ($sub['target'] !== $ID) {
+ if($sub['target'] !== $ID) {
echo '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>';
} else {
echo '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>';
@@ -1438,32 +1525,36 @@ function tpl_subscribe() {
if(!$sstl) $sstl = hsc($sub['style']);
echo ' ('.$sstl.') ';
- echo '<a href="' . wl($ID,
- array('do'=>'subscribe',
- 'sub_target'=>$sub['target'],
- 'sub_style'=>$sub['style'],
- 'sub_action'=>'unsubscribe',
- 'sectok' => getSecurityToken())) .
- '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'] .
- '</a></div></li>';
+ echo '<a href="'.wl(
+ $ID,
+ array(
+ 'do' => 'subscribe',
+ 'sub_target'=> $sub['target'],
+ 'sub_style' => $sub['style'],
+ 'sub_action'=> 'unsubscribe',
+ 'sectok' => getSecurityToken()
+ )
+ ).
+ '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'].
+ '</a></div></li>';
}
echo '</ul>';
}
echo '</div>';
// Add new subscription form
- echo '<h2>' . $lang['subscr_m_new_header'] . '</h2>';
+ echo '<h2>'.$lang['subscr_m_new_header'].'</h2>';
echo '<div class="level2">';
- $ns = getNS($ID).':';
+ $ns = getNS($ID).':';
$targets = array(
- $ID => '<code class="page">'.prettyprint_id($ID).'</code>',
- $ns => '<code class="ns">'.prettyprint_id($ns).'</code>',
- );
- $styles = array(
- 'every' => $lang['subscr_style_every'],
- 'digest' => sprintf($lang['subscr_style_digest'], $stime_days),
- 'list' => sprintf($lang['subscr_style_list'], $stime_days),
- );
+ $ID => '<code class="page">'.prettyprint_id($ID).'</code>',
+ $ns => '<code class="ns">'.prettyprint_id($ns).'</code>',
+ );
+ $styles = array(
+ 'every' => $lang['subscr_style_every'],
+ 'digest' => sprintf($lang['subscr_style_digest'], $stime_days),
+ 'list' => sprintf($lang['subscr_style_list'], $stime_days),
+ );
$form = new Doku_Form(array('id' => 'subscribe__form'));
$form->startFieldset($lang['subscr_m_subscribe']);
@@ -1486,7 +1577,7 @@ function tpl_subscribe() {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_flush(){
+function tpl_flush() {
ob_flush();
flush();
}
@@ -1498,18 +1589,22 @@ function tpl_flush(){
* file, otherwise it is assumed to be relative to the current template
*
* @param array $search locations to look at
- * @param bool $abs if to use absolute URL
- * @param arrayref $imginfo filled with getimagesize()
+ * @param bool $abs if to use absolute URL
+ * @param array &$imginfo filled with getimagesize()
+ * @return string
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
+function tpl_getMediaFile($search, $abs = false, &$imginfo = null) {
+ $img = '';
+ $file = '';
+ $ismedia = false;
// loop through candidates until a match was found:
- foreach($search as $img){
- if(substr($img,0,1) == ':'){
+ foreach($search as $img) {
+ if(substr($img, 0, 1) == ':') {
$file = mediaFN($img);
$ismedia = true;
- }else{
- $file = tpl_incdir().$img;
+ } else {
+ $file = tpl_incdir().$img;
$ismedia = false;
}
@@ -1517,14 +1612,14 @@ function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
}
// fetch image data if requested
- if(!is_null($imginfo)){
+ if(!is_null($imginfo)) {
$imginfo = getimagesize($file);
}
// build URL
- if($ismedia){
+ if($ismedia) {
$url = ml($img, '', true, '', $abs);
- }else{
+ } else {
$url = tpl_basedir().$img;
if($abs) $url = DOKU_URL.substr($url, strlen(DOKU_REL));
}
@@ -1548,13 +1643,13 @@ function tpl_getMediaFile($search, $abs=false, &$imginfo=null){
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_includeFile($file){
+function tpl_includeFile($file) {
global $config_cascade;
- foreach (array('protected','local','default') as $config_group) {
- if (empty($config_cascade['main'][$config_group])) continue;
- foreach ($config_cascade['main'][$config_group] as $conf_file) {
+ foreach(array('protected', 'local', 'default') as $config_group) {
+ if(empty($config_cascade['main'][$config_group])) continue;
+ foreach($config_cascade['main'][$config_group] as $conf_file) {
$dir = dirname($conf_file);
- if(file_exists("$dir/$file")){
+ if(file_exists("$dir/$file")) {
include("$dir/$file");
return;
}
@@ -1563,7 +1658,7 @@ function tpl_includeFile($file){
// still here? try the template dir
$file = tpl_incdir().$file;
- if(file_exists($file)){
+ if(file_exists($file)) {
include($file);
}
}
@@ -1575,7 +1670,7 @@ function tpl_includeFile($file){
* @deprecated Use tpl_getMediaFile() instead
* @author Anika Henke <anika@selfthinker.org>
*/
-function tpl_getFavicon($abs=false, $fileName='favicon.ico') {
+function tpl_getFavicon($abs = false, $fileName = 'favicon.ico') {
$look = array(":wiki:$fileName", ":$fileName", "images/$fileName");
return tpl_getMediaFile($look, $abs);
}
@@ -1583,14 +1678,15 @@ function tpl_getFavicon($abs=false, $fileName='favicon.ico') {
/**
* Returns <link> tag for various icon types (favicon|mobile|generic)
*
- * @param array $types - list of icon types to display (favicon|mobile|generic)
* @author Anika Henke <anika@selfthinker.org>
+ * @param array $types - list of icon types to display (favicon|mobile|generic)
+ * @return string
*/
-function tpl_favicon($types=array('favicon')) {
+function tpl_favicon($types = array('favicon')) {
$return = '';
- foreach ($types as $type) {
+ foreach($types as $type) {
switch($type) {
case 'favicon':
$look = array(':wiki:favicon.ico', ':favicon.ico', 'images/favicon.ico');
@@ -1617,14 +1713,15 @@ function tpl_favicon($types=array('favicon')) {
* @author Kate Arzamastseva <pshns@ukr.net>
*/
function tpl_media() {
- global $DEL, $NS, $IMG, $AUTH, $JUMPTO, $REV, $lang, $fullscreen, $conf;
+ global $NS, $IMG, $JUMPTO, $REV, $lang, $fullscreen, $INPUT;
$fullscreen = true;
require_once DOKU_INC.'lib/exe/mediamanager.php';
- if ($_REQUEST['image']) $image = cleanID($_REQUEST['image']);
- if (isset($IMG)) $image = $IMG;
- if (isset($JUMPTO)) $image = $JUMPTO;
- if (isset($REV) && !$JUMPTO) $rev = $REV;
+ $rev = '';
+ $image = cleanID($INPUT->str('image'));
+ if(isset($IMG)) $image = $IMG;
+ if(isset($JUMPTO)) $image = $JUMPTO;
+ if(isset($REV) && !$JUMPTO) $rev = $REV;
echo '<div id="mediamanager__page">'.NL;
echo '<h1>'.$lang['btn_media'].'</h1>'.NL;