source: spip-zone/_plugins_/edition_directe/branches/3.0/edition_directe_fonctions.php @ 113240

Last change on this file since 113240 was 113240, checked in by abelass, 22 months ago

Merge branch '3.0' of https://git.spip.net/_plugins_/edition_directe into 3.0

File size: 1.8 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 suivant le contexte, un tableau serialisé, assurer 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 de 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}
Note: See TracBrowser for help on using the repository browser.