Changeset 81688 in spip-zone


Ignore:
Timestamp:
Mar 31, 2014, 10:30:21 PM (5 years ago)
Author:
kent1@…
Message:

Utilise sql_allfetsel + foreach plutôt que sql_select + while sql_fetch, autres petites améliorations

Version 1.4.2

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

    r80966 r81688  
    1010 */
    1111function diogene_mots_diogene_ajouter_saisies($flux){
    12         $objet = $flux['args']['type'];
    13         $id_table_objet = id_table_objet($flux['args']['type']);
    14         $id_objet = $flux['args']['contexte'][$id_table_objet];
    15         if (is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('mots',unserialize($flux['args']['champs_ajoutes']))) {
    16                 if (!is_array(unserialize($flux['args']['options_complements']['mots_obligatoires'])))
    17                         $mots_obligatoires = array();
    18                 else
     12        if (is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('mots',unserialize($flux['args']['champs_ajoutes']))){
     13                $objet = $flux['args']['type'];
     14                $id_table_objet = id_table_objet($flux['args']['type']);
     15                $id_objet = $flux['args']['contexte'][$id_table_objet];
     16                $mots_obligatoires = $mots_facultatifs = array();
     17
     18                if (is_array(unserialize($flux['args']['options_complements']['mots_obligatoires'])))
    1919                        $mots_obligatoires = unserialize($flux['args']['options_complements']['mots_obligatoires']);
    2020
    21                 if(!is_array(unserialize($flux['args']['options_complements']['mots_facultatifs'])))
    22                         $mots_facultatifs = array();
    23                 else
     21                if(is_array(unserialize($flux['args']['options_complements']['mots_facultatifs'])))
    2422                        $mots_facultatifs = unserialize($flux['args']['options_complements']['mots_facultatifs']);
    2523
    2624                $valeurs_mots['id_groupes'] = $groupes_possibles = array_merge($mots_obligatoires,$mots_facultatifs);
    27                
     25
    2826                if (intval($id_objet)){
    2927                        /**
     
    3129                         */
    3230                        foreach($groupes_possibles as $id_groupe){
    33                                 if(in_array($id_groupe,$mots_obligatoires)){
     31                                if(in_array($id_groupe,$mots_obligatoires))
    3432                                        $valeurs_mots['groupe_obligatoire_'.$id_groupe] = 'oui';
    35                                 }
    3633                                if (_request('groupe_'.$id_groupe)) {
    37                                         spip_log(_request('groupe_'.$id_groupe),'test.'._LOG_ERREUR);
    3834                                        // Pour récupérer la selection courante en cas d'erreur dans vérifier() ou traiter()
    3935                                        $valeurs_mots['groupe_'.$id_groupe] = _request('groupe_'.$id_groupe);
    40                                 } else if (sql_getfetsel('unseul','spip_groupes_mots','id_groupe='.intval($id_groupe))== 'oui') {
     36                                }else if (sql_getfetsel('unseul','spip_groupes_mots','id_groupe='.intval($id_groupe)) == 'oui') {
    4137                                        $valeurs_mots['groupe_'.$id_groupe] = sql_fetsel('mot.id_mot','spip_mots as mot LEFT JOIN spip_mots_liens as mots_liens ON (mot.id_mot=mots_liens.id_mot)','mots_liens.objet='.sql_quote($objet).' AND mots_liens.id_objet='.intval($id_objet).' AND mot.id_groupe='.intval($id_groupe));
    4238                                }else {
    43                                         $result = sql_select('mot.id_mot','spip_mots as mot LEFT JOIN spip_mots_liens as mots_liens ON mot.id_mot=mots_liens.id_mot','mots_liens.objet='.sql_quote($objet).' AND mot.id_groupe='.intval($id_groupe).' AND mots_liens.id_objet='.intval($id_objet));
    44                                         while ($row = sql_fetch($result)) {
     39                                        $result = sql_allfetsel('mot.id_mot','spip_mots as mot LEFT JOIN spip_mots_liens as mots_liens ON mot.id_mot=mots_liens.id_mot','mots_liens.objet='.sql_quote($objet).' AND mot.id_groupe='.intval($id_groupe).' AND mots_liens.id_objet='.intval($id_objet));
     40                                        foreach ($result as $row) {
    4541                                                $valeurs_mots['groupe_'.$id_groupe][] = $row['id_mot'];
    4642                                        }
     
    8076                if ($flux['args']['options_complements']['mots_creer_dans_public'] == 'on')
    8177                        $flux['args']['contexte'] = array_merge($flux['args']['contexte'],array('mots_creer_dans_public' => $flux['args']['options_complements']['mots_creer_dans_public']));
    82                
     78
    8379                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_mots',$flux['args']['contexte']);
    8480        }
     
    181177                        }
    182178                        // S'il y a des erreurs, on les envoie, avec tous les champs cachés
    183                         if ($au_moins_une_erreur) {
     179                        if ($au_moins_une_erreur)
    184180                                $flux['data'] = array_merge($flux['data'], $erreurs);
    185                         }
    186181                }
    187182        }
     
    197192 */
    198193function diogene_mots_diogene_traiter($flux){
    199         include_spip('action/editer_mot');
    200 
    201194        $pipeline = pipeline('diogene_objets');
    202195        if (in_array($flux['args']['type'],array_keys($pipeline)) && isset($pipeline[$flux['args']['type']]['champs_sup']['mots']) AND ($id_diogene = _request('id_diogene'))) {
     196                include_spip('action/editer_mot');
    203197                $id_objet = $flux['args']['id_objet'];
    204198
     
    244238                        }
    245239
    246                         $result = sql_select('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');
    247                         while ($row = sql_fetch($result)) {
     240                        $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');
     241                        foreach ($result as $row) {
    248242                                $mots_multiples[] = $row['id_mot'];
    249243                        }
     
    253247                                 * de l'array des mots originaux
    254248                                 */
    255 
    256                                 if(in_array($mot, $mots_multiples)){
     249                                if(in_array($mot, $mots_multiples))
    257250                                        $mots_multiples = array_diff($mots_multiples,array($mot));
    258                                 }
    259                                 else{
     251                                else
    260252                                        sql_insertq('spip_mots_liens', array('id_mot' =>$mot,  'id_objet' => $id_objet,'objet'=> $flux['args']['type']));
    261                                 }
    262253                        }
    263254                        /**
    264255                         * S'il reste quelque chose dans les mots d'origine, on les délie de l'objet
    265256                         */
    266                         if(count($mots_multiples)>0){
     257                        if(count($mots_multiples)>0)
    267258                                sql_delete('spip_mots_liens','objet="'.$flux['args']['type'].'" AND id_objet='.intval($id_objet).' AND id_mot IN ('.implode(',',$mots_multiples).')');
    268                         }
    269259
    270260                        // On nettoie les variables mises à jour dans verifier()
  • _plugins_/diogene/diogene_complements/diogene_mots/trunk/paquet.xml

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