Ignore:
Timestamp:
03/17/10 01:14:05 (11 years ago)
Author:
kent1
Message:

Hop et cela fonctionne avec diogène correctement

Location:
plugins_spip/diogene_complements/diogene_geo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene_complements/diogene_geo/diogene_geo_pipelines.php

    r3076 r3077  
    22
    33        function diogene_geo_diogene_avant_formulaire($flux){
    4         $flux['data'] .= recuperer_fond('prive/diogene_geo_avant_formulaire', $flux['args']);
     4                if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('geo',unserialize($flux['args']['champs_ajoutes']))){
     5                $flux['data'] .= recuperer_fond('prive/diogene_geo_avant_formulaire', $flux['args']);
     6                }
    57        return $flux;
    68    }
     
    1214
    1315        function diogene_geo_diogene_ajouter_media($flux){
    14         $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_geo',$flux['args']);
     16                $id_article = $flux['args']['contexte']['id_article'];
     17                if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('geo',unserialize($flux['args']['champs_ajoutes']))){
     18                        if($id_article){
     19                                if(intval($id_article)){
     20                                        $valeurs_gis = sql_fetsel("lat,lonx,zoom","spip_gis","id_article=$id_article");
     21                                        $flux['args']['contexte'] = array_merge($flux['args']['contexte'],$valeurs_gis);
     22                                }
     23                        $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_geo',$flux['args']['contexte']);
     24                        }
     25                }
    1526        return $flux;
    1627    }
    1728
    1829        function diogene_geo_diogene_ajout_media_post_traiter($flux){
    19                 spip_log("DIOGENE_GEO : diogene_ajout_media_post_traiter");
     30                if($flux['args']['action']=='modifier'){
    2031
    21                 $id_article = $flux['args']['id_article'];
    22                 $valeurs = $flux['args']['valeurs'];
     32                        $id_objet = $flux['args']['id_objet'];
     33                        $type = $flux['args']['type'];
     34                        $table  = $flux['args']['table'];
     35                        $id_table_objet = id_table_objet($type);
    2336
    24                 if($valeurs['lat'] OR $valeurs['lonx']){
    25                         // On crée l'array pour l'update et pour la création des coordonnées
     37                        if(($lat = _request('lat')) && ($lng = _request('lonx'))){
     38                                // On crée l'array pour l'update et pour la création des coordonnées
    2639
    27                         $zoom = $valeurs['zoom'] ? $valeurs['zoom'] :lire_config('geomap/zoom');
     40                                $zoom = _request('zoom') ? _request('zoom') : lire_config('geomap/zoom');
    2841
    29                         $coords = array(
    30                                         'id_article'=> $id_article,
    31                                         'lat'=> $valeurs['lat'],
    32                                         'lonx' => $valeurs['lonx'],
    33                                         'zoom' => $zoom
    34                                 );
     42                                $coords = array(
     43                                                $id_table_objet=> $id_objet,
     44                                                'lat'=> $lat,
     45                                                'lonx' => $lng,
     46                                                'zoom' => $zoom
     47                                        );
    3548
    36                         if(lire_config('gis/geocoding') == 'oui'){
    37                                 $geocoding = array(
    38                                         "pays" => _request('pays'),
    39                                         "code_pays" => _request('code_pays'),
    40                                         "region" => _request('region'),
    41                                         "ville" => _request('ville'),
    42                                         "code_postal" => _request('code_postal')
    43                                 );
    44                                 $coords = array_merge($coords,$geocoding);
     49                                if(lire_config('gis/geocoding') == 'oui'){
     50                                        $geocoding = array(
     51                                                "pays" => _request('pays'),
     52                                                "code_pays" => _request('code_pays'),
     53                                                "region" => _request('region'),
     54                                                "ville" => _request('ville'),
     55                                                "code_postal" => _request('code_postal')
     56                                        );
     57                                        $coords = array_merge($coords,$geocoding);
     58                                }
     59
     60                                $coords_existantes = sql_getfetsel("id_gis","spip_gis","$id_table_objet = $id_objet");
     61                                if($coords_existantes){
     62                                        // Des coordonnées sont déjà définies pour cet article
     63                                        // => on les update
     64                                        sql_updateq("spip_gis",$coords,"id_gis = $coords_existantes");
     65                                }
     66                                else{
     67                                        // Aucune coordonnée n'est définie pour cet article
     68                                        // => on les crées
     69                                        $id_gis = sql_insertq("spip_gis",$coords);
     70                                }
    4571                        }
    46 
    47                         $coords_existantes = sql_getfetsel("id_gis","spip_gis","id_article = $id_article");
    48                         if($coords_existantes){
    49                                 // Des coordonnées sont déjà définies pour cet article
    50                                 // => on les update
    51                                 sql_updateq("spip_gis",$coords,"id_gis = $coords_existantes");
    52                                 spip_log("DIOGENE_GEO : Update des coordonnées pour l'article $id_article => id_gis = $coords_existantes");
    53                         }
    54                         else{
    55                                 // Aucune coordonnée n'est définie pour cet article
    56                                 // => on les crées
    57                                 $id_gis = sql_insertq("spip_gis",$coords);
    58                                 spip_log("DIOGENE_GEO : Création des coordonnées pour l'article $id_article => id_gis = $id_gis","diogene");
    59                         }
    60                 }
    61                 return $flux;
    62         }
    63 
    64         function diogene_geo_diogene_ajout_media_post_charger($flux){
    65                 $id_article = $flux['args']['id_article'];
    66 
    67                 if(intval($id_article) && ($flux['args']['mode'] != 'rechargement')){
    68                         spip_log("DIOGENE_GEO : diogene_ajout_media_post_charger","diogene");
    69 
    70                         // On ajoute les données nécessaires à l'array utilisé au chargement du formulaire
    71                         if($valeurs_gis = sql_fetsel("lat,lonx,zoom","spip_gis","id_article=$id_article"))
    72                                 $flux['data'] = array_merge($flux['data'],$valeurs_gis);
    7372                }
    7473                return $flux;
     
    7877                spip_log("DIOGENE_GEO : Verification des champs géographiques");
    7978
    80                 $id_article = $flux['args']['id_article'];
    81                 $valeurs = $flux['args']['valeurs'];
     79                $id_article = _request('id_article');
    8280                $erreurs = &$flux['args']['erreurs'];
    8381
    84                 if((!$erreur['lat']) && ($lat = $valeurs['lat'])){
     82                if((!$erreur['lat']) && ($lat = _request('lat'))){
    8583                        if((!empty($lat)) && !is_numeric($lat)){
    8684                                $erreurs['lat'] = _T('diogene:valeur_pas_float',array('champs'=> _T('diogene_geo:latitude')));
    87                                 spip_log("DIOGENE_GEO : latitude n'est pas un float","diogene");
    8885                        }
    8986                }
    90                 if((!$erreur['lonx']) && ($lonx = $valeurs['lonx'])){
     87                if((!$erreur['lonx']) && ($lonx = _request('lonx'))){
    9188                        if((!empty($lonx)) && !is_numeric($lonx)){
    9289                                $erreurs['lonx'] = _T('diogene:valeur_pas_float',array('champs'=> _T('diogene_geo:longitude')));
    93                                 spip_log("DIOGENE_GEO : longitude n'est pas un float","diogene");
    9490                        }
    9591                }
    96                 if((!$erreur['zoom']) && ($zoom = $valeurs['zoom'])){
     92                if((!$erreur['zoom']) && ($zoom = _request('zoom'))){
    9793                        if((!empty($zoom)) && !is_numeric($zoom)){
    9894                                $erreurs['zoom'] = _T('diogene:valeur_pas_int',array('champs'=>_T('diogene_geo:zoom')));
    99                                 spip_log("DIOGENE_GEO : zoom n'est pas un int","diogene");
    10095                        }
    10196                }
  • plugins_spip/diogene_complements/diogene_geo/plugin.xml

    r3074 r3077  
    3131        </pipeline>
    3232        <pipeline>
    33                 <nom>diogene_ajout_media_post_charger</nom>
    34                 <inclure>diogene_geo_pipelines.php</inclure>
    35         </pipeline>
    36         <pipeline>
    3733                <nom>diogene_ajout_media_post_verifier</nom>
    3834                <inclure>diogene_geo_pipelines.php</inclure>
     
    4238                <inclure>diogene_geo_pipelines.php</inclure>
    4339        </pipeline>
     40        <pipeline>
     41                <nom>diogene_champs_sup</nom>
     42                <inclure>diogene_geo_pipelines.php</inclure>
     43        </pipeline>
    4444        <necessite id='diogene' version='[0.1;]' />
    4545        <necessite id='geomap' version='[0.2;]' />
Note: See TracChangeset for help on using the changeset viewer.