DokuWiki

It's better when it's simple

User Tools

Site Tools


template:drupal_garland_blue

Drupal Garland Blue Template for Dokuwiki

Compatible with DokuWiki

2011-05-25; 2010-11-07; 2009-12-25c;

template Drupal Garland Theme adapted for DokuWiki (in blue), internals based on the sidebar_theme.

Last updated on
2010-10-22
Repository
Source

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Extension name contains underscore, will not generate popularity points.

Tagged with blue, drupal, garland

By Mirko Windhoff

I adapted sidebar_theme and styled it like the Drupal Garland Theme and with blue color.

This theme shows the content of the following special named pages at the left, right and top:

  • top_navigation (displayed at the top)
  • default_sidebar_left (displayed at left)
  • default_sidebar_right (displayed at right)
  • <page>_sidebar_left (displayed only for <page> at left instead of the default_sidebar_left)
  • <page>_sidebar_right (displayed only for <page> at right instead of the default_sidebar_right)
  • <namespace>_sidebar_left (displayed for all pages of <namespace> at left, if no page with the same name exists)
  • <namespace>_sidebar_right (displayed for all pages of <namespace> at right, if no page with the same name exists)

In top_navigation you should use a bullet list of links, to create the navigation. You could create page specific top navigations too, if you adapt the tpl_functions.php a little bit.

All credits for the design go to Drupal.

:-D New color configurator for this theme available (beta)

Download and Install

You can download the theme here (both always latest version from svn):

As root you can execute the following to install it (adapt the path):

cd /var/www/dokuwiki/lib/tpl && wget -O- http://mirko.windhoff.net/drupal-garland-blue.tar.gz | tar -xzvf -

For details refer to template on how to install and use templates in DokuWiki.

Alternatively you can obtain it through subversion:

cd /var/www/dokuwiki/lib/tpl/
svn checkout http://garlanddokuwiki.googlecode.com/svn/trunk/drupal-garland-blue drupal-garland-blue

Development

:!: If you want to contribute/improve the theme, I'm glad to apply your patches/grant write access to the subversion repository at Google Code.

Recent Changes: http://code.google.com/p/garlanddokuwiki/source/list

Sites using this Template

Add your site here, if you want:

Comments?

