16d5babb2Snicolasprigent<?php 26d5babb2Snicolasprigent 36d5babb2Snicolasprigentclass Kiwiki_Functions { 46d5babb2Snicolasprigent 56d5babb2Snicolasprigent public static function _edit_icon($what, $usergroup, $action){ 66d5babb2Snicolasprigent $output = ""; 76d5babb2Snicolasprigent if (isset($usergroup)){ 86d5babb2Snicolasprigent if (in_array('admin',$usergroup) && $action == 'show'){ 96d5babb2Snicolasprigent $output = '<a class="edit-this" href="doku.php?id=' . $what . '&do=edit">' . inlineSVG(KIWIKI_IMAGES_PATH . 'edit.svg') .'</a>'; 106d5babb2Snicolasprigent } 116d5babb2Snicolasprigent } 126d5babb2Snicolasprigent return $output; 136d5babb2Snicolasprigent } 146d5babb2Snicolasprigent 15cc57aeb6Snicolasprigent 16cc57aeb6Snicolasprigent /** 17cc57aeb6Snicolasprigent * Go bottom button 18cc57aeb6Snicolasprigent */ 19cc57aeb6Snicolasprigent 20cc57aeb6Snicolasprigent public static function html_bottombtn() { 21cc57aeb6Snicolasprigent global $lang; 22cc57aeb6Snicolasprigent 23cc57aeb6Snicolasprigent return '<a class="nolink" href="#dokuwiki__bottom">' 24cc57aeb6Snicolasprigent .'<button class="button" onclick="window.scrollTo(0, 0)" title="'. $lang['btn_bottom'] .'">' 25cc57aeb6Snicolasprigent . $lang['btn_bottom'] 26cc57aeb6Snicolasprigent .'</button></a>'; 27cc57aeb6Snicolasprigent } 28cc57aeb6Snicolasprigent 29477069bfSnicolasprigent /** 30477069bfSnicolasprigent * Custom ACL Informations in footer 31477069bfSnicolasprigent * Original code from Chris75 32477069bfSnicolasprigent * https://forum.dokuwiki.org/d/21636-acl-deny-a-user-group-to-a-namespace/13 33477069bfSnicolasprigent */ 34cc57aeb6Snicolasprigent 35*046cd792Snicolasprigent public static function tpl_aclinfo() { 36477069bfSnicolasprigent global $ID, $AUTH_ACL, $INFO; 37cc57aeb6Snicolasprigent 38477069bfSnicolasprigent if ((auth_quickaclcheck($ID) == 0) ||(!$INFO['editable'])) 39cc57aeb6Snicolasprigent return; // no rights to view, no rights to get this info 40cc57aeb6Snicolasprigent 41cc57aeb6Snicolasprigent $page_acls = array(); 42cc57aeb6Snicolasprigent $namespaces = array(); 43cc57aeb6Snicolasprigent 44cc57aeb6Snicolasprigent $ns = getNS($ID); 45cc57aeb6Snicolasprigent while ($ns) { 46cc57aeb6Snicolasprigent array_unshift($namespaces,$ns . ':*'); 47cc57aeb6Snicolasprigent $ns = getNS($ns); 48cc57aeb6Snicolasprigent } 49cc57aeb6Snicolasprigent array_unshift($namespaces,'*'); // root 50cc57aeb6Snicolasprigent 51cc57aeb6Snicolasprigent $namespaces[] = $ID; 52cc57aeb6Snicolasprigent 53cc57aeb6Snicolasprigent // check matches 54cc57aeb6Snicolasprigent foreach ($namespaces as $level) { 55cc57aeb6Snicolasprigent $matches = preg_grep('/^'.preg_quote($level,'/').'\s+\S+\s+\d+\s*$/',$AUTH_ACL); 56cc57aeb6Snicolasprigent $this_acls = array(); 57cc57aeb6Snicolasprigent foreach($matches as $match){ 58cc57aeb6Snicolasprigent $match = preg_replace('/#.*$/','',$match); //ignore comments 59cc57aeb6Snicolasprigent $acl = preg_split('/\s+/',$match); 60cc57aeb6Snicolasprigent $this_acls[urldecode($acl[1])] = $acl[2]; 61cc57aeb6Snicolasprigent if ($acl[1] == "@ALL") // overwrites stuff from upper level 62cc57aeb6Snicolasprigent $page_acls = array(); 63cc57aeb6Snicolasprigent } 64cc57aeb6Snicolasprigent $page_acls = array_merge($page_acls,$this_acls); 65cc57aeb6Snicolasprigent } 66cc57aeb6Snicolasprigent 67cc57aeb6Snicolasprigent // check if visible to everyone: 68477069bfSnicolasprigent /*if (($page_acls['@ALL'] !== false) && $page_acls['@ALL'] > 0) 69477069bfSnicolasprigent return; // page is visible to everyone*/ 70cc57aeb6Snicolasprigent 71cc57aeb6Snicolasprigent $list = array(); 72cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 73cc57aeb6Snicolasprigent if ($right > 0 && $user != "@admin" ) // admins can see everything 74cc57aeb6Snicolasprigent array_push($list,$user); 75cc57aeb6Snicolasprigent } 76cc57aeb6Snicolasprigent if (count($list)) { 77cc57aeb6Snicolasprigent sort($list); 78477069bfSnicolasprigent print "(page visible to: "; 79477069bfSnicolasprigent print join(', ',$list); 80477069bfSnicolasprigent print ")"; 81cc57aeb6Snicolasprigent } 82cc57aeb6Snicolasprigent 83cc57aeb6Snicolasprigent // Uncomment this, if you want to display users/groups who cannot access this page, too: 84cc57aeb6Snicolasprigent $list = array(); 85cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 86cc57aeb6Snicolasprigent if ($right == 0) 87cc57aeb6Snicolasprigent array_push($list,$user); 88cc57aeb6Snicolasprigent } 89cc57aeb6Snicolasprigent if (count($list)) { 90cc57aeb6Snicolasprigent sort($list); 91477069bfSnicolasprigent print "(page hidden to: "; 92477069bfSnicolasprigent print join(', ',$list); 93477069bfSnicolasprigent print ")"; 94cc57aeb6Snicolasprigent } 95cc57aeb6Snicolasprigent } 966d5babb2Snicolasprigent} 97