*/ function _tpl_discussion($discussionPage, $title, $backTitle, $link=0, $wrapper=0, $return=0) { global $ID; $output = ''; $discussPage = str_replace('@ID@', $ID, $discussionPage); $discussPageRaw = str_replace('@ID@', '', $discussionPage); $isDiscussPage = strpos($ID, $discussPageRaw) !== false; $backID = ':'.str_replace($discussPageRaw, '', $ID); if ($wrapper) $output .= "<$wrapper>"; if ($isDiscussPage) { if ($link) { ob_start(); tpl_pagelink($backID, $backTitle); $output .= ob_get_contents(); ob_end_clean(); } else { $output .= html_btn('back2article', $backID, '', array(), 'get', 0, $backTitle); } } else { if ($link) { ob_start(); tpl_pagelink($discussPage, $title); $output .= ob_get_contents(); ob_end_clean(); } else { $output .= html_btn('discussion', $discussPage, '', array(), 'get', 0, $title); } } if ($wrapper) $output .= ""; if ($return) return $output; echo $output; } /** * Create link/button to user page * * @author Anika Henke */ function _tpl_userpage($userPage, $title, $link=0, $wrapper=0, $return=0) { if (empty($_SERVER['REMOTE_USER'])) return; global $conf; $output = ''; $userPage = str_replace('@USER@', $_SERVER['REMOTE_USER'], $userPage); if ($wrapper) $output .= "<$wrapper>"; if ($link) { ob_start(); tpl_pagelink($userPage, $title); $output .= ob_get_contents(); ob_end_clean(); } else { $output .= html_btn('userpage', $userPage, '', array(), 'get', 0, $title); } if ($wrapper) $output .= ""; if ($return) return $output; echo $output; } /** * Wrapper around custom template actions * * @author Anika Henke */ function _tpl_action($type, $link=0, $wrapper=0, $return=0) { switch ($type) { case 'discussion': if (tpl_getConf('discussionPage')) { $output = _tpl_discussion(tpl_getConf('discussionPage'), tpl_getLang('discussion'), tpl_getLang('back_to_article'), $link, $wrapper, 1); if ($return) return $output; echo $output; } break; case 'userpage': if (tpl_getConf('userPage')) { $output = _tpl_userpage(tpl_getConf('userPage'), tpl_getLang('userpage'), $link, $wrapper, 1); if ($return) return $output; echo $output; } break; } } /** * copied to core (available since Detritus) */ if (!function_exists('tpl_toolsevent')) { function tpl_toolsevent($toolsname, $items, $view='main') { $data = array( 'view' => $view, 'items' => $items ); $hook = 'TEMPLATE_'.strtoupper($toolsname).'_DISPLAY'; $evt = new Doku_Event($hook, $data); if($evt->advise_before()){ foreach($evt->data['items'] as $k => $html) echo $html; } $evt->advise_after(); } } /** * copied from core (available since Binky) */ if (!function_exists('tpl_classes')) { function tpl_classes() { global $ACT, $conf, $ID, $INFO; $classes = array( 'dokuwiki', 'mode_'.$ACT, 'tpl_'.$conf['template'], !empty($_SERVER['REMOTE_USER']) ? 'loggedIn' : '', $INFO['exists'] ? '' : 'notFound', ($ID == $conf['start']) ? 'home' : '', ); return join(' ', $classes); } }