Changeset 66405 in spip-zone


Ignore:
Timestamp:
Oct 1, 2012, 5:32:03 PM (7 years ago)
Author:
gildas.cotomale@…
Message:

prise en compte de la region dans les adresses et meilleure ergonomie de la base (pour les nouvelles installations)

Location:
_plugins_/coordonnees/branches/v1.4
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/coordonnees/branches/v1.4/action/editer_adresse.php

    r48104 r66405  
    22
    33/**
    4  * Plugin Coordonnées 
    5  * Licence GPL (c) 2010 Matthieu Marcillaud 
     4 * Plugin Coordonnées
     5 * Licence GPL (c) 2010 Matthieu Marcillaud
    66**/
    77if (!defined("_ECRIRE_INC_VERSION")) return;
     
    3131                'voie' => _T('coordonnees:item_nouvelle_adresse')
    3232        );
    33        
     33
    3434        // Envoyer aux plugins
    3535        $champs = pipeline('pre_insertion', array(
     
    3939                'data' => $champs
    4040        ));
    41        
     41
    4242        $id_adresse = sql_insertq("spip_adresses", $champs);
    4343
    44         if (!$c) 
     44        if (!$c)
    4545                $c = array('objet' => _request('objet'),
    4646                        'id_objet' => _request('id_objet'),
     
    5353                sql_insertq("spip_adresses_liens", $c);
    5454        }
    55        
     55
    5656        return $id_adresse;
    5757}
     
    6666                foreach (array(
    6767                                'voie', 'complement', 'boite_postale',
    68                                 'code_postal', 'ville', 'pays', 'titre') as $champ
     68                                'code_postal', 'ville', 'region', 'pays', 'titre') as $champ
    6969                ) {
    7070                        if (($a = _request($champ)) !== null) {
  • _plugins_/coordonnees/branches/v1.4/base/coordonnees.php

    r54031 r66405  
    66
    77function coordonnees_declarer_tables_interfaces($interface){
    8        
     8
    99        $interface['table_des_tables']['adresses'] = 'adresses';
    1010        $interface['table_des_tables']['numeros'] = 'numeros';
    1111        $interface['table_des_tables']['emails'] = 'emails';
    12        
     12
    1313        $interface['tables_jointures']['spip_auteurs'][] = 'adresses_liens';
    1414        $interface['tables_jointures']['spip_adresses'][] = 'adresses_liens';
    15        
     15
    1616        $interface['tables_jointures']['spip_auteurs'][] = 'numeros_liens';
    1717        $interface['tables_jointures']['spip_numeros'][] = 'numeros_liens';
    18        
     18
    1919        $interface['tables_jointures']['spip_auteurs'][] = 'emails_liens';
    2020        $interface['tables_jointures']['spip_emails'][] = 'emails_liens';
     
    3030        //-- Table adresses ------------------------------------------
    3131        $adresses = array(
    32                 "id_adresse" => "bigint(21) NOT NULL auto_increment",
     32                "id_adresse" => "BIGINT NOT NULL auto_increment",
    3333                "titre" => "VARCHAR(255) DEFAULT '' NOT NULL", // perso, pro, vacance...
    34                 "voie" => "tinytext DEFAULT '' NOT NULL", // p. ex. 21 rue de cotte
    35                 "complement" => "tinytext DEFAULT '' NOT NULL", // p. ex. 3? ?tage
    36                 "boite_postale" => "VARCHAR(10) DEFAULT '' NOT NULL",
    37                 "code_postal" => "VARCHAR(10) DEFAULT '' NOT NULL",
    38                 "ville" => "tinytext DEFAULT '' NOT NULL",
    39                 "pays" => "varchar(2) not null default ''",
     34                "voie" => "TINYTEXT DEFAULT '' NOT NULL", // p. ex. 21 rue de cotte
     35                "complement" => "TINYTEXT DEFAULT '' NOT NULL", // p. ex. 3e etage
     36                "boite_postale" => "VARCHAR(40) DEFAULT '' NOT NULL",
     37                "code_postal" => "VARCHAR(40) DEFAULT '' NOT NULL",
     38                "ville" => "TINYTEXT DEFAULT '' NOT NULL",
     39                "region" => "VARCHAR(40) DEFAULT '' NOT NULL"
     40                "pays" => "VARCHAR(2) DEFAULT '' NOT NULL",
    4041                "maj" => "TIMESTAMP"
    4142                );
    4243        $adresses_key = array(
    43                 "PRIMARY KEY"   => "id_adresse"
     44                "PRIMARY KEY"   => "id_adresse",
     45                "KEY iso3166"   => "pays",
     46                "KEY zip"       => "region, code_postal"
    4447                );
    4548        $tables_principales['spip_adresses'] =
     
    4952        //-- Table numeros ------------------------------------------
    5053        $numeros = array(
    51                 "id_numero" => "bigint(21) NOT NULL auto_increment",
     54                "id_numero" => "BIGINT NOT NULL auto_increment",
    5255                "titre" => "VARCHAR(255) DEFAULT '' NOT NULL", // peut etre domicile, bureau, portable
    53                 "numero" => "tinytext DEFAULT '' NOT NULL",
     56                "numero" => "TINYTEXT DEFAULT '' NOT NULL",
    5457                "maj" => "TIMESTAMP"
    5558                );
    5659        $numeros_key = array(
    57                 "PRIMARY KEY" => "id_numero"
     60                "PRIMARY KEY" => "id_numero",
     61                "KEY numero"    => "numero" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail generique
    5862                );
    5963        $tables_principales['spip_numeros'] =
     
    6266        //-- Table emails ------------------------------------------
    6367        $emails = array(
    64                 "id_email" => "bigint(21) NOT NULL auto_increment",
     68                "id_email" => "BIGINT NOT NULL auto_increment",
    6569                "titre" => "VARCHAR(255) DEFAULT '' NOT NULL", // peut etre perso, boulot, etc.
    66                 "email" => "VARCHAR(40) DEFAULT '' NOT NULL",
     70                "email" => "VARCHAR(255) DEFAULT '' NOT NULL",
    6771                "maj" => "TIMESTAMP"
    6872                );
    6973        $emails_key = array(
    7074                "PRIMARY KEY"   => "id_email",
    71                 "KEY email"     => "email" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail g?n?rique
     75                "KEY email"     => "email" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail generique
    7276                );
    7377        $tables_principales['spip_emails'] =
     
    8589        //-- Table adresses_liens ---------------------------------------
    8690        $adresses_liens = array(
    87                 "id_adresse" => "BIGINT(21) NOT NULL",
    88                 "id_objet" => "BIGINT(21) NOT NULL",
    89                 "objet" => "varchar(25) NOT NULL", // peut etre un compte ou un contact
    90                 'type' => 'varchar(25) not null default ""'
     91                "id_adresse" => "BIGINT NOT NULL",
     92                "id_objet" => "BIGINT NOT NULL",
     93                "objet" => "VARCHAR(25) NOT NULL", // peut etre un compte ou un contact
     94                'type' => 'VARCHAR(25) not null default ""'
    9195        );
    9296        $adresses_liens_key = array(
     
    100104        //-- Table numeros_liens ------------------------------------------
    101105        $numeros_liens = array(
    102                 "id_numero" => "bigint(21) NOT NULL DEFAULT 0",
    103                 "id_objet" => "bigint(21) NOT NULL DEFAULT 0",
    104                 "objet" => "varchar(25) NOT NULL", // peut etre un contact ou un compte
    105                 'type' => 'varchar(25) not null default ""'
     106                "id_numero" => "BIGINT NOT NULL DEFAULT 0",
     107                "id_objet" => "BIGINT NOT NULL DEFAULT 0",
     108                "objet" => "VARCHAR(25) NOT NULL", // peut etre un contact ou un compte
     109                'type' => 'VARCHAR(25) not null default ""'
    106110        );
    107111        $numeros_liens_key = array(
     
    115119        //-- Table emails_liens ------------------------------------------
    116120        $emails_liens = array(
    117                 "id_email" => "bigint(21) NOT NULL DEFAULT 0",
    118                 "id_objet" => "bigint(21) NOT NULL DEFAULT 0",
    119                 "objet" => "varchar(25) NOT NULL", // peut etre un contact ou un compte
    120                 'type' => 'varchar(25) not null default ""'
     121                "id_email" => "BIGINT NOT NULL DEFAULT 0",
     122                "id_objet" => "BIGINT NOT NULL DEFAULT 0",
     123                "objet" => "VARCHAR(25) NOT NULL", // peut etre un contact ou un compte
     124                'type' => 'VARCHAR(25) not null default ""'
    121125                );
    122126        $emails_liens_key = array(
    123                 "PRIMARY KEY" => "id_email, id_objet, objet, type",
     127                "PRIMARY KEY" => "id_email, id_objet, objet",
    124128                "KEY id_email" => "id_email"
    125129                );
     
    127131                array('field' => &$emails_liens, 'key' => &$emails_liens_key);
    128132
    129        
     133
    130134        return $tables_auxiliaires;
    131135}
  • _plugins_/coordonnees/branches/v1.4/base/coordonnees_upgrade.php

    r50262 r66405  
    77function coordonnees_upgrade($nom_meta_base_version, $version_cible){
    88        include_spip('inc/meta');
    9        
    10        
     9
     10
    1111        /**
    1212         *
     
    1414         *
    1515         */
    16          
     16
    1717        $current_version = "0.0";
    1818        if (isset($GLOBALS['meta'][$nom_meta_base_version]))
    1919                $current_version = $GLOBALS['meta'][$nom_meta_base_version];
    20        
     20
    2121        if ($current_version=="0.0") {
    2222                include_spip('base/create');
     
    2626                ecrire_meta($nom_meta_base_version, $current_version=$version_cible);
    2727        }
    28        
     28
    2929        // On utilise plus le champ "numero" qui sera inclu dans la "voie"
    30         if (version_compare($current_version, "1.1", "<")) { 
     30        if (version_compare($current_version, "1.1", "<")) {
    3131                // on ajoute le contenu du champ "numero" au champ "voie"
    3232                sql_update("spip_adresses",
     
    3838                ecrire_meta($nom_meta_base_version, $current_version="1.1");
    3939        }
    40        
     40
    4141        // On supprime les "type" en les transformant en vrai "titre" libres
    42         if (version_compare($current_version, "1.2", "<")) { 
     42        if (version_compare($current_version, "1.2", "<")) {
    4343                $ok = true;
    44                
     44
    4545                // On renomme les champs "type_truc" en "titre" tout simplement + on les allonge
    46                 $ok &= sql_alter('TABLE spip_adresses CHANGE type_adresse titre varchar(255) not null default ""');
    47                 $ok &= sql_alter('TABLE spip_numeros CHANGE type_numero titre varchar(255) not null default ""');
    48                 $ok &= sql_alter('TABLE spip_emails CHANGE type_email titre varchar(255) not null default ""');
    49                
     46                $ok &= sql_alter('TABLE spip_adresses CHANGE type_adresse titre VARCHAR(255) not null default ""');
     47                $ok &= sql_alter('TABLE spip_numeros CHANGE type_numero titre VARCHAR(255) not null default ""');
     48                $ok &= sql_alter('TABLE spip_emails CHANGE type_email titre VARCHAR(255) not null default ""');
     49
    5050                if ($ok){
    5151                        spip_log('Tables coordonnées correctement passsées en version 1.2','coordonnees');
     
    5454                else return false;
    5555        }
    56        
     56
    5757        // On passe les pays en code ISO, beaucoup plus génériques que les ids SQL
    58         if (version_compare($current_version, "1.3", "<")) { 
     58        if (version_compare($current_version, "1.3", "<")) {
    5959                $ok = true;
    60                
     60
    6161                // On ajoute un champ pour le code car il faut les deux champs pour la transistion
    62                 $ok &= sql_alter('TABLE spip_adresses ADD pays_code varchar(2) not null default ""');
    63                
     62                $ok &= sql_alter('TABLE spip_adresses ADD pays_code VARCHAR(2) not null default ""');
     63
    6464                // On parcourt les adresses pour remplir le code du pays
    6565                $adresses = sql_allfetsel('id_adresse,pays', 'spip_adresses');
     
    7373                        }
    7474                }
    75                
     75
    7676                // On supprime l'ancien
    7777                $ok &= sql_alter('TABLE spip_adresses DROP pays');
    78                
     78
    7979                // On change le nom du nouveau
    80                 $ok &= sql_alter('TABLE spip_adresses CHANGE pays_code pays varchar(2) not null default ""');
    81                
     80                $ok &= sql_alter('TABLE spip_adresses CHANGE pays_code pays VARCHAR(2) not null default ""');
     81
    8282                if ($ok){
    8383                        spip_log('Tables coordonnées correctement passsées en version 1.3','coordonnees');
     
    8686                else return false;
    8787        }
    88        
     88
    8989        // On avait supprimer les types, mais ils reviennent en force mais dans les LIENS
    90         if (version_compare($current_version, "1.4", "<")) { 
     90        if (version_compare($current_version, "1.4", "<")) {
    9191                $ok = true;
    92                
     92
    9393                // On ajoute un champ "type" plus petit que l'ancien (car vrai type donc généralement juste un mot)
    94                 $ok &= sql_alter('TABLE spip_adresses_liens ADD type varchar(25) not null default ""');
     94                $ok &= sql_alter('TABLE spip_adresses_liens ADD type VARCHAR(25) not null default ""');
    9595                $ok &= sql_alter('TABLE spip_adresses_liens DROP PRIMARY KEY');
    9696                $ok &= sql_alter('TABLE spip_adresses_liens ADD PRIMARY KEY (id_adresse, id_objet, objet, type)');
    97                
    98                 $ok &= sql_alter('TABLE spip_numeros_liens ADD type varchar(25) not null default ""');
     97
     98                $ok &= sql_alter('TABLE spip_numeros_liens ADD type VARCHAR(25) not null default ""');
    9999                $ok &= sql_alter('TABLE spip_numeros_liens DROP PRIMARY KEY');
    100100                $ok &= sql_alter('TABLE spip_numeros_liens ADD PRIMARY KEY (id_numero, id_objet, objet, type)');
    101                
    102                 $ok &= sql_alter('TABLE spip_emails_liens ADD type varchar(25) not null default ""');
     101
     102                $ok &= sql_alter('TABLE spip_emails_liens ADD type VARCHAR(25) not null default ""');
    103103                $ok &= sql_alter('TABLE spip_emails_liens DROP PRIMARY KEY');
    104104                $ok &= sql_alter('TABLE spip_emails_liens ADD PRIMARY KEY (id_email, id_objet, objet, type)');
    105                
     105
    106106                if ($ok){
    107107                        spip_log('Tables coordonnées correctement passsées en version 1.4','coordonnees');
     
    111111        }
    112112
    113         if (version_compare($current_version, "1.5", "<")) { 
     113        if (version_compare($current_version, "1.5", "<")) {
    114114                // mettre les auteurs par defaut comme objet «coordonnable»
    115115                ecrire_meta('coordonnees', serialize(array('objets'=>array('auteur'))));
     
    117117        }
    118118
     119        if (version_compare($current_version, "1.6", "<")) {
     120                $ok = true;
     121                // ajout du champs region a la table adresses
     122                $ok &= sql_alter("TABLE spip_adresses ADD region VARCHAR(40) DEFAULT '' NOUT NULL");
     123                ecrire_meta($nom_meta_base_version, $current_version="1.6");
     124        }
     125
    119126}
    120127
    121128function coordonnees_vider_tables($nom_meta_base_version) {
    122        
     129
    123130        sql_drop_table("spip_adresses");
    124131        sql_drop_table("spip_adresses_liens");
  • _plugins_/coordonnees/branches/v1.4/formulaires/editer_adresse.html

    r47855 r66405  
    1818                                [(#SAISIE{input, code_postal, label=<:coordonnees:label_code_postal:>})]
    1919                                [(#SAISIE{input, ville, label=<:coordonnees:label_ville:>})]
     20                                [(#SAISIE{input, region, label=<:coordonnees:label_region:>})]
    2021                                [(#SAISIE{pays, pays, code_pays=oui, label=<:coordonnees:label_pays:>,defaut=FR})]
    2122                        </ul>
     
    2526                                <input type='submit' class='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
    2627                        </p>
    27                        
     28
    2829                </div></form>
    2930        ]
  • _plugins_/coordonnees/branches/v1.4/lang/coordonnees_en.php

    r50280 r66405  
    5656        'label_objets_actifs' => 'Objets', # NEW
    5757        'label_pays' => 'Country',
     58        'label_region' => 'Department',
    5859        'label_titre' => 'Titre', # NEW
    5960        'label_type_adresse' => 'Address type',
  • _plugins_/coordonnees/branches/v1.4/lang/coordonnees_fr.php

    r57311 r66405  
    5555        'label_objets_actifs' => 'Objets',
    5656        'label_pays' => 'Pays',
     57        'label_region' => 'Région',
    5758        'label_telephone' => 'Téléphone',
    5859        'label_titre' => 'Titre',
  • _plugins_/coordonnees/branches/v1.4/plugin.xml

    r55300 r66405  
    1515        <lien>http://www.spip-contrib.net/Plugin-Coordonnees</lien>
    1616        <icon>images/addressbook-128.png</icon>
    17        
    18         <version>1.4.8</version>
    19         <version_base>1.5</version_base>
     17
     18        <version>1.4.9</version>
     19        <version_base>1.6</version_base>
    2020        <etat>test</etat>
    21        
     21
    2222        <auteur>Matthieu Marcillaud - Cyril MARION - [Ateliers CYM->http://www.cym.fr]</auteur>
    23        
     23
    2424        <licence>GNU/GPL</licence>
    2525        <traduire gestionnaire="salvatore" module="coordonnees" reference="fr" />
    26        
     26
    2727        <prefix>coordonnees</prefix>
    2828        <fonctions>coordonnees_fonctions.php</fonctions>
     
    6767                <url>configurer_coordonnees</url>
    6868        </bouton>
    69        
     69
    7070        <necessite id="SPIP" version="[2.1.0;3.0.0-dev)" />
    7171        <necessite id="saisies" version="[1.5.0;]" />
    7272
    7373        <necessite id="pays" version="[1.0.5;]" />
    74        
     74
    7575        <categorie>auteur</categorie>
    76        
     76
    7777</plugin>
  • _plugins_/coordonnees/branches/v1.4/prive/liste/adresses.html

    r46357 r66405  
    1313                                [<div class='boite_postale'>(#BOITE_POSTALE)</div>]
    1414                                [<div class='code_postal'>#CODE_POSTAL (#VILLE)</div>]
     15                                [<div class='region'>(#REGION)</div>]
    1516                                <BOUCLE_pays(PAYS){code=#PAYS}><div class='pays'>#NOM</div></BOUCLE_pays>
    1617                                [(#REM) Un coup pour les champs extras ]
     
    2425                                                |parametre_url{id_adresse,#ID_ADRESSE}
    2526                                                |parametre_url{retour,[(#ENV{retour,#SELF})]})],ajax})]
    26                                                
     27
    2728                                [(#BOUTON_ACTION{
    2829                                        [(#CHEMIN{images/supprimer-16.png}|balise_img{<:coordonnees:supprimer_adresse:>})],
Note: See TracChangeset for help on using the changeset viewer.