/** * Print the breadcrumbs trace with Bootstrap class * * @author Nicolas GERARD * * @param string $sep Separator between entries * @return bool */ function tpl_breadcrumbs_bootstrap($sep = '�') { global $conf; global $lang; //check if enabled if (!$conf['breadcrumbs']) { return false; } $crumbs = array_reverse(breadcrumbs()); //setup crumb trace $last = count($crumbs); $i = 0; echo '<ol class="breadcrumb">' . PHP_EOL; foreach ($crumbs as $id => $name) { $i++; if ($i == $last) { print '<li class="active">'; } else { print '<li>'; } if ($i == 1) { // Try to get the template custom breadcrumb $breadCrumb = tpl_getLang('breadcrumb'); if ($breadCrumb == '') { // If not present for the language, get the default one $breadCrumb = $lang['breadcrumb']; } echo $breadCrumb . ': '; } tpl_link(wl($id), hsc($name), 'title="' . $id . '"'); print '</li>' . PHP_EOL; } echo '</ol>' . PHP_EOL; return true; }
/** * Wrapper around custom template actions * * @author Anika Henke <*****@*****.**> */ function _tpl_action($type, $link = 0, $wrapper = 0) { switch ($type) { case 'userpage': if (tpl_getConf('userPage')) { _tpl_userpage(tpl_getConf('userPage'), tpl_getLang('userpage'), $link, $wrapper); } break; } }
/** * Create the actual editing form */ public function form() { global $conf; global $ID; define('SIMPLE_TEST', 1); // hack, ideally certain functions should be moved out of css.php require_once DOKU_INC . 'lib/exe/css.php'; $styleini = css_styleini($conf['template'], true); $replacements = $styleini['replacements']; if ($this->ispopup) { $target = DOKU_BASE . 'lib/plugins/styling/popup.php'; } else { $target = wl($ID, array('do' => 'admin', 'page' => 'styling')); } if (empty($replacements)) { echo '<p class="error">' . $this->getLang('error') . '</p>'; } else { echo $this->locale_xhtml('intro'); echo '<form class="styling" method="post" action="' . $target . '">'; echo '<table><tbody>'; foreach ($replacements as $key => $value) { $name = tpl_getLang($key); if (empty($name)) { $name = $this->getLang($key); } if (empty($name)) { $name = $key; } echo '<tr>'; echo '<td><label for="tpl__' . hsc($key) . '">' . $name . '</label></td>'; echo '<td><input type="text" name="tpl[' . hsc($key) . ']" id="tpl__' . hsc($key) . '" value="' . hsc($value) . '" ' . $this->colorClass($key) . ' dir="ltr" /></td>'; echo '</tr>'; } echo '</tbody></table>'; echo '<p>'; echo '<button type="submit" name="run[preview]" class="btn_preview primary">' . $this->getLang('btn_preview') . '</button> '; echo '<button type="submit" name="run[reset]">' . $this->getLang('btn_reset') . '</button>'; #FIXME only if preview.ini exists echo '</p>'; echo '<p>'; echo '<button type="submit" name="run[save]" class="primary">' . $this->getLang('btn_save') . '</button>'; echo '</p>'; echo '<p>'; echo '<button type="submit" name="run[revert]">' . $this->getLang('btn_revert') . '</button>'; #FIXME only if local.ini exists echo '</p>'; echo '</form>'; echo tpl_locale_xhtml('style'); } }
/** * Wrapper around custom template actions * * @author Anika Henke <*****@*****.**> */ function _tpl_action($type, $link = 0, $wrapper = 0) { switch ($type) { case 'discussion': if (tpl_getConf('discussionPage')) { _tpl_discussion(tpl_getConf('discussionPage'), tpl_getLang('discussion'), tpl_getLang('back_to_article'), $link, $wrapper); } break; case 'userpage': if (tpl_getConf('userPage')) { _tpl_userpage(tpl_getConf('userPage'), tpl_getLang('userpage'), $link, $wrapper); } break; } }
/** * Create link/button to user page * * @author Anika Henke <*****@*****.**> */ function _tpl_userpage($userNS = 'user', $link = 0, $wrapper = false) { if (!$_SERVER['REMOTE_USER']) { return; } global $conf; $userPage = $userNS . ':' . $_SERVER['REMOTE_USER'] . ':' . $conf['start']; if ($wrapper) { echo "<{$wrapper}>"; } if ($link) { tpl_pagelink($userPage, tpl_getLang('userpage')); } else { echo html_btn('userpage', $userPage, '', array(), 0, 0, tpl_getLang('userpage')); } if ($wrapper) { echo "</{$wrapper}>"; } }
} if (!isset($conf['sidebar'])) { $conf['sidebar'] = tpl_getConf('sidebarID'); } /* these $lang strings are now in the core */ if (!isset($lang['user_tools'])) { $lang['user_tools'] = tpl_getLang('user_tools'); } if (!isset($lang['site_tools'])) { $lang['site_tools'] = tpl_getLang('site_tools'); } if (!isset($lang['page_tools'])) { $lang['page_tools'] = tpl_getLang('page_tools'); } if (!isset($lang['skip_to_content'])) { $lang['skip_to_content'] = tpl_getLang('skip_to_content'); } /** * copied from core (available since Adora Belle) */ if (!function_exists('tpl_getMediaFile')) { 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) == ':') { $file = mediaFN($img); $ismedia = true;
if (strpos(tpl_getConf('elements'), 'header_title') !== false and $conf['title'] != null) { ?> <div id="dokuwiki__title" class='container col-12 justify-center'> <?php tpl_link(wl(), '<span>' . $conf['title'] . '</span>', 'accesskey="h" title="' . tpl_getLang('wikihome') . ' [H]" class="color-white"'); ?> </div> <?php } ?> <?php if (strpos(tpl_getConf('elements'), 'header_tagline') !== false and $conf['tagline'] != null) { ?> <div id="dokuwiki__tagline" class='container col-12 justify-center'> <?php tpl_link(wl(), '<span>' . $conf['tagline'] . '</span>', 'accesskey="h" title="' . tpl_getLang('wikihome') . ' [H]" class="color-dark"'); ?> </div> <?php } ?> </div><!-- #mixture__brand_text --> <?php } ?> </div><!-- #mixture__brand --> <!-- NAVIGATION --> <div id="mixture__menu" class="container<?php echo _mixture_area_width("main_nav"); ?> col-md-auto">
?> <?php @(include dirname(__FILE__) . '/pagefooter.html'); ?> </div></div><!-- /content --> <div class="clearer"></div> <hr class="a11y" /> <!-- PAGE ACTIONS --> <?php if ($showTools) { ?> <div id="dokuwiki__pagetools"> <h3 class="a11y"><?php echo tpl_getLang('page_tools'); ?> </h3> <ul> <?php tpl_action('edit', 1, 'li'); if (tpl_getConf('discussionNS')) { _tpl_discussion(tpl_getConf('discussionNS'), 1, 'li', tpl_getConf('discussNSreverse')); } tpl_action('history', 1, 'li'); tpl_action('backlink', 1, 'li'); tpl_action('subscribe', 1, 'li'); tpl_action('revert', 1, 'li'); tpl_action('top', 1, 'li'); ?> </ul>
* DokuWiki Bootstrap3 Template: Administration Menu * * @link http://dokuwiki.org/template:bootstrap3 * @author Giuseppe Di Terlizzi <*****@*****.**> * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ // must be run from within DokuWiki if (!defined('DOKU_INC')) { die; } global $ID, $auth; if (bootstrap3_conf('showAdminMenu')) { $admin_plugins = plugin_list('admin'); $administrative_tasks = array('usermanager', 'acl', 'extension', 'config', 'styling', 'revert', 'popularity'); $additional_plugins = array_diff($admin_plugins, $administrative_tasks); $admin = array('administrative_tasks' => array('label' => tpl_getLang('administrative_tasks'), 'plugins' => $administrative_tasks), 'additional_plugins' => array('label' => tpl_getLang('additional_plugins'), 'plugins' => $additional_plugins)); ?> <ul class="nav navbar-nav" id="dw__admin"> <li class="dropdown dropdown-large"> <a href="<?php wl($ID); ?> " class="dropdown-toggle" data-target="#" data-toggle="dropdown" title="<?php echo $lang['btn_admin']; ?> " role="button" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-fw fa-cogs"></i> <span class="<?php echo in_array('admin', bootstrap3_conf('navbarLabels')) ? '' : 'hidden-lg hidden-md hidden-sm'; ?> "> <?php
* @link http://dokuwiki.org/template:bootstrap3 * @author Giuseppe Di Terlizzi <*****@*****.**> * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ // must be run from within DokuWiki if (!defined('DOKU_INC')) { die; } if (bootstrap3_conf('showThemeSwitcher')) { ?> <!-- theme-switcher --> <ul class="nav navbar-nav" id="dw__themes"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"><i class="fa fa-fw fa-tint"></i> <span class="hidden-lg hidden-md hidden-sm"><?php echo tpl_getLang('themes'); ?> </span> <span class="caret"></span></a> <ul class="dropdown-menu" aria-labelledby="themes"> <li class="dropdown-header"><i class="fa fa-fw fa-tint"></i> Bootswatch Themes</li> <?php foreach (bootstrap3_bootswatch_themes_available() as $theme) { ?> <li<?php echo $bootswatchTheme == $theme ? ' class="active"' : ''; ?> > <a href="?bootswatch-theme=<?php echo hsc($theme); ?>
* DokuWiki Bootstrap3 Template: Administration Menu * * @link http://dokuwiki.org/template:bootstrap3 * @author Giuseppe Di Terlizzi <*****@*****.**> * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ // must be run from within DokuWiki if (!defined('DOKU_INC')) { die; } global $ID, $auth; if (bootstrap3_conf('showAdminMenu')) { $admin_plugins = plugin_list('admin'); $administrative_tasks = array('usermanager', 'acl', 'extension', 'config', 'styling', 'revert', 'popularity'); $additional_plugins = array_diff($admin_plugins, $administrative_tasks); $plugins = array(tpl_getLang('administrative_tasks') => $administrative_tasks, tpl_getLang('additional_plugins') => $additional_plugins); ?> <ul class="nav navbar-nav"> <li class="dropdown dropdown-large"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" title="<?php echo $lang['btn_admin']; ?> "> <i class="fa fa-fw fa-cogs"></i> <span class="hidden-lg hidden-md hidden-sm"><?php echo $lang['btn_admin']; ?> </span> <span class="caret"></span> </a> <ul class="dropdown-menu dropdown-menu-large" role="menu">
?> </span></a> </li> <li><br><hr></li> <?php } ?> <?php tpl_action('edit', 1, 'li', 0, '<span>', '</span>'); tpl_action('revert', 1, 'li', 0, '<span>', '</span>'); tpl_action('top', 1, 'li', 0, '<span>', '</span>'); ?> <li onmouseup="window.print()"> <a href="" class="action print"><span><?php echo tpl_getLang('btn_print'); ?> </span></a> </li> <?php tpl_action('subscribe', 1, 'li', 0, '<span>', '</span>'); tpl_action('revisions', 1, 'li', 0, '<span>', '</span>'); tpl_action('backlink', 1, 'li', 0, '<span>', '</span>'); ?> <li><br><hr></li> <?php tpl_action('admin', 1, 'li', 0, '<span>', '</span>'); tpl_action('profile', 1, 'li', 0, '<span>', '</span>'); tpl_action('recent', 1, 'li', 0, '<span>', '</span>'); tpl_action('media', 1, 'li', 0, '<span>', '</span>');
if (strpos(tpl_getConf('elements'), 'header_topbar_links') !== false) { ?> <div id="mixture__topbar_links" class="col-1 sm-display-none container items-center justify-center"> <ul class="container items-center justify-center"> <li class="has-dropdown"><a href="#" class="btn btn-xs radius background-color-info color-auto"><?php echo _mixture_glyph("link"); echo _mixture_glyph("has-dropdown"); ?> </a> <?php echo _mixture_topbar_links($topbar, 'dropdown'); ?> </li> <li class="has-overlay"> <label class="btn btn-xs radius background-color-info color-auto" for="mixture__links_overlay_check" title="<?php echo tpl_getLang('relatedLinks'); ?> "><?php echo _mixture_glyph("link"); ?> </label><input type="checkbox" id="mixture__links_overlay_check" class="js-modal-check" /> <div id="mixture__links_overlay" class="mixture-overlay"> <div class="container full-width"> <div class="modal col-11 col-xs-9 col-sm-7 col-md-5 col-lg-3 container full-width"> <label for="mixture__links_overlay_check" class="btn btn-sm radius background-color-info color-white"><?php echo _mixture_glyph("close", "close"); ?> </label> <?php echo _mixture_topbar_links($topbar, 'modal'); ?>
</ul> </div><!-- /inner-inner --> </div><!-- /inner-wrapper --> <div class="corner-bottom"><div class="corner-bottom-right corner"></div><div class="corner-bottom-left corner"></div></div> </div><!-- /inner --> </div><!-- /block --> <?php endif ?> <?php if ($conf['useacl'] && $showTools): ?> <div class="block block-user odd first last fusion-bold-links marina-rounded-corners marina-title-green grid16-16" id="block-user-2"> <div class="inner"> <div class="corner-top"><div class="corner-top-right corner"></div><div class="corner-top-left corner"></div></div> <div class="inner-wrapper"> <div id="dokuwiki__usertools" class="inner-inner" style="border: medium none; position: relative;"> <div class="block-icon pngfix"></div> <!-- USER TOOLS --> <h2 class="title block-title a11y"><?php echo tpl_getLang('user_tools') ?></h2> <ul class="menu"> <?php if ($_SERVER['REMOTE_USER']): ?> <li class="user"> <?php tpl_userinfo(); ?> </li> <?php endif ?> <?php tpl_action('admin', 1, 'li'); _tpl_action('userpage', 1, 'li'); tpl_action('profile', 1, 'li'); _tpl_action('register', 1, 'li'); /* DW versions > 2011-02-20 can use the core function tpl_action('register', 1, 'li') */ tpl_action('login', 1, 'li'); ?> </ul> </div><!-- /inner-inner -->
?> <ul class="nav navbar-nav"> <?php if ($fluidContainerBtn) { ?> <li class="hidden-xs<?php echo bootstrap3_fluid_container_button() ? ' active' : ''; ?> "> <a href="#" class="fluid-container" title="<?php echo tpl_getLang('expand_container'); ?> "><i class="fa fa-fw fa-arrows-alt"></i><span class="hidden-lg hidden-md hidden-sm"> <?php echo tpl_getLang('expand_container'); ?> </span></a> </li> <?php } ?> <?php if (empty($_SERVER['REMOTE_USER'])) { ?> <li> <span class="dw__actions"> <?php echo bootstrap3_action_item('register', 'fa fa-fw fa-user-plus', true); if ($showLoginLink) {
<li class="dropdown" id="custom"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> Custom Dropdown<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="./wiki:syntax">Templar Dokuwiki Syntax</a></li> <li><a href="./wiki:sidebar">Sidebar Page</a></li> </ul> </li> <li class="dropdown" id="dokuwiki__sitetools"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo tpl_getLang('site_tools'); ?> <b class="caret"></b></a> <ul class="dropdown-menu"> <?php tpl_action('recent', 1, 'li'); tpl_action('media', 1, 'li'); tpl_action('index', 1, 'li'); ?> </ul> </li>
/** * 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; } }
/** * Add Bootstrap classes in DokuWiki Content * * @author Giuseppe Di Terlizzi <*****@*****.**> * * @param string $content from tpl_content() * @return string * */ function bootstrap3_content($content) { global $ACT; global $INPUT; // Search Hit $content = str_replace('<span class="search_hit">', '<span class="mark">', $content); // Tabs (Extension Manager) $content = str_replace('<ul class="tabs">', '<ul class="nav nav-tabs">', $content); // Page Heading (<h[1-2]>) $content = preg_replace('/<h([1-2]) id="(.*)">/', '<h$1 class="page-header" id="$2">', $content); $content = preg_replace('/<h([1-2]) class="(.*)" id="(.*)">/', '<h$1 class="$2 page-header" id="$3">', $content); $content = preg_replace('/<h([1-2])>/', '<h$1 class="page-header">', $content); // Media Images $content = preg_replace('/<img (.*) class="(media|medialeft|mediacenter|mediaright)"/', '<img $1 class="$2 img-responsive"', $content); // Alerts $content = str_replace('<div class="info">', '<div class="alert alert-info"><i class="fa fa-fw fa-info-circle"></i>', $content); $content = str_replace('<div class="error">', '<div class="alert alert-danger"><i class="fa fa-fw fa-times-circle"></i>', $content); $content = str_replace('<div class="success">', '<div class="alert alert-success"><i class="fa fa-fw fa-check-circle"></i>', $content); $content = str_replace(array('<div class="notify">', '<div class="msg notify">'), '<div class="alert alert-warning"><i class="fa fa-fw fa-warning"></i>', $content); // Configuration Manager Template Sections if ($ACT == 'admin' && $INPUT->str('page') == 'config') { $admin_sections = array('theme' => array('bootstrapTheme', 'fa-tint'), 'sidebar' => array('sidebarPosition', 'fa-columns'), 'navbar' => array('inverseNavbar', 'fa-navicon'), 'semantic' => array('semantic', 'fa-share-alt'), 'layout' => array('fluidContainer', 'fa-desktop'), 'toc' => array('tocAffix', 'fa-list'), 'discussion' => array('showDiscussion', 'fa-comments'), 'cookie_law' => array('showCookieLawBanner', 'fa-legal'), 'google_analytics' => array('useGoogleAnalytics', 'fa-google'), 'browser_title' => array('browserTitle', 'fa-header'), 'page' => array('showPageInfo', 'fa-file')); foreach ($admin_sections as $section => $items) { $search = $items[0]; $icon = $items[1]; $content = preg_replace('/<tr(.*)>\\s+<td(.*)>\\s+<span(.*)>(tpl»bootstrap3»' . $search . ')<\\/span>/', '</table></div></fieldset><fieldset id="bootstrap3__' . $section . '"><legend><i class="fa ' . $icon . '"></i> ' . tpl_getLang("config_{$section}") . '</legend><div class="table"><table class="inline"><tr$1><td$2><span$3>$4</span>', $content); } } // Revisions & Recents if ($ACT == 'revisions' || $ACT == 'recent') { $search = array('class="sizechange positive"', 'class="sizechange negative"', 'class="minor"'); $replace = array('class="sizechange positive label label-success"', 'class="sizechange negative label label-danger"', 'class="minor text-muted"'); $content = str_replace($search, $replace, $content); } // Difference if ($ACT == 'diff') { $btn_default = 'btn btn-default fa'; $search = array('class="diff-deletedline"', 'class="diff-addedline', 'class="diffprevrev', 'class="diffnextrev', 'class="diffbothprevrev', 'class="minor"'); $replace = array('class="diff-deletedline bg-danger text-danger"', 'class="diff-addedline bg-success text-success"', "class=\"diffprevrev {$btn_default} fa-angle-left\"", "class=\"diffnextrev {$btn_default} fa-angle-right\"", "class=\"diffbothprevrev {$btn_default} fa-angle-double-left\"", 'class="minor text-muted"'); $content = str_replace($search, $replace, $content); } // Tables $table_classes = 'table'; foreach (bootstrap3_conf('tableStyle') as $class) { if ($class == 'responsive') { $content = str_replace('<div class="table', '<div class="table table-responsive', $content); } else { $table_classes .= " table-{$class}"; } } $content = preg_replace('/<table(.*)class="(inline|import_failures)"(.*)>/', sprintf('<table$1class="$2 %s"$3>', $table_classes), $content); $content = str_replace('<div class="table ', '<div class="', $content); return $content; }
<div class="search-form widget"> <?php tpl_searchform(); ?> </div> <?php if (page_findnearest('topnav')) { ?> <nav id="writr__site-navigation" class="main-navigation" role="navigation"> <h3 class="menu-toggle genericon genericon-menu" title="<?php echo tpl_getLang('menu'); ?> "> <span class="a11y"><?php echo tpl_getLang('menu'); ?> </span> </h3> <div class="a11y skip-link"> <a href="#writr__content"><?php echo $lang['skip_to_content']; ?> </a> </div> <?php tpl_include_page('topnav', 1, 1); ?> </nav><!-- #writr__site-navigation --> <?php }
/** * PRINT MIXTURE LOGO AS A LINK TO IT'S OFFICIAL PAGE AND A LINK TO IT'S GITHUB REPOSITORY */ function _mixture_about() { global $INFO; $githubTarget = "https://github.com/geekitude/dokuwiki-template-mixture"; $about = '<a href="https://www.dokuwiki.org/template:mixture" title="' . tpl_getLang('about') . '"><img id="mixture__logo" src="/lib/tpl/mixture/images/juicedmixturelogomini.png" alt="*mixture template logo*"></a>'; $about .= '<a href="' . $githubTarget . '" title="Github"><i class="fa fa-github footer-fa"></i></a>'; print $about; }
</div> <?php } ?> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <div id="dokuwiki__footer"><div class="pad"> <!-- USER TOOLS --> <?php if ($conf['useacl'] && $showTools) { ?> <div id="dokuwiki__usertools"> <h3 class="a11y"><?php echo tpl_getLang('user_tools'); ?> </h3> <ul> <?php /* the optional second parameter of tpl_action() switches between a link and a button, e.g. a button inside a <li> would be: tpl_action('edit',0,'li') */ if ($_SERVER['REMOTE_USER']) { echo '<li class="user">'; tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } tpl_action('admin', 1, 'li'); _tpl_action('userpage', 1, 'li'); tpl_action('profile', 1, 'li');
echo ' <div class="clear"><!-- --></div> <div id="footer-container"> <div class="spacer"><!-- --></div> <div id="footer"> <div id="footer-corner"><!-- --></div> <div id="footer-text"> <div id="footer-content"> <a href="#top" class="footer-right"><img src="' . DOKU_URL . '/lib/tpl/dokukit/images/totop.png" style="margin-top:6px" title="Nach oben" /></a> </div> </div> </div> <div id="owner"> <span id="owner-text" style="float:right; margin-right:31px">'; if ($ACT != 'diff' && $ACT != 'edit' && $ACT != 'preview' && $ACT != 'admin' && $ACT != 'login' && $ACT != 'logout' && $ACT != 'profile' && $ACT != 'revisions') { _tpl_pageinfo(); } echo ' </span> <span id="owner-text">' . tpl_getLang('kitfooter') . '</span> </div>'; /* provide DokuWiki housekeeping, required in all templates */ if ($_SERVER['REMOTE_USER']) { tpl_indexerWebBug(); } echo ' </div> </div> </div> </body> </html>';