diff --git a/inc/html.php b/inc/html.php index 8c555bbbe53f5d8f1b1d11b534f906454e2e2fa5..72af8f18a07db12c82be6dedee7062a998c21683 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1332,40 +1332,93 @@ function html_debug(){ print '</body></html>'; } +/** + * List available Administration Tasks + * + * @author Andreas Gohr <andi@splitbrain.org> + * @author HÃ¥kan Sandell <hakan.sandell@home.se> + */ function html_admin(){ - global $ID; - global $INFO; - global $lang; - global $conf; - - print p_locale_xhtml('admin'); - - // build menu of admin functions from the plugins that handle them - $pluginlist = plugin_list('admin'); - $menu = array(); - foreach ($pluginlist as $p) { - if($obj =& plugin_load('admin',$p) === NULL) continue; - - // check permissions - if($obj->forAdminOnly() && !$INFO['isadmin']) continue; - - $menu[] = array('plugin' => $p, - 'prompt' => $obj->getMenuText($conf['lang']), - 'sort' => $obj->getMenuSort() - ); - } + global $ID; + global $INFO; + global $lang; + global $conf; + global $auth; - usort($menu, 'p_sort_modes'); + // build menu of admin functions from the plugins that handle them + $pluginlist = plugin_list('admin'); + $menu = array(); + foreach ($pluginlist as $p) { + if($obj =& plugin_load('admin',$p) === NULL) continue; - // output the menu - ptln('<ul>'); + // check permissions + if($obj->forAdminOnly() && !$INFO['isadmin']) continue; - foreach ($menu as $item) { - if (!$item['prompt']) continue; - ptln(' <li><div class="li"><a href="'.wl($ID, 'do=admin&page='.$item['plugin']).'">'.$item['prompt'].'</a></div></li>'); - } + $menu[$p] = array('plugin' => $p, + 'prompt' => $obj->getMenuText($conf['lang']), + 'sort' => $obj->getMenuSort() + ); + } - ptln('</ul>'); + print p_locale_xhtml('admin'); + + // Admin Tasks + if($INFO['isadmin']){ + ptln('<ul class="admin_tasks">'); + + if($auth && $auth->canDo('getUsers')){ + ptln(' <li class="admin_usermanager"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'usermanager')).'">'. + $menu['usermanager']['prompt'].'</a></div></li>'); + } + unset($menu['usermanager']); + + ptln(' <li class="admin_acl"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'acl')).'">'. + $menu['acl']['prompt'].'</a></div></li>'); + unset($menu['acl']); + + ptln(' <li class="admin_plugin"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'plugin')).'">'. + $menu['plugin']['prompt'].'</a></div></li>'); + unset($menu['plugin']); + + ptln(' <li class="admin_config"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'config')).'">'. + $menu['config']['prompt'].'</a></div></li>'); + unset($menu['config']); + } + ptln('</ul>'); + + // Manager Tasks + ptln('<ul class="admin_tasks">'); + + ptln(' <li class="admin_revert"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'revert')).'">'. + $menu['revert']['prompt'].'</a></div></li>'); + unset($menu['revert']); + + ptln(' <li class="admin_popularity"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'popularity')).'">'. + $menu['popularity']['prompt'].'</a></div></li>'); + unset($menu['popularity']); + + ptln('</ul>'); + + + // print the rest as sorted list + if(count($menu)){ + usort($menu, 'p_sort_modes'); + // output the menu + ptln('<div class="clearer"></div>'); + print p_locale_xhtml('adminplugins'); + ptln('<ul>'); + foreach ($menu as $item) { + if (!$item['prompt']) continue; + ptln(' <li><div class="li"><a href="'.wl($ID, 'do=admin&page='.$item['plugin']).'">'.$item['prompt'].'</a></div></li>'); + } + ptln('</ul>'); + } } /** diff --git a/inc/lang/en/adminplugins.txt b/inc/lang/en/adminplugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..3ec46cf4e4c7598a90e2b082526f7408f3b66112 --- /dev/null +++ b/inc/lang/en/adminplugins.txt @@ -0,0 +1,2 @@ +===== Additional Plugins ===== + diff --git a/lib/images/admin/README b/lib/images/admin/README new file mode 100644 index 0000000000000000000000000000000000000000..90bab95784b001e0fe0c72c66521e84bdf2ae710 --- /dev/null +++ b/lib/images/admin/README @@ -0,0 +1,2 @@ +These icons were taken from the nuvoX KDE icon theme and are GPL licensed +See http://www.kde-look.org/content/show.php/nuvoX?content=38467 diff --git a/lib/images/admin/acl.png b/lib/images/admin/acl.png new file mode 100644 index 0000000000000000000000000000000000000000..96fb4cd5643fd43141cf32f776f5b81d596f4d89 Binary files /dev/null and b/lib/images/admin/acl.png differ diff --git a/lib/images/admin/config.png b/lib/images/admin/config.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d376d853915ec231b6f95135cb8743478e87f9 Binary files /dev/null and b/lib/images/admin/config.png differ diff --git a/lib/images/admin/plugin.png b/lib/images/admin/plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..e2823bac78a00ec97e96bc4817aed6ed1dff37b1 Binary files /dev/null and b/lib/images/admin/plugin.png differ diff --git a/lib/images/admin/popularity.png b/lib/images/admin/popularity.png new file mode 100644 index 0000000000000000000000000000000000000000..4e22aaf0def484b2f5013ed715c8d73ea2fe828c Binary files /dev/null and b/lib/images/admin/popularity.png differ diff --git a/lib/images/admin/revert.png b/lib/images/admin/revert.png new file mode 100644 index 0000000000000000000000000000000000000000..002d3a75bfa7ce3f1dc14819c43877fc5e656947 Binary files /dev/null and b/lib/images/admin/revert.png differ diff --git a/lib/images/admin/usermanager.png b/lib/images/admin/usermanager.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c8dc6d64e1d03f10f0a9f4352c5a2386bd921c Binary files /dev/null and b/lib/images/admin/usermanager.png differ diff --git a/lib/tpl/default/_admin.css b/lib/tpl/default/_admin.css new file mode 100644 index 0000000000000000000000000000000000000000..9e61547bf31af4902d90570ca82a56e3c2f58838 --- /dev/null +++ b/lib/tpl/default/_admin.css @@ -0,0 +1,43 @@ + +.dokuwiki ul.admin_tasks { + font-size: 115%; + float: left; + width: 40%; + list-style-type: none; +} + +.dokuwiki ul.admin_tasks li { + line-height: 22px; + padding-left: 35px; + margin: 1em 0; + background: transparent none no-repeat scroll 0 0; + text-align: left; +} + +.dokuwiki ul.admin_tasks li div.li{ + font-weight: bold; +} + +.dokuwiki ul.admin_tasks li.admin_acl { + background-image: url(../../images/admin/acl.png); +} + +.dokuwiki ul.admin_tasks li.admin_usermanager { + background-image: url(../../images/admin/usermanager.png); +} + +.dokuwiki ul.admin_tasks li.admin_plugin { + background-image: url(../../images/admin/plugin.png); +} + +.dokuwiki ul.admin_tasks li.admin_config { + background-image: url(../../images/admin/config.png); +} + +.dokuwiki ul.admin_tasks li.admin_revert { + background-image: url(../../images/admin/revert.png); +} + +.dokuwiki ul.admin_tasks li.admin_popularity { + background-image: url(../../images/admin/popularity.png); +} diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini index 14ad5c6a1a68a843f2ed345debcced2c2f3a1d58..7631a34b72fc19116ba3d768da2b0560ae2f65ef 100644 --- a/lib/tpl/default/style.ini +++ b/lib/tpl/default/style.ini @@ -11,6 +11,7 @@ design.css = screen style.css = screen media.css = screen +_admin.css = screen rtl.css = rtl print.css = print