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 15*cc57aeb6Snicolasprigent 16*cc57aeb6Snicolasprigent /** 17*cc57aeb6Snicolasprigent * Go bottom button 18*cc57aeb6Snicolasprigent */ 19*cc57aeb6Snicolasprigent 20*cc57aeb6Snicolasprigent public static function html_bottombtn() { 21*cc57aeb6Snicolasprigent global $lang; 22*cc57aeb6Snicolasprigent 23*cc57aeb6Snicolasprigent return '<a class="nolink" href="#dokuwiki__bottom">' 24*cc57aeb6Snicolasprigent .'<button class="button" onclick="window.scrollTo(0, 0)" title="'. $lang['btn_bottom'] .'">' 25*cc57aeb6Snicolasprigent . $lang['btn_bottom'] 26*cc57aeb6Snicolasprigent .'</button></a>'; 27*cc57aeb6Snicolasprigent } 28*cc57aeb6Snicolasprigent 29*cc57aeb6Snicolasprigent 30*cc57aeb6Snicolasprigent public static function tpl_aclinfo() { 31*cc57aeb6Snicolasprigent global $ID, $AUTH_ACL; 32*cc57aeb6Snicolasprigent 33*cc57aeb6Snicolasprigent if (auth_quickaclcheck($ID) == 0) 34*cc57aeb6Snicolasprigent return; // no rights to view, no rights to get this info 35*cc57aeb6Snicolasprigent 36*cc57aeb6Snicolasprigent $page_acls = array(); 37*cc57aeb6Snicolasprigent $namespaces = array(); 38*cc57aeb6Snicolasprigent 39*cc57aeb6Snicolasprigent $ns = getNS($ID); 40*cc57aeb6Snicolasprigent while ($ns) { 41*cc57aeb6Snicolasprigent array_unshift($namespaces,$ns . ':*'); 42*cc57aeb6Snicolasprigent $ns = getNS($ns); 43*cc57aeb6Snicolasprigent } 44*cc57aeb6Snicolasprigent array_unshift($namespaces,'*'); // root 45*cc57aeb6Snicolasprigent 46*cc57aeb6Snicolasprigent $namespaces[] = $ID; 47*cc57aeb6Snicolasprigent 48*cc57aeb6Snicolasprigent // check matches 49*cc57aeb6Snicolasprigent foreach ($namespaces as $level) { 50*cc57aeb6Snicolasprigent $matches = preg_grep('/^'.preg_quote($level,'/').'\s+\S+\s+\d+\s*$/',$AUTH_ACL); 51*cc57aeb6Snicolasprigent $this_acls = array(); 52*cc57aeb6Snicolasprigent foreach($matches as $match){ 53*cc57aeb6Snicolasprigent $match = preg_replace('/#.*$/','',$match); //ignore comments 54*cc57aeb6Snicolasprigent $acl = preg_split('/\s+/',$match); 55*cc57aeb6Snicolasprigent $this_acls[urldecode($acl[1])] = $acl[2]; 56*cc57aeb6Snicolasprigent if ($acl[1] == "@ALL") // overwrites stuff from upper level 57*cc57aeb6Snicolasprigent $page_acls = array(); 58*cc57aeb6Snicolasprigent } 59*cc57aeb6Snicolasprigent $page_acls = array_merge($page_acls,$this_acls); 60*cc57aeb6Snicolasprigent } 61*cc57aeb6Snicolasprigent 62*cc57aeb6Snicolasprigent // check if visible to everyone: 63*cc57aeb6Snicolasprigent if (($page_acls['@ALL'] !== false) && $page_acls['@ALL'] > 0) 64*cc57aeb6Snicolasprigent return; // page is visible to everyone 65*cc57aeb6Snicolasprigent 66*cc57aeb6Snicolasprigent $return = ""; 67*cc57aeb6Snicolasprigent 68*cc57aeb6Snicolasprigent $list = array(); 69*cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 70*cc57aeb6Snicolasprigent if ($right > 0 && $user != "@admin" ) // admins can see everything 71*cc57aeb6Snicolasprigent array_push($list,$user); 72*cc57aeb6Snicolasprigent } 73*cc57aeb6Snicolasprigent if (count($list)) { 74*cc57aeb6Snicolasprigent sort($list); 75*cc57aeb6Snicolasprigent $return = "(page visible to: "; 76*cc57aeb6Snicolasprigent $return .= join(', ',$list); 77*cc57aeb6Snicolasprigent $return .= ")"; 78*cc57aeb6Snicolasprigent } 79*cc57aeb6Snicolasprigent 80*cc57aeb6Snicolasprigent // Uncomment this, if you want to display users/groups who cannot access this page, too: 81*cc57aeb6Snicolasprigent $list = array(); 82*cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 83*cc57aeb6Snicolasprigent if ($right == 0) 84*cc57aeb6Snicolasprigent array_push($list,$user); 85*cc57aeb6Snicolasprigent } 86*cc57aeb6Snicolasprigent if (count($list)) { 87*cc57aeb6Snicolasprigent sort($list); 88*cc57aeb6Snicolasprigent $return .= "(page hidden to: "; 89*cc57aeb6Snicolasprigent $return .= join(', ',$list); 90*cc57aeb6Snicolasprigent $return .= ")"; 91*cc57aeb6Snicolasprigent } 92*cc57aeb6Snicolasprigent 93*cc57aeb6Snicolasprigent return $return; 94*cc57aeb6Snicolasprigent } 956d5babb2Snicolasprigent} 96