Доработка боковой панели sidebar “Adora Belle” RC1

В версии 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);
 
    if ($INFO['userinfo']['name'] != "") {                                                                                                                                                
      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