Changeset 118388 in spip-zone


Ignore:
Timestamp:
Nov 3, 2019, 9:09:52 AM (12 months ago)
Author:
Rainer Müller
Message:

v3.3.2 - eviter des erreurs php dans l'espace publique

Location:
_plugins_/edition_directe/branches/3.0
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/edition_directe/branches/3.0

  • _plugins_/edition_directe/branches/3.0/action/edition_directe_auteur.php

    r63478 r118388  
    11<?php
     2/**
     3 * Action d'édition du plugin Edition_directe
     4 *
     5 * @plugin     Edition_directe
     6 * @copyright  2011 - 2019
     7 * @author     Rainer Müller
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Edition_directe\Action
     10 */
    211
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
     12if (!defined("_ECRIRE_INC_VERSION"))
     13        return;
    514
    615function action_edition_directe_auteur_dist() {
     
    918        $securiser_action = charger_fonction('securiser_action', 'inc');
    1019        $arg = $securiser_action();
    11         $id_auteur=session_get('id_auteur');
    12        
    13         $prefs=session_get('prefs');
    14  
    15        
    16         list($action,$objet)=explode('-',$arg);
     20        $id_auteur = session_get('id_auteur');
    1721
    18         $prefs['edition_directe'][$objet]=$action;
    19        
     22        $prefs = session_get('prefs');
    2023
    21         sql_updateq('spip_auteurs',array('prefs'=>serialize($prefs)),'id_auteur='.$id_auteur);
     24        list ($action, $objet) = explode('-', $arg);
    2225
    23         }
    24 ?>
     26        $prefs['edition_directe'][$objet] = $action;
     27
     28        sql_updateq('spip_auteurs', array(
     29                'prefs' => serialize($prefs)
     30        ), 'id_auteur=' . $id_auteur);
     31}
  • _plugins_/edition_directe/branches/3.0/edition_directe_fonctions.php

    r113240 r118388  
    11<?php
     2/**
     3 * Fonctions utiles au plugin Edition_directe
     4 *
     5 * @plugin     Edition_directe
     6 * @copyright  2011 - 2019
     7 * @author     Rainer Müller
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Edition_directe\Fonctions
     10 */
     11
    212// teste si l'objet est en mode edition directe ou non
    3 function objets_edition_directe(){
     13function objets_edition_directe() {
    414        include_spip('inc/config');
    515        include_spip('inc/session');
    616
     17        // Récuperer la séléction des objets depuis la config
     18        $objets = lire_config('edition_directe/objets', []);
    719
    8         // Récuperer la séléction des objets depuis la config
    9         $objets=lire_config('edition_directe/objets', []);
     20        // Récupère les préférence de l'auteur, pour émodifier le choix par défaut
     21        $prefs = session_get('prefs');
    1022
    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);
     23        // Apparament session_get retourne suivant le contexte, un tableau serialisé, assurer qu'il ne soir pas sérialisé
     24        if (!is_array($prefs))
     25                $prefs = unserialize($prefs);
    1626
    1727        // 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);
     28
     29        if (count($objets) < 1) {
     30                $objets = lister_objets($prefs);
    2031        }
    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;
     32        else {
     33                // Sinon on prend les objets de la config, si l'auteur ne la pas désactivé
     34                $objets2 = array();
     35                foreach ($objets as $objet) {
     36                        if ($prefs['edition_directe'][$objet] != 'inactive')
     37                                $objets2[] = $objet;
    2638                }
    27                 $objets=$objets2;
     39                $objets = $objets2;
    2840        }
    2941        // 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;
     42        if (is_array($prefs['edition_directe'])) {
     43                $objets_prefs = array();
     44                foreach ($prefs['edition_directe'] as $o => $pref) {
     45                        if ($pref != 'inactive')
     46                                $objets_prefs[] = $o;
    3447                }
    35                 $objets=array_merge($objets,$objets_prefs);
     48                $objets = array_merge($objets, $objets_prefs);
    3649        }
    3750
    38         //Pipeline
    39         $pipeline= pipeline('edition_directe_controle',array(
    40                 'args'=>array(
    41                         'objet'=>$objet
     51        // Pipeline
     52        pipeline('edition_directe_controle', array(
     53                'args' => array(
     54                        'objet' => $objet
    4255                ),
    43                 'data'=>$objets
     56                'data' => $objets
    4457        ));
    4558        return $objets;
    4659}
    4760
    48 
    4961// Liste les objets disponible pour l'édition directe
    50 function lister_objets($prefs){
     62function lister_objets($prefs) {
    5163        include_spip('base/objets');
    5264
    5365        // Lister les objets éditables auf ceux qui sont désactivé par l'utilisateur
     66<<<<<<< HEAD
    5467        $liste_objets=lister_tables_objets_sql();
    5568        $objets=array();
     
    5972        return $objets;
    6073}
     74=======
     75        $liste_objets = lister_tables_objets_sql();
     76        $objets = array();
     77        foreach ($liste_objets as $valeur) {
     78                if ($valeur['editable'] and $valeur['page'] and $prefs['edition_directe'][$valeur['page']] != 'inactive')
     79                        $objets[] = $valeur['page'];
     80        }
     81        return $objets;
     82}
     83>>>>>>> master
  • _plugins_/edition_directe/branches/3.0/edition_directe_pipelines.php

    r99975 r118388  
    11<?php
     2/**
     3 * Utilisations de pipelines par Edition_directe
     4 *
     5 * @plugin     Edition_directe
     6 * @copyright  2011 - 2019
     7 * @author     Rainer Müller
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Edition_directe\Pipelines
     10 */
     11
    212
    313// styles
    414function edition_directe_header_prive($flux) {
    515        $flux .= '<link rel="stylesheet" href="' . find_in_path('css/edition_directe_styles.css') . '" type="text/css" media="all" />';
    6        
     16
    717        return $flux;
    818}
     
    1121function edition_directe_affiche_gauche($flux) {
    1222        include_spip('edition_directe_fonctions');
    13        
     23
    1424        $objets_edition_directe = objets_edition_directe();
    1525        if ($en_cours = trouver_objet_exec($flux['args']['exec']) and $type = $en_cours['type'] and in_array($type, $objets_edition_directe) and $id_table_objet = $en_cours['id_table_objet'] and ($id = intval($flux['args'][$id_table_objet]) or $id = 0 - $GLOBALS['visiteur_session']['id_auteur']) and autoriser('joindredocument', $type, $id)) {
    16                
     26
    1727                if ($id > 0)
    1828                        $flux['data'] .= recuperer_fond('prive/objets/editer/colonne_document', array (
    1929                                'objet' => $type,
    20                                 'id_objet' => $id 
     30                                'id_objet' => $id
    2131                        ));
    2232        }
    23        
     33
    2434        return $flux;
    2535}
     
    3141        $fond = $flux['args']['fond'];
    3242        $contexte = isset($flux['args']['contexte']) ? $flux['args']['contexte'] : array ();
    33         $objet = _request('exec');
    3443        $texte = $flux['data']['texte'];
    35         $contexte['objet'] = $objet;
    36         $id = 'id_' . $objet;
    37         $exec = _request('exec');
    38         if ($contexte['exec'] == 'site')
    39                 $id = 'id_syndic';
    40         $contexte['id_objet'] = $contexte[$id];
    41        
     44
    4245        // Seulement dans l'espace priv&eacute;
    43         if ($exec and autoriser('modifier', $objet, $contexte['id_objet'])) {
     46        if (test_espace_prive() and
     47                $exec =_request('exec') and
     48                $objet_exec = trouver_objet_exec($exec) and
     49                $objet = $objet_exec['type'] and
     50                $id = $objet_exec['id_table_objet'] and
     51                $contexte['objet'] = $objet and
     52                $contexte['id_objet'] = $contexte[$id] and
     53                autoriser('modifier', $objet, $contexte['id_objet'])) {
    4454                // On cherche les objets actifs pour l'édition directe
    4555                $objets = objets_edition_directe();
    46                
     56
    4757                // Les objets éditables déclarés
    4858                $objets_dispos = lister_objets(array ());
    49                
     59
    5060                // Insertion du formulaire d'édition
    5161                if (in_array($objet, $objets)) {
    5262                        if ($fond == 'prive/squelettes/contenu/' . $objet) {
    5363                                $edition = recuperer_fond('prive/echafaudage/contenu/objet_edit_directe', $contexte, array (
    54                                         'ajax' => true 
     64                                        'ajax' => true
    5565                                ));
    5666                                $icone = '
     
    97107                }
    98108        }
    99        
     109
    100110        return $flux;
    101111}
     
    106116        $form = $flux['args']['form'];
    107117        $objet = str_replace('editer_', '', $form);
    108        
     118
    109119        if (in_array($objet, $objets) and ! $_REQUEST['redirect'] and _request('exec')) {
    110120                if ($objet == 'site') {
     
    115125                        $flux['data']['redirect'] = generer_url_ecrire($objet, 'id_' . $objet . '=' . $id_objet);
    116126        }
    117        
     127
    118128        return $flux;
    119129}
    120 ?>
  • _plugins_/edition_directe/branches/3.0/formulaires/configurer_edition_directe.html

    r62395 r118388  
    1 <!-- nom=edition_directe -->
    2 
    3 
    4 
    5                
    6 
    7 
    81#SET{objets,#ARRAY}
    92
     
    2215        <form action="#ENV{action}" method="post"><div>
    2316                #ACTION_FORMULAIRE{#ENV{action}}
    24                 <ul>
    25                         <li class="fieldset">
    26                                 <ul>
    27                                         [(#SAISIE{checkbox, objets,
    28                                                 label=<:edir:activer_edition_directe:>,
    29                                                 datas=#GET{objets}}
    30                                                 )]
    31                                 </ul>
    32                         </li>
    33                 </ul>
    34                
     17                <div>
     18                        <div class="fieldset">
     19                                [(#SAISIE{checkbox, objets,
     20                                        label=<:edir:activer_edition_directe:>,
     21                                        datas=#GET{objets}}
     22                                        )]
     23                        </div>
     24                </div>
     25
    3526                <p class="boutons">
    3627                        <input type="submit" name="_cfg_ok" class="submit" value="<:bouton_enregistrer:>" />
    3728                </p>
    38                
     29
    3930        </div></form>
    4031</div>
  • _plugins_/edition_directe/branches/3.0/paquet.xml

    r117696 r118388  
    22        prefix="edition_directe"
    33        categorie="edition"
    4         version="3.3.1"
     4        version="3.3.2"
    55        etat="stable"
    66        compatibilite="[3.0.17;3.2.*]"
     
    2121        <pipeline nom="formulaire_traiter" inclure="edition_directe_pipelines.php" />
    2222        <pipeline nom="edition_directe_controle" action="" />
     23        <necessite nom="saisies" compatibilite="[3.23.2;[" />
    2324
    24         <necessite nom="saisies" compatibilite="[2.28.0;[" />
    2525        <utilise nom="medias" compatibilite="[2.7.59;[" />
    2626        <menu nom="configurer_edition_directe" titre="edir:titre_plugin" parent="menu_configuration" icone="images/edir-16.png"/>
Note: See TracChangeset for help on using the changeset viewer.