Changeset 82570 in spip-zone


Ignore:
Timestamp:
May 18, 2014, 10:15:38 PM (5 years ago)
Author:
kent1@…
Message:

Invalider le cache à l'insertion ou suppression de mots

On protège avec sql_quote le nom des objets

Version 1.4.4

Location:
_plugins_/diogene/diogene_complements/diogene_mots/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/diogene/diogene_complements/diogene_mots/trunk/diogene_mots_pipelines.php

    r82235 r82570  
    209209        if (in_array($flux['args']['type'],array_keys($pipeline)) && isset($pipeline[$flux['args']['type']]['champs_sup']['mots']) AND ($id_diogene = _request('id_diogene'))) {
    210210                include_spip('action/editer_mot');
     211                $invalider = false;
     212                $objet = $flux['args']['type'];
    211213                $id_objet = $flux['args']['id_objet'];
    212214
     
    245247                                                // C'est sale - TODO - utiliser plutôt mot_modifier($id_mot, $c)
    246248                                                if (sql_updateq('spip_mots', $c, 'id_mot='.$id_mot)) {
     249                                                        $invalider = true;
    247250                                                        // un fois créé, on ajoute l'identifiant pour pouvoir associer le mot ensuite
    248251                                                        $requete_id_groupe[] = $id_mot;
     
    252255                        }
    253256
    254                         $result = sql_allfetsel('0+mot.titre AS num, mot.id_mot','spip_mots as mot LEFT JOIN spip_mots_liens as liens ON mot.id_mot=liens.id_mot','liens.objet="'.$flux['args']['type'].'" AND id_groupe='.intval($id_groupe).' AND liens.id_objet='.intval($id_objet),'','num, mot.titre');
     257                        $result = sql_allfetsel('0+mot.titre AS num, mot.id_mot','spip_mots as mot LEFT JOIN spip_mots_liens as liens ON mot.id_mot=liens.id_mot','liens.objet="'.sql_quote($objet).'" AND id_groupe='.intval($id_groupe).' AND liens.id_objet='.intval($id_objet),'','num, mot.titre');
    255258                        foreach ($result as $row) {
    256259                                $mots_multiples[] = $row['id_mot'];
     
    263266                                if(in_array($mot, $mots_multiples))
    264267                                        $mots_multiples = array_diff($mots_multiples,array($mot));
    265                                 else
    266                                         sql_insertq('spip_mots_liens', array('id_mot' =>$mot,  'id_objet' => $id_objet,'objet'=> $flux['args']['type']));
     268                                else{
     269                                        sql_insertq('spip_mots_liens', array('id_mot' =>$mot,  'id_objet' => $id_objet,'objet'=> $objet));
     270                                        $invalider = true;
     271                                }
    267272                        }
    268273                        /**
    269274                         * S'il reste quelque chose dans les mots d'origine, on les délie de l'objet
    270275                         */
    271                         if(count($mots_multiples)>0)
    272                                 sql_delete('spip_mots_liens','objet="'.$flux['args']['type'].'" AND id_objet='.intval($id_objet).' AND id_mot IN ('.implode(',',$mots_multiples).')');
     276                        if(count($mots_multiples)>0){
     277                                sql_delete('spip_mots_liens','objet="'.sql_quote($objet).'" AND id_objet='.intval($id_objet).' AND id_mot IN ('.implode(',',$mots_multiples).')');
     278                                $invalider = true;
     279                        }
    273280
    274281                        // On nettoie les variables mises à jour dans verifier()
    275282                        set_request('groupe_'.$id_groupe, $requete_id_groupe);
    276283                        set_request('nouveaux_groupe_'.$id_groupe, array());
     284                        if($invalider){
     285                                include_spip('inc/invalideur');
     286                                suivre_invalideur("id='$objet/$id_objet'");
     287                        }
    277288                }
    278289        }
  • _plugins_/diogene/diogene_complements/diogene_mots/trunk/paquet.xml

    r82234 r82570  
    22        prefix="diogene_mots"
    33        categorie="edition"
    4         version="1.4.3"
     4        version="1.4.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.