source: spip-zone/_plugins_/coordonnees/trunk/base/coordonnees.php @ 99580

Last change on this file since 99580 was 99580, checked in by toutati@…, 3 years ago

Ajout du champ province (pour les Québecois·e·s)

File size: 7.5 KB
Line 
1<?php
2/**
3 * Plugin Coordonnees
4 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
5 */
6
7if (!defined('_ECRIRE_INC_VERSION')) return;
8
9
10/**
11 * Déclaration des alias de tables et filtres automatiques de champs
12 */
13function coordonnees_declarer_tables_interfaces($interfaces) {
14
15        $interfaces['table_des_tables']['adresses'] = 'adresses';
16        $interfaces['table_des_tables']['numeros'] = 'numeros';
17        $interfaces['table_des_tables']['emails'] = 'emails';
18
19        $interfaces['tables_jointures']['spip_auteurs'][] = 'adresses_liens';
20        $interfaces['tables_jointures']['spip_auteurs'][] = 'numeros_liens';
21        $interfaces['tables_jointures']['spip_auteurs'][] = 'emails_liens';
22
23        $interfaces['table_des_traitements']['VILLE'][] = _TRAITEMENT_TYPO;
24
25        return $interfaces;
26}
27
28
29/**
30 * Déclaration des objets éditoriaux
31 */
32function coordonnees_declarer_tables_objets_sql($tables) {
33
34        /* ADRESSES */
35        $tables['spip_adresses'] = array(
36                'type'                   => 'adresse',
37                'principale'             => "oui",
38                'field' => array(
39                        "id_adresse"       => "bigint(21) NOT NULL",
40                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // perso, pro, vacance...
41                        "voie"             => "tinytext NOT NULL", // p. ex. 21 rue de cotte
42                        "complement"       => "tinytext NOT NULL", // p. ex. 3e etage
43                        "boite_postale"    => "varchar(40) NOT NULL DEFAULT ''",
44                        "code_postal"      => "varchar(40) NOT NULL DEFAULT ''",
45                        "ville"            => "tinytext NOT NULL",
46                        "region"           => "varchar(40) NOT NULL DEFAULT ''",
47                        "province"         => "varchar(40) NOT NULL DEFAULT ''",
48                        "pays"             => "varchar(3) NOT NULL DEFAULT ''",
49                        "maj"              => "TIMESTAMP"
50                ),
51                'key' => array(
52                        "PRIMARY KEY"      => "id_adresse",
53                        "KEY iso3166"      => "pays",
54                        "KEY zip"          => "region, code_postal"
55                ),
56                'titre' => "titre AS titre, '' AS lang",
57                'champs_editables'       => array('titre', 'voie', 'complement', 'boite_postale', 'code_postal', 'ville', 'region', 'province', 'pays'),
58                'champs_versionnes'      => array(),
59                'rechercher_champs'      => array('pays' => 8, 'titre' => 5, 'voie' => 3, 'region' => 3, 'province' => 3, 'ville' => 3),
60                'tables_jointures'       => array('spip_adresses_liens'),
61                /* Les textes standard */
62                'texte_modifier'         => 'coordonnees:modifier_adresse',
63                'texte_ajouter'          => 'coordonnees:ajouter_adresse',
64                'texte_logo_objet'       => 'coordonnees:logo_adresse',
65                'texte_creer'            => 'coordonnees:nouvelle_adresse',
66                'texte_objet'            => 'coordonnees:adresse',
67                'texte_objets'           => 'coordonnees:adresses',
68                'info_aucun_objet'       => 'coordonnees:info_aucune_adresse',
69                'info_1_objet'           => 'coordonnees:info_1_adresse',
70                'info_nb_objets'         => 'coordonnees:info_nb_adresses',
71        );
72
73        /* NUMEROS DE TELEPHONE */
74        $tables['spip_numeros'] = array(
75                'type'                   => 'numero',
76                'principale'             => "oui",
77                'field' => array(
78                        "id_numero"        => "bigint(21) NOT NULL",
79                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // domicile, bureau, etc.
80                        "numero"           => "varchar(255) NOT NULL DEFAULT ''",
81                        "maj"              => "TIMESTAMP"
82                ),
83                'key' => array(
84                        "PRIMARY KEY"      => "id_numero",
85                        "KEY numero"       => "numero" // on ne met pas unique pour le cas ou 2 contacts partagent le meme numero generique
86                ),
87                'titre' => "titre AS titre, '' AS lang",
88                'champs_editables'       => array( 'titre', 'numero' ),
89                'champs_versionnes'      => array(),
90                'rechercher_champs'      => array('titre' => 5, 'numero' => 5),
91                'tables_jointures'       => array('spip_numeros_liens'),
92                /* Les textes standard */
93                'texte_modifier'         => 'coordonnees:modifier_numero',
94                'texte_ajouter'          => 'coordonnees:ajouter_numero',
95                'texte_logo_objet'       => 'coordonnees:logo_numero',
96                'texte_creer'            => 'coordonnees:nouveau_numero',
97                'texte_objet'            => 'coordonnees:numero',
98                'texte_objets'           => 'coordonnees:numeros',
99                'info_aucun_objet'       => 'coordonnees:info_aucun_numero',
100                'info_1_objet'           => 'coordonnees:info_1_numero',
101                'info_nb_objets'         => 'coordonnees:info_nb_numeros',
102        );
103
104        /* EMAILS */
105        $tables['spip_emails'] = array(
106                'type'                   => 'email',
107                'principale'             => "oui",
108                'field' => array(
109                        "id_email"         => "bigint(21) NOT NULL",
110                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // perso, boulot, etc.
111                        "email"            => "varchar(255) NOT NULL DEFAULT ''",
112                        "maj"              => "TIMESTAMP"
113                ),
114                'key' => array(
115                        "PRIMARY KEY"      => "id_email",
116                        "KEY email"        => "email" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail generique
117                ),
118                'titre' => "titre AS titre, '' AS lang",
119                'champs_editables'       => array( 'titre', 'email' ),
120                'champs_versionnes'      => array(),
121                'rechercher_champs'      => array('titre' => 5, 'email' => 5),
122                'tables_jointures'       => array('spip_emails_liens'),
123                /* Les textes standard */
124                'texte_modifier'         => 'coordonnees:modifier_email',
125                'texte_ajouter'          => 'coordonnees:ajouter_email',
126                'texte_logo_objet'       => 'coordonnees:logo_email',
127                'texte_creer'            => 'coordonnees:nouvel_email',
128                'texte_objet'            => 'coordonnees:email',
129                'texte_objets'           => 'coordonnees:emails',
130                'info_aucun_objet'       => 'coordonnees:info_aucun_email',
131                'info_1_objet'           => 'coordonnees:info_1_email',
132                'info_nb_objets'         => 'coordonnees:info_nb_emails',
133        );
134
135        return $tables;
136}
137
138
139/**
140 * Déclaration des tables secondaires (liaisons)
141 */
142function coordonnees_declarer_tables_auxiliaires($tables) {
143
144        $tables['spip_adresses_liens'] = array(
145                'field' => array(
146                        "id_adresse"        => "bigint(21) DEFAULT '0' NOT NULL",
147                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
148                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
149                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
150                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
151                ),
152                'key' => array(
153                        "PRIMARY KEY"       => "id_adresse,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
154                        "KEY id_adresse"    => "id_adresse",
155                        "KEY id_objet"      => "id_objet",
156                        "KEY objet"         => "objet",
157                )
158        );
159        $tables['spip_numeros_liens'] = array(
160                'field' => array(
161                        "id_numero"         => "bigint(21) DEFAULT '0' NOT NULL",
162                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
163                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
164                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
165                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
166                ),
167                'key' => array(
168                        "PRIMARY KEY"       => "id_numero,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
169                        "KEY id_numero"     => "id_numero",
170                        "KEY id_objet"      => "id_objet",
171                        "KEY objet"         => "objet",
172                )
173        );
174        $tables['spip_emails_liens'] = array(
175                'field' => array(
176                        "id_email"          => "bigint(21) DEFAULT '0' NOT NULL",
177                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
178                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
179                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
180                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
181                ),
182                'key' => array(
183                        "PRIMARY KEY"       => "id_email,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
184                        "KEY id_email"      => "id_email",
185                        "KEY id_objet"      => "id_objet",
186                        "KEY objet"         => "objet",
187                )
188        );
189
190        return $tables;
191}
Note: See TracBrowser for help on using the repository browser.