source: spip-zone/_plugins_/sel/base/structure.php @ 53859

Last change on this file since 53859 was 53859, checked in by zonepro@…, 9 years ago

Et voilà la fiche auteur !

File size: 22.8 KB
Line 
1<?php
2
3/* Déclaration des tables et jointures :
4sel_declarer_tables_interfaces -> SPIP 2
5sel_declarer_tables_principales -> SPIP 2
6sel_declarer_tables_objets_sql -> SPIP 3
7sel_declarer_tables_auxiliaires -> SPIP 2 et 3
8*/
9
10function sel_declarer_tables_interfaces($interface) {
11// DECLARATION TABLES POUR SPIP 2
12
13        // Déclaration de nommage des tables
14        // ---------------------------------
15       
16        $interface['table_des_tables']['sels'] = 'sels';
17        $interface['table_des_tables']['organisations'] = 'organisations';
18        $interface['table_des_tables']['annonces'] = 'annonces';
19        $interface['table_des_tables']['echanges'] = 'echanges';
20        $interface['table_des_tables']['themes'] = 'themes';
21        $interface['table_des_tables']['parametres'] = 'parametres';
22
23        // Déclaration des relations 1 - N
24        // -------------------------------             
25        // syntaxe table_jointure [table source (avec sa clé primaire)][champ] = [table cible (avec clé étrangère)]
26        $interface['tables_jointures']['spip_auteurs'][] = 'annonces'; 
27        $interface['tables_jointures']['spip_offreurs'][] = 'echanges';  // vers le champ "id_offreur" d'une vue spip_offreurs  de spip_auteurs
28        $interface['tables_jointures']['spip_demandeurs'][] = 'echanges'; // vers le champ "id_demandeur" d'une vue spip_demandeurs  de spip_auteurs
29        $interface['tables_jointures']['spip_valideurs'][] = 'echanges';  // vers le champ "id_valideur" d'une vue spip_valideurs de spip_auteurs
30        $interface['tables_jointures']['spip_annonces'][] = 'echanges'; // cette clé étrangère pourra être NULL (pas forcément d'annonce de référence à la saisie d'un échange)
31
32
33        // Déclaration des relations N - N
34        // -------------------------------
35        // syntaxe : ['tables_jointures']['table principale (avec sa clé primaire)'] = 'table_auxiliaire (clé étrangère)'.
36        $interface['tables_jointures']['spip_auteurs'][] = 'auteurs_sels';
37        $interface['tables_jointures']['spip_sels'][] = 'auteurs_sels'; 
38
39        $interface['tables_jointures']['spip_auteurs'][] = 'auteurs_organisations';
40        $interface['tables_jointures']['spip_sels'][] = 'auteurs_organisations';       
41        $interface['tables_jointures']['spip_organisations'][] = 'auteurs_organisations';
42
43        $interface['tables_jointures']['spip_themes'][] = 'themes_annonces';
44        $interface['tables_jointures']['spip_annonces'][] = 'themes_annonces'; 
45       
46        // $interface['table_des_traitements']['NOM_DU_CHAMP']['table'] = _TRAITEMENT_TYPO;
47        return $interface;
48}
49
50
51
52function sel_declarer_tables_principales($tables_principales) {
53// TABLES PRINCIPALES - OBJETS POUR SPIP 2
54
55/* Cette fonction se compose de 3 parties :
56 1- déclaration de structure de table,
57 2- déclaration des clés primaires et index
58 - retour d'un résultat sous forme de tableau qui contient les 2 premières déclarations,
59 avec éventuellement jointures N-N d'une table sur elle-même, exemple :
60 $tables_principales['spip_trucs']['join'] =
61      array("id_auteur" => "id_auteur",
62            "id_traducteur" => "id_auteur");
63où id_traducteur = 1 autre champ de la table auteur, pointant vers un id_auteur de la même table
64*/
65
66// 1 - STRUCTURE DES TABLES
67// ------------------------
68
69        $spip_sels = array(
70                "id_sel" => "BIGINT(21) NOT NULL",
71                "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
72                "id_sel"  =>  "BIGINT(21) DEFAULT NULL",
73                "num_adhesion_sel"   => "VARCHAR(10) DEFAULT NULL",
74                "etat_compte" => "VARCHAR(20) DEFAULT NULL", // "actif" ou "inactif"
75                "etat_compte_depuis"   => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //= format datetime 2011-03-14 22:20:33
76                "adresse1"  => "TINYTEXT NOT NULL",
77                "adresse2" => "TINYTEXT DEFAULT NULL",
78                "code_postal" => "VARCHAR(20) NOT NULL DEFAULT ''",
79                "ville" => "VARCHAR(255) NOT NULL DEFAULT ''",
80                "pays" => "VARCHAR(150) NOT NULL DEFAULT 'France'",
81                "tel1" => "VARCHAR(50) NOT NULL DEFAULT ''",
82                "tel2" => "VARCHAR(50) DEFAULT NULL",
83                "email" => "TINYTEXT DEFAULT NULL",
84                "nom_unite" => "VARCHAR(255) DEFAULT NULL", // basilic, piaf, bouchon...
85                "credit_ouverture" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'", // chiffre : valeur à créditer à tout ouverture de comte. prévoir question : à prélever sur le compte d'un SEL ou corne d'abondance ?
86                "validation_echange" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'", // permettre la validation implicite d'un échange saisi par un membre ? si oui, nombre de jours laissé avant validation automatique, 0 sinon
87                "cotisation_unite" => "VARCHAR(30) NOT NULL DEFAULT ''", // combinaison de 3 chaînes :
88                /*
89                1. existe-t-il une cotisation en unités ?
90                - sans, forfait, pourcnt
91                2. sur les comptes actifs ou tous les comptes ?
92                - tous, actf (tous les comptes, les comptes actifs uniquement)
93                3. A quelle fréquence ?
94                - 12 (tous les mois), 4 (une fois par trimestre), 2 (toues les 6 mois, 2 fois / an), 1 (une foisl'année)
95                Exemple de chaîne générée : pourcntactf01, ou forfaittous01
96                4. A prévoir en plus : sur les comptes positifs uniquement
97                */     
98                "cotisation_montant_taux" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'" // un chiffre à prélever, à prendre en valeur ou en pourcentage
99
100                /*
101                "cotisation_derniere_date" => ""
102                "cloture_compte" => ""
103                */ 
104        );
105
106        $spip_annonces = array(
107                "id_annonce" => "BIGINT(21) NOT NULL",
108                "titre" => "VARCHAR(255) NOT NULL DEFAULT ''",
109                "direction_echange" => "VARCHAR(10) NOT NULL DEFAULT 'offre'", // offre, demande, partage
110                "nature" => "VARCHAR(10) NOT NULL DEFAULT 'service'", // service, savoir (=stage), bien
111                "id_auteur" => "BIGINT(21) NOT NULL", // auteur de l'annonce
112                "date_saisie" => "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP", //= format datetime 2011-03-14 22:20:33
113                "description" => "TEXT NOT NULL",
114                "nombre_personnes" => "SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'",     
115                "date_debut" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",  // date de début, pour événement à date fixe ou libre = format timestamp 2011-03-14 22:20:33
116                "date_fin" => "DATETIME DEFAULT NULL",   // date de fin spécifiée uniquement pour les offres à dates fixes = format timestamp 2011-03-14 22:20:33
117                "adresse1"  => "TINYTEXT NOT NULL",
118                "adresse2" => "TINYTEXT DEFAULT NULL",
119                "code_postal" => "VARCHAR(20) NOT NULL DEFAULT ''",
120                "ville" => "VARCHAR(255) NOT NULL DEFAULT ''",
121                "pays" => "VARCHAR(150) NOT NULL DEFAULT ''",
122                "transport"  => "TEXT DEFAULT NULL",
123                "repas"  => "TEXT DEFAULT NULL",
124                "hebergement"  => "TEXT DEFAULT NULL",
125                "nom_referent" => "VARCHAR(255) DEFAULT NULL", // si l'auteur n'est pas le référent
126                "tel1_referent" => "VARCHAR(50) DEFAULT NULL",
127                "tel2_referent" => "VARCHAR(50) DEFAULT NULL",
128                "email_referent" => "TINYTEXT DEFAULT NULL",
129                "statut" => "VARCHAR(10) NOT NULL DEFAULT ''", // pour l'éventuelle gestion d'une modération a priori des annonces
130                "total_unite" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'",
131                "si_unite_heure" => "SMALLINT(3) UNSIGNED NOT NULL DEFAULT '0'",
132                "total_fiduc" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'",
133                "justification_fiduc" => "TINYTEXT DEFAULT NULL", // ce champ devra être rempli si des frais en euros sont indiqués
134                "commentaires"  => "TEXT DEFAULT NULL"
135        );
136               
137               
138        $spip_echanges = array(
139                "id_echange" => "BIGINT(21) NOT NULL",
140                "id_offreur" => "BIGINT(21) DEFAULT NULL", // vers id_offreur (= id_auteur) de la vue sur spip_auteurs
141                "offreur_ext"  => "VARCHAR(255) DEFAULT NULL",
142                "offreur_sel_ext"   => "VARCHAR(255) DEFAULT NULL",
143                "titre" => "VARCHAR(255) NOT NULL DEFAULT ''",
144                "date_echange"  => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // = format datetime 2011-03-14 22:20:33
145                "saisi_par" => "VARCHAR(150) NOT NULL DEFAULT 'offreur'", // 'offreur', 'demandeur' ou 'automatique'
146                "date_saisie" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //  = format timestamp 2011-03-14 22:20:33
147                "nature"   => "VARCHAR(20) NOT NULL DEFAULT 'echange'",  // 'echange', 'cotizunite', 'cloturecompte'
148                "id_demandeur"  =>  "BIGINT(21) DEFAULT NULL", // vers id_demandeur (= id_auteur) de la vue sur spip_auteurs
149                "demandeur_ext"  =>  "VARCHAR(255) DEFAULT NULL",
150                "demandeur_sel_ext" => "VARCHAR(255) DEFAULT NULL",
151                "valeur" => "INT(10) NOT NULL DEFAULT '0'",
152                "date_validation"  => "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP",
153                "id_valideur" => "BIGINT(21) DEFAULT NULL", // vers id_auteur
154                "commentaires"  => "TEXT DEFAULT NULL"
155        );
156
157        $spip_themes = array(
158                "id_theme" => "BIGINT(21) NOT NULL",
159                "id_parent" => "BIGINT(21) NOT NULL DEFAULT '0'", // 0 si theme racine
160                "id_secteur" => "BIGINT(21) NOT NULL",
161                "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
162                "descriptif" => "TEXT DEFAULT NULL"
163        );
164
165        $spip_organisations = array(
166                "id_organisation" => "BIGINT(21) NOT NULL",
167                "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
168                "description" => "TEXT DEFAULT NULL"
169        );     
170
171       
172// Cette table a un statut intermédiaire entre principale et auxiliaire.
173// Comme table auxiliaire, elle décrit :
174// - une relation d'appartenance N/N (binaire) auteur / sel ou sel / organisation (adhésion du SEL à un intersel, participation à un atelier Selidaire, etc...)
175// - une relation de correspondace N/N (ternaire) d'un adhérent pour son SEL vis à vis d'une organisation (RDS, etc...) : donc auteur / sel / organisation
176// Elle sert de table principale pour toutes les informations relatives à l'adhésion individuelle à un SEL (auteur / sel) : numéro et date d'adhésion, mode de récupération de catalogue, etc...
177
178       
179        $spip_correspondances = array(
180                "id_correspondance" => "BIGINT(21) NOT NULL",
181                "id_auteur"     => "BIGINT(21) NOT NULL DEFAULT '0'",
182                "id_sel"        => "BIGINT(21) NOT NULL DEFAULT '0'",
183                "num_adhesion"   => "VARCHAR(10) NOT NULL DEFAULT ''",
184                "cotisation_fiduc1" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // date de première cotisation
185                "cotisation_fiduc" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // date de dernière cotisation
186                "recupere_catalogue" => "VARCHAR(10) NOT NULL DEFAULT ''", //permanence, internet, poste
187                "etat_compte" => "VARCHAR(10) NOT NULL DEFAULT ''", //actif / inactif
188                "etat_compte_depuis" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //actif / inactif
189                "id_organisation"       => "BIGINT(21) NOT NULL DEFAULT '0'"
190        );
191
192       
193        $spip_parametres = array(
194                "id_parametre" => "BIGINT(21) NOT NULL",
195                "cible" => "VARCHAR(100) NOT NULL DEFAULT ''",
196                "liste_diffusion" => "VARCHAR(100) NOT NULL DEFAULT ''",
197                "expediteur" => "VARCHAR(100) NOT NULL DEFAULT ''",
198                "www" => "VARCHAR(100) NOT NULL DEFAULT ''",
199                "signature" => "VARCHAR(100) NOT NULL DEFAULT ''",
200                "acces_inscription" => "VARCHAR(100) NOT NULL DEFAULT ''",
201                "pagination" => "INT(3) UNSIGNED NOT NULL DEFAULT '10'"
202        );
203       
204// 2 - CLES     
205// --------
206
207        $spip_sels_key = array(
208                "PRIMARY KEY" => "id_sel",
209                "KEY" => "nom"
210        );
211
212        $spip_annonces_key = array(
213                "PRIMARY KEY" => "id_annonce",
214                "KEY" => "titre",
215                "KEY" => "id_auteur",
216                "KEY" => "date_debut"
217        );
218       
219        $spip_echanges_key = array(
220                "PRIMARY KEY" => "id_echange",
221                "KEY" => "id_offreur",
222                "KEY" => "id_demandeur"
223        );
224
225        $spip_themes_key = array(
226                "PRIMARY KEY" => "id_theme",
227                "KEY" => "id_parent"
228        );
229
230        $spip_organisations_key = array(
231                "PRIMARY KEY" => "id_organisation",
232        );
233
234        $spip_correspondances_key = array(
235                "PRIMARY KEY"   => "id_correspondance"
236        );     
237       
238        $spip_parametres_key = array(
239                "PRIMARY KEY" => "id_parametre"
240        );
241       
242// 3 - RETOUR RESULTAT
243// -------------------
244
245        $tables_principales['spip_auteurs']['field']['adresse1'] = "TINYTEXT NOT NULL";
246        $tables_principales['spip_auteurs']['field']['adresse2'] = "TINYTEXT DEFAULT NULL";
247        $tables_principales['spip_auteurs']['field']['code_postal'] = "VARCHAR(20) NOT NULL DEFAULT ''";
248        $tables_principales['spip_auteurs']['field']['ville'] = "VARCHAR(255) NOT NULL DEFAULT ''";
249        $tables_principales['spip_auteurs']['field']['pays'] = "VARCHAR(255) NOT NULL DEFAULT ''";
250        $tables_principales['spip_auteurs']['field']['tel1'] = "VARCHAR(50) NOT NULL DEFAULT ''";
251        $tables_principales['spip_auteurs']['field']['tel2'] = "VARCHAR(50) DEFAULT NULL";
252        $tables_principales['spip_auteurs']['field']['commentaires'] = "TEXT DEFAULT NULL";
253
254       
255        $tables_principales['spip_sels'] =
256        array('field' => &$spip_sels, 'key' => &$spip_sels_key);       
257
258        $tables_principales['spip_annonces'] =
259        array('field' => &$spip_annonces, 'key' => &$spip_annonces_key);       
260       
261        $tables_principales['spip_echanges'] =
262        array('field' => &$spip_echanges, 'key' => &$spip_echanges_key);       
263
264        $tables_principales['spip_themes'] =
265        array('field' => &$spip_themes, 'key' => &$spip_themes_key);
266
267        $tables_principales['spip_organisations'] =
268        array('field' => &$spip_organisations, 'key' => &$spip_organisations_key);
269
270        $tables_principales['spip_correspondances'] =
271        array('field' => &$spip_correspondances, 'key' => &$spip_correspondances_key); 
272       
273        $tables_principales['spip_parametres'] =
274        array('field' => &$spip_parametres, 'key' => &$spip_parametres_key);
275
276        return $tables_principales;             
277}
278
279
280function sel_declarer_tables_objets_sql($tables){
281// TABLES PRINCIPALES - OBJETS POUR SPIP 3
282
283        $tables['spip_auteurs']['field']['adresse1'] = "TINYTEXT NOT NULL";
284        $tables['spip_auteurs']['field']['adresse2'] = "TINYTEXT DEFAULT NULL";
285        $tables['spip_auteurs']['field']['code_postal'] = "VARCHAR(20) NOT NULL DEFAULT ''";
286        $tables['spip_auteurs']['field']['ville'] = "VARCHAR(255) NOT NULL DEFAULT ''";
287        $tables['spip_auteurs']['field']['pays'] = "VARCHAR(255) NOT NULL DEFAULT ''";
288        $tables['spip_auteurs']['field']['tel1'] = "VARCHAR(50) NOT NULL DEFAULT ''";
289        $tables['spip_auteurs']['field']['tel2'] = "VARCHAR(50) NOT NULL DEFAULT ''";
290        $tables['spip_auteurs']['field']['commentaires'] = "TEXT DEFAULT NULL";
291
292    $tables['spip_sels'] = array(
293
294        'principale' => "oui",
295        'field'=> array(
296                        "id_sel" => "BIGINT(21) NOT NULL",
297                        "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
298                        "num_adhesion"   => "VARCHAR(10) DEFAULT NULL",
299                        "etat_compte" => "VARCHAR(20) DEFAULT NULL", // "actif" ou "inactif"
300                        "etat_compte_depuis"   => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //= format datetime 2011-03-14 22:20:33
301                        "adresse1"  => "TINYTEXT NOT NULL",
302                        "adresse2" => "TINYTEXT DEFAULT NULL",
303                        "code_postal" => "VARCHAR(20) NOT NULL DEFAULT ''",
304                        "ville" => "VARCHAR(255) NOT NULL DEFAULT ''",
305                        "pays" => "VARCHAR(150) NOT NULL DEFAULT 'France'",
306                        "tel1" => "VARCHAR(50) NOT NULL DEFAULT ''",
307                        "tel2" => "VARCHAR(50) DEFAULT NULL",
308                        "email" => "TINYTEXT DEFAULT NULL",
309                        "nom_unite" => "VARCHAR(255) DEFAULT NULL", // basilic, piaf, bouchon...
310                        "credit_ouverture" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'", // chiffre : valeur à créditer à tout ouverture de comte. prévoir question : à prélever sur le compte d'un SEL ou corne d'abondance ?
311                        "validation_echange" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'", // permettre la validation implicite d'un échange saisi par un membre ? si oui, nombre de jours laissé avant validation automatique, 0 sinon
312                        "cotisation_unite" => "VARCHAR(30) NOT NULL DEFAULT ''", // combinaison de 3 chaînes
313                        "cotisation_montant_taux" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'" // un chiffre à prélever, à prendre en valeur ou en pourcentage
314                        /*
315                        cotisation_unite : combinaison de 3 chaînes :
316                        1. existe-t-il une cotisation en unités ?
317                        - sans, forfait, pourcnt
318                        2. sur les comptes actifs ou tous les comptes ?
319                        - tous, actf (tous les comptes, les comptes actifs uniquement)
320                        3. A quelle fréquence ?
321                        - 12 (tous les mois), 4 (une fois par trimestre), 2 (toues les 6 mois, 2 fois / an), 1 (une foisl'année)
322                        Exemple de chaîne générée : pourcntactf01, ou forfaittous01
323                        4. A prévoir en plus : sur les comptes positifs uniquement
324                        */     
325                       
326        ),
327        'key' => array(
328                        "PRIMARY KEY" => "id_sel",
329                        "KEY" => "nom"
330        ),
331    );
332       
333       
334    $tables['spip_annonces'] = array(
335        'principale' => "oui",
336        'field'=> array(
337                        "id_annonce" => "BIGINT(21) NOT NULL",
338                        "titre" => "VARCHAR(255) NOT NULL DEFAULT ''",
339                        "direction_echange" => "VARCHAR(10) NOT NULL DEFAULT 'offre'", // offre, demande, partage
340                        "nature" => "VARCHAR(10) NOT NULL DEFAULT 'service'", // service, savoir (=stage), bien
341                        "id_auteur" => "BIGINT(21) NOT NULL", // auteur de l'annonce
342                        "date_saisie" => "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP", //= format datetime 2011-03-14 22:20:33
343                        "description" => "TEXT NOT NULL",
344                        "nombre_personnes" => "SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'",     
345                        "date_debut" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'",  // date de début, pour événement à date fixe ou libre = format timestamp 2011-03-14 22:20:33
346                        "date_fin" => "DATETIME DEFAULT NULL",   // date de fin spécifiée uniquement pour les offres à dates fixes = format timestamp 2011-03-14 22:20:33
347                        "adresse1"  => "TINYTEXT NOT NULL",
348                        "adresse2" => "TINYTEXT DEFAULT NULL",
349                        "code_postal" => "VARCHAR(20) NOT NULL DEFAULT ''",
350                        "ville" => "VARCHAR(255) NOT NULL DEFAULT ''",
351                        "pays" => "VARCHAR(150) NOT NULL DEFAULT ''",
352                        "transport"  => "TEXT DEFAULT NULL",
353                        "repas"  => "TEXT DEFAULT NULL",
354                        "hebergement"  => "TEXT DEFAULT NULL",
355                        "nom_referent" => "VARCHAR(255) DEFAULT NULL", // si l'auteur n'est pas le référent
356                        "tel1_referent" => "VARCHAR(50) DEFAULT NULL",
357                        "tel2_referent" => "VARCHAR(50) DEFAULT NULL",
358                        "email_referent" => "TINYTEXT DEFAULT NULL",
359                        "statut" => "VARCHAR(10) NOT NULL DEFAULT ''", // pour l'éventuelle gestion d'une modération a priori des annonces
360                        "total_unite" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'",
361                        "si_unite_heure" => "SMALLINT(3) UNSIGNED NOT NULL DEFAULT '0'",
362                        "total_fiduc" => "INT(5) UNSIGNED NOT NULL DEFAULT '0'",
363                        "justification_fiduc" => "TINYTEXT DEFAULT NULL", // ce champ devra être rempli si des frais en euros sont indiqués
364                        "commentaires"  => "TEXT DEFAULT NULL"
365        ),
366        'key' => array(
367                        "PRIMARY KEY" => "id_annonce",
368                        "KEY" => "titre",
369                        "KEY" => "id_auteur",
370                        "KEY" => "date_debut"
371        ),
372    );
373       
374
375    $tables['spip_echanges'] = array(
376        'principale' => "oui",
377        'field'=> array(
378                        "id_echange" => "BIGINT(21) NOT NULL",
379                        "id_offreur" => "BIGINT(21) DEFAULT NULL", // vers id_offreur (= id_auteur) de la vue sur spip_auteurs
380                        "offreur_ext"  => "VARCHAR(255) DEFAULT NULL",
381                        "offreur_sel_ext"   => "VARCHAR(255) DEFAULT NULL",
382                        "titre" => "VARCHAR(255) NOT NULL DEFAULT ''",
383                        "date_echange"  => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // = format datetime 2011-03-14 22:20:33
384                        "saisi_par" => "VARCHAR(150) NOT NULL DEFAULT 'offreur'", // 'offreur', 'demandeur' ou 'automatique'
385                        "date_saisie" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //  = format timestamp 2011-03-14 22:20:33
386                        "nature"   => "VARCHAR(20) NOT NULL DEFAULT 'echange'",  // 'echange', 'cotizunite', 'cloturecompte'
387                        "id_demandeur"  =>  "BIGINT(21) DEFAULT NULL", // vers id_demandeur (= id_auteur) de la vue sur spip_auteurs
388                        "demandeur_ext"  =>  "VARCHAR(255) DEFAULT NULL",
389                        "demandeur_sel_ext" => "VARCHAR(255) DEFAULT NULL",
390                        "valeur" => "INT(10) NOT NULL DEFAULT '0'",
391                        "date_validation"  => "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP",
392                        "id_valideur" => "BIGINT(21) DEFAULT NULL", // vers id_auteur
393                        "commentaires"  => "TEXT DEFAULT NULL"
394        ),
395        'key' => array(
396                        "PRIMARY KEY" => "id_echange",
397                        "KEY" => "id_offreur",
398                        "KEY" => "id_demandeur"
399        ),
400    );
401       
402    $tables['spip_themes'] = array(
403        'principale' => "oui",
404        'field'=> array(
405                        "id_theme" => "BIGINT(21) NOT NULL",
406                        "id_parent" => "BIGINT(21) NOT NULL DEFAULT '0'", // 0 si theme racine
407                        "id_secteur" => "BIGINT(21) NOT NULL",
408                        "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
409                        "descriptif" => "TEXT DEFAULT NULL"
410        ),
411        'key' => array(
412                        "PRIMARY KEY" => "id_theme",
413                        "KEY" => "id_parent"
414        ),
415    ); 
416 
417// Une organisation est un groupe exterieur avec lequel les sélistes et les sels locaux sont en relation (adhésion ou correspondance).
418// Ce peut être : un intersel régional, un atelier selidaire, RdS, etc...
419
420    $tables['spip_organisations'] = array(
421        'principale' => "oui",
422        'field'=> array(
423                        "id_organisation" => "BIGINT(21) NOT NULL",
424                        "nom" => "VARCHAR(255) NOT NULL DEFAULT ''",
425                        "description" => "TEXT DEFAULT NULL"
426        ),
427        'key' => array(
428                        "PRIMARY KEY" => "id_organisation"
429        ),
430    );
431
432// Cette table a un statut intermédiaire entre principale et auxiliaire.
433// Comme table auxiliaire, elle décrit :
434// - une relation d'appartenance N/N (binaire) auteur / sel ou sel / organisation (adhésion du SEL à un intersel, participation à un atelier Selidaire, etc...)
435// - une relation de correspondace N/N (ternaire) d'un adhérent pour son SEL vis à vis d'une organisation (RDS, etc...) : donc auteur / sel / organisation
436// Elle sert de table principale pour toutes les informations relatives à l'adhésion individuelle à un SEL (auteur / sel) : numéro et date d'adhésion, mode de récupération de catalogue, etc...
437
438       
439        $tables['spip_correspondances'] = array(
440        'principale' => "oui",
441        'field'=> array(
442                        "id_correspondance" => "BIGINT(21) NOT NULL",
443                        "id_auteur"     => "BIGINT(21) NOT NULL DEFAULT '0'",
444                        "id_sel"        => "BIGINT(21) NOT NULL DEFAULT '0'",
445                        "num_adhesion"   => "VARCHAR(10) NOT NULL DEFAULT ''",
446                        "cotisation_fiduc1" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // date de première cotisation
447                        "cotisation_fiduc" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", // date de dernière cotisation
448                        "recupere_catalogue" => "VARCHAR(10) NOT NULL DEFAULT ''", //permanence, internet, poste
449                        "etat_compte" => "VARCHAR(10) NOT NULL DEFAULT ''", //actif / inactif
450                        "etat_compte_depuis" => "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'", //actif / inactif
451                        "id_organisation"       => "BIGINT(21) NOT NULL DEFAULT '0'"
452                ),
453        'key' => array(
454                        "PRIMARY KEY"   => "id_correspondance"
455        ),
456        );
457
458       
459        $tables['spip_parametres'] = array(
460            'principale' => "oui",
461        'field'=> array(
462                        "id_parametre" => "BIGINT(21) NOT NULL",
463                        "cible" => "VARCHAR(100) NOT NULL DEFAULT ''",
464                        "liste_diffusion" => "VARCHAR(100) NOT NULL DEFAULT ''",
465                        "expediteur" => "VARCHAR(100) NOT NULL DEFAULT ''",
466                        "www" => "VARCHAR(100) NOT NULL DEFAULT ''",
467                        "signature" => "VARCHAR(100) NOT NULL DEFAULT ''",
468                        "acces_inscription" => "VARCHAR(100) NOT NULL DEFAULT ''",
469                        "pagination" => "INT(3) UNSIGNED NOT NULL DEFAULT '10'"
470                ),
471        'key' => array(
472                        "PRIMARY KEY" => "id_parametre"
473        ),             
474        );     
475       
476        return $tables;
477
478}
479
480
481
482function sel_declarer_tables_auxiliaires($tables_auxiliaires){
483// TABLES AUXILIAIRES POUR SPIP 2 ET 3
484
485        $spip_themes_annonces = array(
486                "id_theme"      => "BIGINT(21) NOT NULL",
487                "id_annonce"    => "BIGINT(21) NOT NULL"
488        );
489
490        $spip_themes_annonces_key = array(
491                "PRIMARY KEY"   => "id_theme, id_annonce",
492                "KEY id_annonce" => "id_annonce"
493        );     
494       
495        $tables_auxiliaires['spip_themes_annonces'] = array(
496                'field' => &$spip_themes_annonces,
497                'key' => &$spip_themes_annonces_key
498        );
499       
500        return $tables_auxiliaires;
501}
502?>
Note: See TracBrowser for help on using the repository browser.