source: spip-zone/_plugins_/couteau_suisse/outils/autorisations_action_rapide.php @ 93315

Last change on this file since 93315 was 72718, checked in by patfr@…, 7 years ago

Oups, contrib.spip et non www.contrib.spip (Cédric)
+ Passage en UTF8 de certains fichiers par la même occasion

File size: 4.3 KB
Line 
1<?php
2
3#-----------------------------------------------------#
4#  Plugin  : Couteau Suisse - Licence : GPL           #
5#  Auteur  : Patrice Vanneufville, 2013               #
6#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net   #
7#  Infos : http://contrib.spip.net/?article2166       #
8#-----------------------------------------------------#
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11# Fichier de configuration pris en compte par config_outils.php et specialement dedie a la configuration des autorisations SPIP
12# -----------------------------------------------------------------------------------------------------------------------------
13
14// renvoie array($faire, $type, $id)
15function autorisations_parse($a) {
16        $a = explode(' ', trim(preg_replace(',\s+,',' ',preg_replace(',[^a-z0-9]+,i',' ',$a))), 3);
17        if(!$a[0] || is_integer($a[0])) return array(-1);
18        if(intval($a[2])) return array($a[0], $a[1], intval($a[2]));
19        if(intval($a[1])) return array('', $a[0], intval($a[1]));
20        return array($a[0], $a[1], 0);
21}
22
23function autorisations_action_rapide($actif) {
24        $res = $obj = $faire = array();
25        // les objets existants (SPIP>=3)
26        $objets = function_exists('lister_tables_objets_sql')?lister_tables_objets_sql():array();
27        // les fonctions disponibles
28        $arr = get_defined_functions(); $user = &$arr['user'];
29        unset($arr['user']['autoriser_dist']);
30        // les alias maison
31        $alias = function_exists('autorisations_liste')?autorisations_liste():array();
32        $nb_fonctions = $nb_surcharges = 0;
33        foreach ($user as $v) if(strncmp($v, 'autoriser_', 10)===0 && preg_match(',^(autoriser_(.*?))(_dist)?$,', $v, $reg)) {
34                $nb_fonctions++;
35                if(!$reg[3] && function_exists($reg[1].'_dist')) { $nb_surcharges++; continue; }
36                $sup = ($reg[3] && function_exists($reg[1]))?'<sup>(*)</sup>':'';
37                if(in_array($reg[1], $alias)) { $sp1='<span class="vert">'; $sp2="</span>"; } else $sp1 = $sp2 = '';
38                $tmp = explode('_', $reg[2], 2);
39                $table = table_objet_sql($tmp[0]);
40                if(in_array($tmp[1], array('menu','onglet','bouton'))) 
41                        $res['['.$tmp[1].']'][] = $sp1.$tmp[0].$sup.$sp2; 
42                elseif(strncmp($table, 'spip_', 5)===0)
43                        $faire[$tmp[1]?$tmp[1]:couteauprive_T('variable_vide')][] = $obj[$table][] = $tmp[1]?$sp1.$tmp[1].$sup.' '.$tmp[0].$sp2:"<span class='bleu'>$sp1$tmp[0]$sp2</span>"; 
44                elseif($tmp[1])
45                        $res[$tmp[0]][] = $sp1.$tmp[1].$sup.' '.$tmp[0].$sp2; 
46                else
47                        $res['[unique]'][] = $sp1.$tmp[0].$sup.$sp2; 
48        }
49        foreach($obj as $k=>$r) {
50                sort($r);
51                $t = $objets[$k]['texte_objets'];
52                $obj[$k] = '<li><b>'.(!$t?"[$k]":_T($t)).' : </b>'.join(', ', $r).'</li>';
53        }
54        foreach($res as $k=>$r) {
55                sort($r);
56                $res[$k] = "<li><b>$k : </b>".join(', ', $r).'</li>';
57        }
58        foreach($faire as $k=>$r) {
59                sort($r);
60                $faire[$k] = "<li><b>$k : </b>".join(', ', $r).'</li>';
61        }
62        sort($obj); sort($res); sort($faire);
63        return '<style>#cs_auth h3{cursor:pointer; margin:0.5em 0;} #cs_auth{margin:0 2em;} #cs_auth ul{margin:0 1em;} .vert{color:#2B2;} .bleu{color:#22B;}</style>
64<div id="cs_auth"><p>'
65                . couteauprive_T('autorisations_bilan', array('nb1'=>$nb_fonctions,'nb2'=>$nb_surcharges))
66                . '</p><h3>1. '.couteauprive_T('autorisations_titre1', array('nb'=>count($obj))).'<span id="auth_1" class="cs_hidden"> (...)</span></h3><ul>'
67                . join('', $obj)
68                . '</ul><h3>2. '.couteauprive_T('autorisations_titre2', array('nb'=>count($faire))).'<span id="auth_2" class="cs_hidden"> (...)</span></h3><ul>'
69                . join(' ', $faire)
70                . '</ul><h3>3. '.couteauprive_T('autorisations_titre3', array('nb'=>count($res))).'<span id="auth_3" class="cs_hidden"> (...)</span></h3><ul>'
71                . join('', $res)
72                . '</ul>'.($nb_surcharges?'<p><sup>(*)</sup> '.couteauprive_T('autorisations_surcharge').'</p>':'') 
73                . '</div>' . bouton_actualiser_action_rapide() . http_script("
74jQuery(document).ready(function() {
75        jQuery('#cs_auth h3').click( function() {
76                var span = jQuery('span', this);
77                if(!span.length) return true;
78                jQuery(this).next().toggleClass('cs_hidden');
79                cs_EcrireCookie(span[0].id, '+'+span[0].className, dixans);
80                span.toggleClass('cs_hidden');
81                return false; // annulation du clic
82        }).each(autorisations_lire_cookie);
83
84function autorisations_lire_cookie(i,e){
85        var span = jQuery('span', this);
86        if(!span.length) return;
87        var c = cs_LireCookie(span[0].id);
88        if(c==null || c.match('cs_hidden')) {
89                jQuery(this).next().addClass('cs_hidden');
90                span.removeClass('cs_hidden');
91        }
92}
93});");
94}
95
96?>
Note: See TracBrowser for help on using the repository browser.