Changeset 94773 in spip-zone for _plugins_/COG


Ignore:
Timestamp:
Jan 27, 2016, 12:36:25 PM (5 years ago)
Author:
guillaume.wauquier@…
Message:

Revue de code pour passage à SPIP 3.1 + actualisation des sources de données INSEE + inclusion des anciennes et des nouvelles définitions régionales (2016) directement dans le plugin car pour le moment non présente sur le site de l'INSEE

Location:
_plugins_/COG/trunk
Files:
3 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/COG/trunk/base/cog.php

    r82318 r94773  
    163163
    164164
    165 //////////   Région   //////////
     165//////////   Régions   //////////
    166166
    167167
     
    198198
    199199
    200 
    201 
     200//////////   Anciennes Régions   //////////
     201/*
     202
     203        $tab_champs=array('code',
     204                'chef_lieu','type_charniere','nom_majuscule','nom');
     205
     206        $tables['spip_cog_regions_anciennes'] = array(
     207
     208                'type' => 'cog_region_ancienne',
     209                'principale' => "oui",
     210                'table_objet_surnoms' => array('cogregion'), // table_objet('cog_region') => 'cog_regions'
     211                'field'=> array(
     212                        "id_cog_region_ancienne"        => "INT(10) UNSIGNED NOT NULL COMMENT 'Identifiant du region'",
     213                        "code"=> "TINYINT ( 2 )  UNSIGNED NOT NULL      COMMENT 'Code région'",
     214                        "chef_lieu"=> "VARCHAR(5) NOT NULL  DEFAULT '0' COMMENT 'Code de la commune chef-lieu'",
     215                        "type_charniere"=> "TINYINT( 1 ) UNSIGNED NOT NULL              COMMENT 'Type de nom en clair'",
     216                        "nom_majuscule"=> "VARCHAR( 70 ) NOT NULL       COMMENT 'Nom en clair (majuscules)'",
     217                        "nom"=> "VARCHAR( 70 ) NOT NULL COMMENT 'Nom en clair (typographie riche)'",
     218                        "region2016"=> "TINYINT ( 2 )  UNSIGNED NOT NULL        COMMENT 'Code région 2016'",
     219                        "maj"                => "TIMESTAMP"
     220                ),
     221                'key' => array(
     222                        "PRIMARY KEY"   => "id_cog_region_ancienne",
     223                        "KEY code"      => "code"
     224                ),
     225                'champs_editables' => $tab_champs,
     226                'champs_versionnes' => $tab_champs,
     227                'rechercher_champs' => array(
     228                        'nom' => 8, 'code' => 5
     229                ),
     230                'titre' => "nom AS titre, '' as lang",
     231                'page'=>''
     232        );
     233
     234
     235*/
    202236
    203237//////////   EPCI  //////////
     
    380414$tables_interfaces['table_des_tables']['cog_departements'] = 'cog_departements';
    381415$tables_interfaces['table_des_tables']['cog_regions'] = 'cog_regions';
     416$tables_interfaces['table_des_tables']['cog_regions_anciennes'] = 'cog_regions_anciennes';
    382417$tables_interfaces['tables_jointures']['spip_cog_communes'][] = 'cog_communes_liens';
    383418$tables_interfaces['tables_jointures']['spip_cog_communes_liens'][] = 'cog_communes';
  • _plugins_/COG/trunk/cog_administrations.php

    r82318 r94773  
    2323                 array('sql_alter',"TABLE spip_cog_cantons CHANGE `chef_lieu` `chef_lieu` MEDIUMINT( 6 )")
    2424        );
     25        $maj['1.2'] = array(
     26                array('sql_alter',"TABLE spip_cog_regions RENAME spip_cog_regions_anciennes"),
     27                array('sql_alter',"TABLE spip_cog_regions_anciennes CHANGE `id_cog_region` `id_cog_region_ancienne` INT(10) auto_increment UNSIGNED NOT NULL COMMENT 'Identifiant du region' "),
     28                array('sql_alter',"TABLE spip_cog_regions_anciennes ADD `region2016` TINYINT ( 2 )  UNSIGNED NOT NULL   COMMENT 'Code région 2016'"),
     29                array('maj_tables', array('spip_cog_regions')),
     30                array('cog_nouvelle_definition_regionale')
     31
     32        );
    2533        include_spip('base/upgrade');
    2634        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     
    3543        sql_drop_table("spip_cog_departements");
    3644        sql_drop_table("spip_cog_regions");
     45        sql_drop_table("spip_cog_regions_anciennes");
    3746        sql_drop_table("spip_cog_epcis");
    3847        sql_drop_table("spip_cog_epci_natures");
     
    4554
    4655
     56function cog_nouvelle_definition_regionale(){
     57
     58$tab_region=array();
     59$conf_region = cog_config_tab_fichier('cog_region_ancienne');
     60
     61
     62$fichier=realpath(_DIR_PLUGIN_COG.'/data/'.$conf_region['fichier']);
     63
     64$pointeur_fichier = fopen($fichier,"r");
     65
     66if($pointeur_fichier<>0){
     67fgets($pointeur_fichier, 4096);
     68while (!feof($pointeur_fichier)){
     69        $ligne= fgets($pointeur_fichier, 4096);
     70        $tab=explode("\t",$ligne);
     71                if(count($tab)>4) {
     72                        if(trim($tab[0])!=trim($tab[5]))
     73                                $tab_region[trim($tab[0]).'']=trim($tab[5]);
     74                        sql_updateq('spip_cog_regions_anciennes',array('region2016'=>intval(trim($tab[5]))),'code = '.intval(trim($tab[0])));
     75                }
     76        }
     77}
     78
     79
     80
     81
     82$tab_table=array(
     83        'spip_cog_communes',
     84        'spip_cog_communes_liens',
     85        'spip_cog_cantons',
     86        'spip_cog_arrondissements',
     87        'spip_cog_departements');
     88
     89foreach($tab_table as $table){
     90        foreach($tab_region as $anc=>$nouvelle){
     91                $data=array('region'=>intval($nouvelle));
     92                sql_updateq($table,$data,'region = '.intval($anc));
     93                }
     94        }
     95
     96}
    4797
    4898function cog_peupler_base()
  • _plugins_/COG/trunk/cog_config.php

    r82318 r94773  
    1111'cog_commune'                           => array(       'nom'=>'Communes',
    1212                                                                        'cle_unique'=>array('departement','code'),
    13                                                                         'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/txt/comsimp2013.zip'),
     13                                                                        'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2015/txt/comsimp2015.zip'),
    1414'cog_canton'                            => array(       'nom'=>'Cantons',
    1515                                                                        'cle_unique'=>array('departement','arrondissement','code'),
    16                                                                         'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/txt/canton2013.txt'),
     16                                                                        'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2015/txt/canton2015.txt'),
    1717'cog_arrondissement'            => array(       'nom'=>'Arrondissements',
    1818                                                                        'cle_unique'=>array('departement','code'),
    19                                                                         'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/txt/arrond2013.txt'),
     19                                                                        'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2015/txt/arrond2015.txt'),
    2020'cog_departement'                       => array(       'nom'=>'Départements',
    21                                                                         'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/txt/depts2013.txt'),
     21                                                                        'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2015/txt/depts2015.txt'),
    2222'cog_region'                            => array(       'nom'=>'Régions',
    23                                                                         'fichier'=>'http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/txt/reg2013.txt'),
    24 'cog_epci'                              => array(       'nom'=>'EPCI',
     23                                                                        'fichier'=>'region2016.txt'),
     24'cog_regions_ancienne'          => array(       'nom'=>'Anciennes définitions des régions',
     25                                                                        'fichier'=>'region2015.txt'),
     26'cog_epci'                                      => array(       'nom'=>'EPCI',
    2527                                                                        'fichier'=>'http://www.insee.fr/fr/methodes/zonages/epci-au-01-01-2013.zip',
    2628                                                                        'xls'=>array(   'cog_epci' => array('fichier_csv'=>'epci.txt','onglet'=>'Liste des EPCI au 01-01-2013','colonnes'=>range('A','C'),'ligne_depart'=>2,'ligne_arrive'=>3000),
  • _plugins_/COG/trunk/cog_pipeline.php

    r68102 r94773  
    2727                $tab_rubriques_cog=lire_config("cog/rubriques_cog",array(0,-1));
    2828                $id_objet = $flux['args']["id_".$objet];
     29                $id_rubriques="";
    2930                switch($objet)
    3031                {
  • _plugins_/COG/trunk/formulaires/importer_cog.html

    r81931 r94773  
    1010<ul>
    1111<li class="editer_fichier obligatoire[ (#ENV**{erreurs}|table_valeur{nom}|oui)erreur]">
    12                 <label for="fichier"><:cog:fichiers:></label>[
     12                <label for="select_objet"><:cog:fichiers:></label>[
    1313                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier})</span>
    1414                ]<p class='explication'><:cog:choississez_le_fichier_a_importer:></p>
    15         <select name='objet' [(#ENV{objet,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]>
     15        <select id='select_objet' name='objet' [(#ENV{objet,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]>
    1616        <BOUCLE_fichier(POUR){tableau #ENV**{tab_objet}}>
    1717                <option value="#CLE"[(#ENV{objet}|=={#CLE}) selected="selected"] [(#VALEUR|table_valeur{fichier_manquant}|oui) disabled="disabled"]>[(#VALEUR|table_valeur{nom})] [(#VALEUR|table_valeur{fichier_manquant}|oui) (Fichier manquant)]</option>
  • _plugins_/COG/trunk/formulaires/importer_cog.php

    r82318 r94773  
    1111        {
    1212                $fichier_manquant=false;
     13
    1314                $tab_fichier=cog_tab_fichier_telecharger($objet['fichier']);
     15
    1416                foreach($tab_fichier as $fichier)
    1517                {
    16                         $infos_fichier=pathinfo($fichier);
    17                         $nom_fichier=$emplacement.$infos_fichier['filename'].'.'.$infos_fichier['extension'];
    18                         if($infos_fichier['extension']=='zip')
    19                                 $nom_fichier=$emplacement.$infos_fichier['filename'].'.txt';
    20                         if(!file_exists($nom_fichier))
    21                                 $fichier_manquant=true;
    22                         $nom_fichier=$emplacement.$infos_fichier['filename'].'.xls';
    23                         if(file_exists($nom_fichier))
    24                                 $fichier_manquant=false;
     18                        $infos_fichier = pathinfo($fichier);
     19                        if(preg_match('`^http`i',$fichier)) {
     20
     21
     22                                $nom_fichier = $emplacement . $infos_fichier['filename'] . '.' . $infos_fichier['extension'];
     23                                if ($infos_fichier['extension'] == 'zip')
     24                                        $nom_fichier = $emplacement . $infos_fichier['filename'] . '.txt';
     25                                if (!file_exists($nom_fichier))
     26                                        $fichier_manquant = true;
     27                                $nom_fichier = $emplacement . $infos_fichier['filename'] . '.xls';
     28                                if (!file_exists($nom_fichier))
     29                                        $fichier_manquant = true;
     30                        }
     31                        else{
     32                                $nom_fichier=realpath(_DIR_PLUGIN_COG.'/data').'/'.$infos_fichier['filename'] . '.txt';
     33                                if (!file_exists($nom_fichier))
     34                                        $fichier_manquant = true;
     35                        }
    2536                }
    2637                $objet['fichier_manquant']=$fichier_manquant;
     
    3546        $tab_objet=cog_config_tab_fichier();
    3647        $emplacement=_DIR_TMP.lire_config('cog/chemin_donnee');
    37 
     48        $erreurs=array();
    3849        if ($objet = _request('objet')) {
    3950                if (!isset($tab_objet[$objet])) {
     
    5667                        if($extension =='zip')
    5768                                $extension = 'txt';
     69
    5870                        $fichier=$infos_fichier['filename'].'.'.$extension;
    59                         if(!file_exists($emplacement.$fichier))
     71                        $emplacement_local=realpath(_DIR_PLUGIN_COG.'/data').'/';
     72                        if(!file_exists($emplacement.$fichier) && !file_exists($emplacement_local.$fichier))
    6073                                $fichier=$infos_fichier['filename'].'.xls';
    61                         if (!file_exists($emplacement.$fichier)) {
     74                        if (!file_exists($emplacement.$fichier) && !file_exists($emplacement_local.$fichier)) {
    6275                                $erreurs['fichier'] .= _T('cog:fichier_introuvable')." ".$emplacement.$infos_fichier['filename'].'.[txt|xls]';
    6376                                $erreurs['message_erreur'] .= _T('cog:fichier_introuvable');
     
    231244        $message=  'Importation du fichier '.$objet."<br />";
    232245//      $message.= 'Emplacement du fichier : '.$emplacement."<br />";
     246
    233247if(is_array($tab_objet[$objet]['fichier']))     {
    234248                $fichier_modele=$tab_objet[$objet]['fichier'][0];}
     
    240254        if($extension =='zip')
    241255                $extension = 'txt';
    242 if(!file_exists($fichier_modele=$emplacement.$infos_fichier['filename'].'.'.$extension)) {
    243         if(file_exists($emplacement.$infos_fichier['filename'].'.xls'))
    244                 {
    245                 foreach($tab_objet[$objet]['xls'] as $extraction)
    246                 if(!file_exists($emplacement.$extraction['fichier_csv'])){
    247                         conversion_fichier_excel($emplacement.$infos_fichier['filename'].'.xls',$emplacement.$extraction['fichier_csv'],$extraction['onglet'],$extraction['colonnes'],$extraction['ligne_depart'],$extraction['ligne_arrive']);
    248                         }
    249                         $fichier_modele=$emplacement.$tab_objet[$objet]['xls'][objet_type($objet)]['fichier_csv'];
    250                 }
    251                
     256
     257if(!file_exists($fichier_modele=realpath(_DIR_PLUGIN_COG.'/data').'/'.$infos_fichier['filename'].'.'.$extension)        ){
     258
     259        if(!file_exists($fichier_modele=$emplacement.$infos_fichier['filename'].'.'.$extension)) {
     260                if(file_exists($emplacement.$infos_fichier['filename'].'.xls'))
     261                        {
     262                        foreach($tab_objet[$objet]['xls'] as $extraction)
     263                        if(!file_exists($emplacement.$extraction['fichier_csv'])){
     264                                conversion_fichier_excel($emplacement.$infos_fichier['filename'].'.xls',$emplacement.$extraction['fichier_csv'],$extraction['onglet'],$extraction['colonnes'],$extraction['ligne_depart'],$extraction['ligne_arrive']);
     265                                }
     266                                $fichier_modele=$emplacement.$tab_objet[$objet]['xls'][objet_type($objet)]['fichier_csv'];
     267                        }
     268
     269        }
    252270}
    253271$table=table_objet_sql($objet);
     
    361379
    362380                                $super_cle=array();
    363                                 $super_cles=='';
     381                                $super_cles='';
    364382                                foreach($cle_unique as $cle){
    365383                                        $super_cle[]=$tab_value[$cle];
     
    440458                  PCLZIP_CB_PRE_EXTRACT, 'callback_deballe_fichier'
    441459                  );
    442         $contenu = verifier_compactes($archive);
    443         $titrer = _request('titrer') == 'on';
    444         foreach ($contenu as $fichier => $size) {
    445         $f = basename($fichier);
    446         $x = $ajouter_documents(_tmp_dir. $f, $f,
    447         $type, $id, $mode, $id_document, $actifs, $titrer);
    448         }
     460        //$contenu = verifier_compactes($archive);
     461
    449462        effacer_repertoire_temporaire(_tmp_dir);
    450         return $x;
     463        return true;
    451464}
    452465unset($filterSubset);
  • _plugins_/COG/trunk/formulaires/telecharger_cog.php

    r82318 r94773  
    3232        $erreurs = array();
    3333        $tab_objet=cog_config_tab_fichier();
    34         $emplacement=_DIR_TMP.lire_config('cog/chemin_donnee');
    35         // login trop court ou existant
    36         $objet = array();
    3734        $objet = _request('objet');
    3835        if (count($objet) < 1) {
     
    5855$tab_fichier_telecharger=array();
    5956
     57$objet_nom="";
    6058$objet =_request('objet');
    6159for($i = 0; $i < count($objet); $i++){
  • _plugins_/COG/trunk/inc/cog_import.php

    r65246 r94773  
    1919return $tab_fichier;
    2020}
    21 ?>
  • _plugins_/COG/trunk/paquet.xml

    r82318 r94773  
    22        prefix="cog"
    33        categorie="outil"
    4         version="2.1.1"
     4        version="2.2.0"
    55        etat="stable"
    6         compatibilite="[3.0.0;3.0.*]"
     6        compatibilite="[3.0.0;3.1.*]"
    77        logo="prive/themes/spip/images/cog-32.png"
    8         schema="1.1"
     8        schema="1.2"
    99        documentation="http://contrib.spip.net/COG-Toutes-les-communes-departements-regions"
    1010>
     
    1212        <nom>Code Officiel Géographique</nom>
    1313        <!-- Ajouter à la base de données les codes officiels géographiques définis par l'Institut national de la statistique et des études économiques -->
    14 
    1514
    1615        <auteur>Guillaume Wauquier</auteur>
Note: See TracChangeset for help on using the changeset viewer.