<?php function tpl_ID($text=null) { global $conf; global $ID; if ($text==null) $text=$ID; if ($conf['useslash']) return str_replace(":","/",$text); else return $text; } function tpl_bs_actionlink($type, $pre = '', $suf = '', $class='', $inner = '', $return = false) { global $lang; $data = tpl_get_action($type); if($data === false) { return false; } elseif(!is_array($data)) { $out = sprintf($data, 'link'); } else { /** * @var string $accesskey * @var string $id * @var string $method * @var bool $nofollow * @var array $params * @var string $replacement */ extract($data); if(strpos($id, '#') === 0) { $linktarget = $id; } else { $linktarget = wl($id, $params); } $caption = $lang['btn_'.$type]; if(strpos($caption, '%s')){ $caption = sprintf($caption, $replacement); } $akey = $addTitle = ''; if($accesskey) { $akey = 'accesskey="'.$accesskey.'" '; $addTitle = ' ['.strtoupper($accesskey).']'; } $rel = $nofollow ? 'rel="nofollow" ' : ''; $out = tpl_link( $linktarget, $pre.(($inner) ? $inner : $caption).$suf, 'class="btn action '.$type.' '.$class.'" '. $akey.$rel. 'title="'.hsc($caption).$addTitle.'"', 1 ); $out='<a href="'.$linktarget.'" '; $out.='class="action '.$type.' '.$class.'" '. $akey.$rel. 'title="'.hsc($caption).$addTitle.'"'; $out.='>'; if ($pre) $out.='<span class="glyphicon glyphicon-'.$pre.'"></span> '; $out.=(($inner) ? $inner : " ".$caption); $out.='</a>'; if ($suf) $out='<'.$suf.'>'.$out.'</'.$suf.'>'; } if($return) return $out; echo $out; return true; } function tpl_button_a($type, $pre = '', $suf = '', $class='', $inner = '', $return = false) { global $lang; $data = tpl_get_action($type); if($data === false) { return false; } elseif(!is_array($data)) { $out = sprintf($data, 'link'); } else { /** * @var string $accesskey * @var string $id * @var string $method * @var bool $nofollow * @var array $params * @var string $replacement */ extract($data); if(strpos($id, '#') === 0) { $linktarget = $id; } else { $linktarget = wl($id, $params); } $caption = $lang['btn_'.$type]; if(strpos($caption, '%s')){ $caption = sprintf($caption, $replacement); } $akey = $addTitle = ''; if($accesskey) { $akey = 'accesskey="'.$accesskey.'" '; $addTitle = ' ['.strtoupper($accesskey).']'; } $rel = $nofollow ? 'rel="nofollow" ' : ''; $out = tpl_link( $linktarget, $pre.(($inner) ? $inner : $caption).$suf, 'class="btn action '.$type.' '.$class.'" '. $akey.$rel. 'title="'.hsc($caption).$addTitle.'"', 1 ); $out='<a href="'.$linktarget.'" '; $out.='class="action_'.$type.' '.$class.'" '. $akey.$rel. 'title="'.hsc($caption).$addTitle.'"'; $out.='>'; // if ($pre) $out.='<span class="glyphicon glyphicon-'.$pre.'"></span> '; if ($pre) $out.='<div><i class="fa fa-'.$pre.'"></i></div>'; // $out.=(($inner) ? $inner : " ".$caption); $out.='<div>'.(($inner) ? $inner : $caption).'</div>'; $out.='</a>'; // if ($suf) $out='<'.$suf.'>'.$out.'</'.$suf.'>'; } if($return) return $out; echo $out; return true; } function ds_html_msgarea(){ /* ½ºÆ®·¦¿ë msg */ global $MSG, $MSG_shown; /** @var array $MSG */ // store if the global $MSG has already been shown and thus HTML output has been started $MSG_shown = true; if(!isset($MSG)) return; $shown = array(); foreach($MSG as $msg){ $hash = md5($msg['msg']); if(isset($shown[$hash])) continue; // skip double messages if(info_msg_allowed($msg)){ print '<div class="alert-'.$msg['lvl'].' alert alert-dismissible" role="alert">'; print '<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>'; print $msg['msg']; print '</div>'; } $shown[$hash] = 1; } unset($GLOBALS['MSG']); } function tpl_bs_breadcrumbs($tag='li') { global $lang; global $conf; //check if enabled if(!$conf['breadcrumbs']) return false; $crumbs = breadcrumbs(); //setup crumb trace $last = count($crumbs); if ($last==1) return false; $i = 0; print '<ol class="breadcrumb text-capitalize hidden-xs">'; print '<li><i class="fa fa-book" aria-hidden="true"></i></li>'; foreach($crumbs as $id => $name) { $i++; print '<'.$tag.'>'; tpl_link(wl($id), hsc($name), ' title="'.$id.'"'); print '</'.$tag.'>'; } print '</ol>'; return true; } /* from twitter bootstrap template * @author Anika Henke <anika@selfthinker.org> */ function _tpl_toc_to_twitter_bootstrap_event_hander_dump_level($data, $header='', $firstlevel=false) { global $lang; if (count($data) == 0) { return ''; } $ret = ''; $ret .= '<li class="divider"></li>'; // $ret .= '<ul class="nav list-group">'; if ($header != '') { $ret .= '<li class="dropdown-header">'.$header.'</li>'; } // $ret .= '<li class="divider"></li>'; // $first = true; // $li_inner = ' class ="active"'; //Only supports top level links for now. foreach($data as $heading) { $ret .= '<li' . $li_inner . '><a href="#' . $heading['hid'] . '">'. $chevronHTML . $heading['title'] . '</a></li>'; $li_inner = ''; } //$ret .= '<li class="divider"></li>'; // $ret .= '</ul>'; return $ret; } function _tpl_toc_to_twitter_bootstrap_event_hander(&$event, $param) { global $conf; global $lang; //This is tied to the specific format of the DokuWiki TOC. echo _tpl_toc_to_twitter_bootstrap_event_hander_dump_level($event->data,$lang['toc'], true); } function _tpl_toc_to_twitter_bootstrap() { //Force generation of TOC, request that the TOC is returned as HTML, but then ignore the returned string. The hook will instead dump out the TOC. global $EVENT_HANDLER; $EVENT_HANDLER->register_hook('TPL_TOC_RENDER', 'AFTER', NULL, '_tpl_toc_to_twitter_bootstrap_event_hander'); tpl_toc(true); } function tpl_logo ($return = false) { global $INFO; global $conf; $logoSize = array(); $logo = tpl_getMediaFile(array(':'.$INFO['namespace'].':logo.jpg',':'.$INFO['namespace'].':logo.png',':¿À´Ã:'.date("n¿ù_jÀÃ").'.png',':logo.png',':wiki:logo.png', 'images/logo.png'), false, $logoSize); $out='<div><img class="logo" src="'.$logo.'" alt="" ></div>'; // $out=tpl_link(wl('..:'),$out,'',1); $out=tpl_link(wl($INFO['namespace'].':'.$conf['start'],'',true),$out,'',1); if($return) return $out; echo $out; return true; } function tpl_background ($return = false) { global $INFO; $bg=tpl_getConf('bg_ns'); $logoSize = array(); $img = tpl_getMediaFile(array(':'.$INFO['namespace'].':'.$bg,':'.$bg, 'images/bg.png'), false); $out=$img; if($return) return $out; echo $out; return true; } function tpl_title ($return=false) { global $INFO; global $conf; //strip_tags($conf['title']) $out='<div class="text-center" >'.tpl_link( wl($INFO['namespace'].':'.$conf['start']),p_get_first_heading(':'.$INFO['namespace'].':'.$conf['start']),'accesskey="h" title="[H]"',1).'</div>'; if($return) return $out; echo $out; return true; } function tpl_apple_touch_icon() { $return = ''; $look = array(':apple-touch-icon.svg', ':wiki:apple-touch-icon.png', ':apple-touch-icon.png', 'images/apple-touch-icon.png'); $return .= tpl_getMediaFile($look); return $return; } function tpl_pagesize($ID) { $page = wikiFN($ID); if(file_exists($page)) return filesize_h(filesize($page)); } ?>