Это старая версия документа.


Доработка боковой панели sidebar

В версии DokuWiki от 2012-09-10 “Adora Belle” RC1 по умолчанию добавлена боковая панель. Содержимое панели хранится в файлах sidebar.txt по всему namespace, что позволяет панели быть контекстной. Недостаток дефолтовой панели - невозможность кастомизации по текущему пользователю и группам. Проблема решается доработкой файла inc/template.php:

До замены:

function tpl_sidebar($print = true) {
    global $conf;
 
    $sidebar = page_findnearest($conf['sidebar']);
    if($sidebar) return tpl_include_page($sidebar, $print);
    return '';
}

После замены:

function tpl_sidebar($print = true) {
    global $conf;
    global $INFO;
 
    $sidebar = page_findnearest($conf['sidebar']);
    $sidebaruser = page_findnearest("user:".$_SERVER['REMOTE_USER'].':'.$conf['sidebar']);
 
    $sidebarnew ="";
    if ($sidebar) $sidebarnew = $sidebarnew.tpl_include_page($sidebar, $print);
    foreach($INFO['userinfo']['grps'] as $grp) {
        $group_sb = "group".':'.$grp.':'.$conf['sidebar'];
        $sidebargroup = page_findnearest($group_sb);
        if ($sidebargroup) $sidebargroup = $sidebarnew.tpl_include_page($sidebargroup, $print);
    }
    if ($sidebaruser) $sidebarnew = $sidebarnew.tpl_include_page($sidebaruser, $print);
    return $sidebarnew;
}

Определение панелей для пользователей:
data/pages/user/<username>/sidebar.txt

Определение панелей для групп:
data/pages/group/<groupname>/sidebar.txt

Например, чтобы отредактировать панель пользователя jamis7005 набираем в браузере url: http://www.prom-auto.ru/wiki/doku.php?id=user:jamis7005:sidebar

dev/wiki/doku_sidebar_improvement.1347452337.txt.gz · Последние изменения: 2012/09/12 16:18 — jamis7005
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0