Feel free to leave comments here.

  • jgelukjgeluk

    2012/06/20 16:45
    Great template! I added some code to tpl_sidebar() that checks the parent namespaces as well for <ns>_sidebar_left pages:
    /**
     * fetches the sidebar-pages and displays the sidebar
     */
    function tpl_sidebar($side='left') {
        global $ID, $REV, $INFO, $lang;
     
        $svID  = $ID;
        $svREV = $REV;
     
        $page_sidebar_name = $ID.'_'.tpl_getConf('sidebar_pagename').'_'.$side;
        $default_sidebar_name = tpl_getConf('default_'.$side.'sidebar_name');
     
        foreach (array_reverse(explode(':', getNS($ID))) as $namespace) {
            $namespace_sidebar_name = $namespace.'_'.tpl_getConf('sidebar_pagename').'_'.$side;
            if (file_exists(wikiFN($namespace_sidebar_name))) {
                 break;
            }
        }
     
        if (file_exists(wikiFN($page_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($page_sidebar_name).'</div>';
        elseif (file_exists(wikiFN($namespace_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($namespace_sidebar_name).'</div>';
        elseif (file_exists(wikiFN($default_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($default_sidebar_name).'</div>';
        else
            echo '&nbsp;';
     
        $ID = $svID;
        $REV = $svREV;
     
    }
     
  • Mar 22 2012 Apart from the entry below, there are further modifications necessary in …/tpl/drupal-garland-theme/style.ini :
    ../default/_fileuploader.css = screen
    ../default/_tabs.css         = screen
  • Dec 29 2011 m [dot] mccarn [at] aicr [dot] org
    I had to add the following line to …/tpl/drupal-garland-theme/style.ini to support the new full-screen uploader:
     ../default/_mediamanager.css = screen
  • Many thanks - I love it. Gerard.
  • Beautiful! Thanks! - Joe
  • Great template. - Kai … and for other newbies like me: To get top- left- and right-navigation create pages with bullet lists in the root of your namespace named top_navigation / default_sidebar_left / default_sidebar_right =)
  • Wonderful! GRH
  • Good template!
  • Very nice template: Two suggestion:
    • Include some default top_navigation and default_sidebar_left pages with some dummy links.
    • In some places of your code, e.g. in conf/default.php you use the short <? tag instead of the full <?php tag. some strict settings don't like that.
  • I think this is a great template - but I had to fix a couple of issues: The <? issue mentioned above, and two comments in main.php that used the <? … ?> syntax. I replaced them with <!– <div class=“pagename”><php tpl_link(wl($ID,'do=backlink'),tpl_pagetitle($ID,true))></div> –> and <!– /* Remove this invisible link if it bothers you. */ –> and now everything is working fine. This in on a Windows/IIS machine using FastCGI in case that matters ;-)
    • Thank you for reporting the “<?php” issue. This is now fixed. Conserning the “Include some default pages” part: They are included, but normally these pages don't exist and have to be filled by the user. One could create and fill them with dummy content, but a template should not create pages I think. — Mirko Windhoff 01/02/2011
  • Very nice template.
    There is an issue with the TOC, though. If a page is so simple that it has no TOC, or when visiting configuration page, the TOC that is shown for the page is the TOC of the sidebar (if it has one). I found how to prevent this. in file tpl_functions.php, function tpl_sidebar should save and restore the global $TOC var. The following code works for me
    /**
     * fetches the sidebar-pages and displays the sidebar
     */
    function tpl_sidebar($side='left') {
        global $ID, $REV, $TOC, $INFO, $lang;
     
        $svID  = $ID;
        $svREV = $REV;
        $svTOC = $TOC;
     
        $page_sidebar_name = $ID.'_'.tpl_getConf('sidebar_pagename').'_'.$side;
        $namespace_sidebar_name = $INFO['namespace'].'_'.tpl_getConf('sidebar_pagename').'_'.$side;
        $default_sidebar_name = tpl_getConf('default_'.$side.'sidebar_name');
     
        if (file_exists(wikiFN($page_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($page_sidebar_name).'</div>';
        elseif (file_exists(wikiFN($namespace_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($namespace_sidebar_name).'</div>';
        elseif (file_exists(wikiFN($default_sidebar_name)))
            echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($default_sidebar_name).'</div>';
        else
            echo ' ';
     
        $ID = $svID;
        $REV = $svREV;
        $TOC = $svTOC;
    }

    schplurtzschplurtz

    2011/02/07 13:46

  • Very great template ! thank you.
    I encountered a problem with long <code> or <file> that “overflow” the main page. The result is not very nice. Here is a capture from http://windhoff.net/wiki/playground/playground?&#long_code_overflow . Can you help fix this?
    chtilandchtiland

    2011-04-22
    • @schplurtz : Try to use plugin jquery-syntax, this solve this problem for me ;-)
      • seems to be a nice tip, have to try it — Mirkomw0

        2011/06/06 23:25

I put a logo instead of a text into the title of the wiki.
for this example: upload your logo to the media root as logo.gif and
put this code into the inputbox of the admin-configuration - Basic Settings - title - Wiki title

<span><div style="position:absolute; top:3px; left:0px; margin: 0px; padding: 10px;  background-color: #ffffff;"><IMG src="http://domain.com/lib/exe/fetch.php?media=logo.gif" height=60> </div></span> 
new code for sidebar and header

i rewrote the sidebar and header/top function.
now you can place the sidebar-files out of the root e.g. to :wiki:navi
all sidebar-files will be placed there now.
also is it possible to create a sidebar for the next sublevels too. it will search the deepest match of a sidebar using namespace and pagename.
sidebar and header are handelt identically now.
it will look if the users rights are good for reading.

oh-markoh-mark

2011/06/24

  • replace in the main.php p_sidebar_xhtml('top_navigation') with tpl_sidebar('top') (line ~39)
    <?php // echo p_sidebar_xhtml('top_navigation')?>
    <?php echo tpl_sidebar('top')?>
  • replace conf/metadata.php
metadata.php
<?php
$meta['sidebar_namespace'] = array('string'); /** added by mark **/
$meta['sidebar_pagename'] = array('string');
$meta['no_creation_message'] = array('onoff'); /** added by mark **/
?>
  • replace conf/default.php
default.php
<?php
$conf['sidebar_namespace'] = 'wiki:navi'; /** added by mark **/
$conf['sidebar_pagename'] = 'sidebar';
$conf['no_creation_message'] = false; /** added by mark **/
?>

modify the file tpl_functions.php (line ~15-37)

/**
 * fetches the sidebar-pages and displays the sidebar
 *
 * mod by Mark
 */
function tpl_sidebar($side='left') {
    global $ID, $REV, $INFO, $lang, $TOC;
 
    $svID  = $ID;
    $svREV = $REV;
    $svTOC = $TOC;
 
    $sidebar_namespace = preg_replace('/\:+/', ':', preg_replace(array('/:/','/\//','/\\\/'), ':', ':'.tpl_getConf('sidebar_namespace').':' )); /** added by mark **/
      $i=count(explode(":", $ID));
      for($i; $i>0; $i--){
        $namespaces=explode(":", $ID,$i);
        $ns='';
        foreach($namespaces as $n){
          $ns.=(!$ns=='') ? '_'.$n : $n;
          // echo auth_quickaclcheck(str_replace('_',':',$ns));
          if(auth_quickaclcheck(str_replace('_',':',$ns)) >= AUTH_READ) {
            $ID=$svID; /** clean id **/
            $nsp=$ns.'_'.tpl_getConf('sidebar_pagename').'_'.$side;
            if (page_exists($sidebar_namespace.$nsp)) $namespace_sidebar_name=$sidebar_namespace.$nsp;
          }
        }
        $i=($namespace_sidebar_name)?'-1':$i; /* if deepest sidebar found exit */
      }
    /** if no special sidebar found define default **/
    if (!$namespace_sidebar_name) $namespace_sidebar_name = $sidebar_namespace.tpl_getConf('sidebar_pagename').'_'.$side ; /** mod by mark **/
    if (page_exists($namespace_sidebar_name)) {
        echo '<div class="'.$side.'bar">'.p_sidebar_xhtml($namespace_sidebar_name).'</div>';
    } else {
        echo '<div class="'.$side.'bar">';
        if (tpl_getConf('no_creation_message')) echo '<b>no page defined!</b> click to create one or deactivete this message in the admin config'.p_sidebar_xhtml($namespace_sidebar_name).'</div>';
        /* print nothing if not defined */
        echo '&nbsp;';    
    }
 
    $ID = $svID;
    $REV = $svREV;
    $TOC = $svTOC; /** fix from schplurtz 2011/02/07 13:46 **/
}
Dokuwiki 2013-12-08

The TOC in sidebar has been broken on mine since Dokuwiki 2012-01-25 even with these changes. Oh well.

This new version breaks this theme. Need to create the template.info.txt file. I put the following in it:

base    drupal-garland-blue
author  Mirko Windhoff
email   mirki.windhoff@mirko.windhoff.net
date    2010-10-22
name    Drupal Garland Blue
desc    Drupal Garland Blue Theme for Dokuwiki
url     http://mirko.windhoff.net/
template/drupal_garland_blue.txt · Last modified: 2014-01-13 21:38 by 67.79.28.227