source: spip-zone/_plugins_/edition_directe/trunk/edition_directe_fonctions.php @ 63486

Last change on this file since 63486 was 63486, checked in by abelass@…, 8 years ago

Afficher l'icone de séléction uniquement pour les objets éditables, et seulement sur la page d'accueil.
Langues

File size: 1.9 KB
Line 
1<?php
2// teste si l'objet est en mode edition directe ou non
3function objets_edition_directe(){
4        include_spip('inc/config');
5        include_spip('inc/session');
6
7
8        // Récuperer la séléction des objets depuis la config
9        $objets=lire_config('edition_directe/objets');
10
11        //Récupère les préférence de l'auteur, pour émodifier le choix par défaut
12        $prefs=session_get('prefs');
13
14        // Apparament session_get  retourne suivantr le contenxte, un tableau serialisé, assuré qu'il ne soir pas sérialisé
15        if(!is_array($prefs))$prefs=unserialize($prefs);       
16       
17        // Sie rien n'est configuré, on se base sur les objets éditables a la séléction personelle de l'auteur
18        if(count($objets)<1){
19                $objets=lister_objets($prefs);
20                }
21        else{
22                //Sinon on prend les objets de la config, si l'auteur ne la pas désactivé
23                $objets2=array();
24                foreach($objets AS $objet){
25                if($prefs['edition_directe'][$objet]!='inactive')$objets2[]=$objet;
26                        }       
27                $objets=$objets2;
28                }
29        // Si l'auteur à activé des objets qui ne sont pas dans la configuration initiale, les prendre quand même en compte
30        if(is_array($prefs['edition_directe'])){
31                $objets_prefs=array();
32                foreach($prefs['edition_directe'] AS $o=>$pref){
33                        if($pref!='inactive')$objets_prefs[]=$o;
34                        }
35                $objets=array_merge($objets,$objets_prefs);
36                }
37               
38        //Pipeline
39        $pipeline= pipeline('edition_directe_controle',array(
40                    'args'=>array(
41                        'objet'=>$objet
42                    ), 
43                    'data'=>$objets
44                ));
45        return $objets;
46}
47
48       
49// Liste les objets disponible pour l'édition directe
50function lister_objets($prefs){
51        include_spip('base/objets');
52       
53        // Lister les objets éditables auf ceux qui sont désactivé par l'utilisateur   
54        $liste_objets=lister_tables_objets_sql();
55        $objets=array();
56        foreach($liste_objets AS $o=>$valeur){
57                if($valeur['editable'] AND $valeur['page'] AND $prefs['edition_directe'][$valeur['page']]!='inactive')$objets[]=$valeur['page'];
58                }
59        return $objets; 
60        }       
61?>
Note: See TracBrowser for help on using the repository browser.