16d5babb2Snicolasprigent<?php 26d5babb2Snicolasprigent 36d5babb2Snicolasprigentclass Kiwiki_Functions { 46d5babb2Snicolasprigent 56d5babb2Snicolasprigent public static function _edit_icon($what, $usergroup, $action){ 6*f155da6aSAzurCrystal global $conf; 76d5babb2Snicolasprigent $output = ""; 86d5babb2Snicolasprigent if (isset($usergroup)){ 985a7f8d0Snicolasprigent if ((auth_quickaclcheck($USERINFO['id']) > AUTH_READ) && $action == 'show'){ 10*f155da6aSAzurCrystal if ($conf['userewrite'] && $conf['useslash']) { 11*f155da6aSAzurCrystal $pagename = end(explode (":", $what)); 12*f155da6aSAzurCrystal $output = '<a class="edit-this" href="' . $pagename . '?do=edit">' . inlineSVG(KIWIKI_IMAGES_PATH . 'edit.svg') .'</a>'; 13*f155da6aSAzurCrystal } else { 146d5babb2Snicolasprigent $output = '<a class="edit-this" href="doku.php?id=' . $what . '&do=edit">' . inlineSVG(KIWIKI_IMAGES_PATH . 'edit.svg') .'</a>'; 156d5babb2Snicolasprigent } 166d5babb2Snicolasprigent } 17*f155da6aSAzurCrystal } 186d5babb2Snicolasprigent return $output; 196d5babb2Snicolasprigent } 206d5babb2Snicolasprigent 21cc57aeb6Snicolasprigent 22cc57aeb6Snicolasprigent /** 23cc57aeb6Snicolasprigent * Go bottom button 24cc57aeb6Snicolasprigent */ 25cc57aeb6Snicolasprigent 26cc57aeb6Snicolasprigent public static function html_bottombtn() { 27cc57aeb6Snicolasprigent global $lang; 28cc57aeb6Snicolasprigent 29cc57aeb6Snicolasprigent return '<a class="nolink" href="#dokuwiki__bottom">' 30cc57aeb6Snicolasprigent .'<button class="button" onclick="window.scrollTo(0, 0)" title="'. $lang['btn_bottom'] .'">' 31cc57aeb6Snicolasprigent . $lang['btn_bottom'] 32cc57aeb6Snicolasprigent .'</button></a>'; 33cc57aeb6Snicolasprigent } 34cc57aeb6Snicolasprigent 35477069bfSnicolasprigent /** 36477069bfSnicolasprigent * Custom ACL Informations in footer 37477069bfSnicolasprigent * Original code from Chris75 38477069bfSnicolasprigent * https://forum.dokuwiki.org/d/21636-acl-deny-a-user-group-to-a-namespace/13 39477069bfSnicolasprigent */ 40cc57aeb6Snicolasprigent 41046cd792Snicolasprigent public static function tpl_aclinfo() { 42477069bfSnicolasprigent global $ID, $AUTH_ACL, $INFO; 43cc57aeb6Snicolasprigent 44477069bfSnicolasprigent if ((auth_quickaclcheck($ID) == 0) ||(!$INFO['editable'])) 45cc57aeb6Snicolasprigent return; // no rights to view, no rights to get this info 46cc57aeb6Snicolasprigent 47cc57aeb6Snicolasprigent $page_acls = array(); 48cc57aeb6Snicolasprigent $namespaces = array(); 49cc57aeb6Snicolasprigent 50cc57aeb6Snicolasprigent $ns = getNS($ID); 51cc57aeb6Snicolasprigent while ($ns) { 52cc57aeb6Snicolasprigent array_unshift($namespaces,$ns . ':*'); 53cc57aeb6Snicolasprigent $ns = getNS($ns); 54cc57aeb6Snicolasprigent } 55cc57aeb6Snicolasprigent array_unshift($namespaces,'*'); // root 56cc57aeb6Snicolasprigent 57cc57aeb6Snicolasprigent $namespaces[] = $ID; 58cc57aeb6Snicolasprigent 59cc57aeb6Snicolasprigent // check matches 60cc57aeb6Snicolasprigent foreach ($namespaces as $level) { 61cc57aeb6Snicolasprigent $matches = preg_grep('/^'.preg_quote($level,'/').'\s+\S+\s+\d+\s*$/',$AUTH_ACL); 62cc57aeb6Snicolasprigent $this_acls = array(); 63cc57aeb6Snicolasprigent foreach($matches as $match){ 64cc57aeb6Snicolasprigent $match = preg_replace('/#.*$/','',$match); //ignore comments 65cc57aeb6Snicolasprigent $acl = preg_split('/\s+/',$match); 66cc57aeb6Snicolasprigent $this_acls[urldecode($acl[1])] = $acl[2]; 67cc57aeb6Snicolasprigent if ($acl[1] == "@ALL") // overwrites stuff from upper level 68cc57aeb6Snicolasprigent $page_acls = array(); 69cc57aeb6Snicolasprigent } 70cc57aeb6Snicolasprigent $page_acls = array_merge($page_acls,$this_acls); 71cc57aeb6Snicolasprigent } 72cc57aeb6Snicolasprigent 73cc57aeb6Snicolasprigent // check if visible to everyone: 74477069bfSnicolasprigent /*if (($page_acls['@ALL'] !== false) && $page_acls['@ALL'] > 0) 75477069bfSnicolasprigent return; // page is visible to everyone*/ 76cc57aeb6Snicolasprigent 77cc57aeb6Snicolasprigent $list = array(); 78cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 79cc57aeb6Snicolasprigent if ($right > 0 && $user != "@admin" ) // admins can see everything 80cc57aeb6Snicolasprigent array_push($list,$user); 81cc57aeb6Snicolasprigent } 82cc57aeb6Snicolasprigent if (count($list)) { 83cc57aeb6Snicolasprigent sort($list); 84593242adSnicolasprigent print tpl_getLang('Visible to'); 85477069bfSnicolasprigent print join(', ',$list); 86cc57aeb6Snicolasprigent } 87cc57aeb6Snicolasprigent 88cc57aeb6Snicolasprigent // Uncomment this, if you want to display users/groups who cannot access this page, too: 89cc57aeb6Snicolasprigent $list = array(); 90cc57aeb6Snicolasprigent foreach ($page_acls as $user => $right) { 91cc57aeb6Snicolasprigent if ($right == 0) 92cc57aeb6Snicolasprigent array_push($list,$user); 93cc57aeb6Snicolasprigent } 94cc57aeb6Snicolasprigent if (count($list)) { 95cc57aeb6Snicolasprigent sort($list); 96593242adSnicolasprigent print " • "; 97593242adSnicolasprigent print tpl_getLang('Hidden to'); 98477069bfSnicolasprigent print join(', ',$list); 99cc57aeb6Snicolasprigent } 100cc57aeb6Snicolasprigent } 1016d5babb2Snicolasprigent} 102