Changeset 89188 in spip-zone


Ignore:
Timestamp:
May 9, 2015, 9:33:17 AM (4 years ago)
Author:
abelass@…
Message:

str_replace casse la structure du tableau, on le fait proprement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/trunk/inc/reservation_evenement_administrations.php

    r89185 r89188  
    1616 */
    1717function update_donnees_auteurs() {
    18         $sql = sql_select('id_reservation,donnees_auteur', 'spip_reservations', 'id_auteur = 0');
    1918       
    20             //les champs extras auteur
     19        //les champs extras auteur
    2120    include_spip('cextras_pipelines');
    22 
     21       
     22        //les remplacements
    2323    if(function_exists('champs_extras_objet')){
    24                 $search = array();
    25                 $replace = array ();           
     24                $label_nom = array ();         
    2625        $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
    2726               
    2827        foreach($champs_extras_auteurs as $value){
    29                 $search[] = $value['options']['label'];
    30                 $replace[] = $value['options']['nom'];                 
     28                $label_nom[$value['options']['label']] = $value['options']['nom'];
    3129        }
    3230               
    3331    }
    34        
     32        // Rechercher les reservations avec des champs donnes_auteurs et remplace les index si nécessaire
     33        $sql = sql_select('id_reservation,donnees_auteur', 'spip_reservations', 'id_auteur = 0');       
    3534        while($data = sql_fetch($sql)) {
    36                 $count = '';
    37                 if (isset($data['donnees_auteur'])) {
    38                         $data['donnees_auteur'] = str_replace ($search ,$replace , $data['donnees_auteur'] , $count);
     35
     36                $donnees_auteur = unserialize($data['donnees_auteur']);
     37                $update = FALSE;
     38               
     39                foreach($label_nom as $label => $nom) {
     40                        if (isset($donnees_auteur[$label])) {
     41                                $donnees_auteur[$nom] = $donnees_auteur[$label];
     42                                unset($donnees_auteur[$label]);
     43                                $update = TRUE;
     44                        }
    3945                }
    4046               
    41                 if ($count>0) {
    42                         spip_log($data,'teste');
    43                         sql_updateq( 'spip_reservations',array('donnees_auteur' => $data['donnees_auteur']), 'id_reservation='.$data['id_reservation']);
     47                if ($update>0) {
     48                        sql_updateq('spip_reservations',array('donnees_auteur' => serialize($donnees_auteur)), 'id_reservation='.$data['id_reservation']);
    4449                }
    4550               
Note: See TracChangeset for help on using the changeset viewer.