85069dd42ecf3499aff0c89567c2b8c351e2bf20
[spip_souscriptions.git] / base / souscription.php
1 <?php
2 /**
3  * Déclarations relatives à la base de données
4  *
5  * @plugin     Souscription
6  * @copyright  2013
7  * @author     Olivier Tétard
8  * @licence    GNU/GPL
9  * @package    SPIP\Souscription\Pipelines
10  */
11
12 if (!defined('_ECRIRE_INC_VERSION')) return;
13
14
15 /**
16  * Déclaration des alias de tables et filtres automatiques de champs
17  *
18  * @pipeline declarer_tables_interfaces
19  * @param array $interfaces
20  *     Déclarations d'interface pour le compilateur
21  * @return array
22  *     Déclarations d'interface pour le compilateur
23  */
24 function souscription_declarer_tables_interfaces($interfaces) {
25   $interfaces['table_des_tables']['souscriptions'] = 'souscriptions';
26   $interfaces['table_des_tables']['souscription_campagnes'] = 'souscription_campagnes';
27
28   return $interfaces;
29 }
30
31
32 /**
33  * Déclaration des objets éditoriaux
34  *
35  * @pipeline declarer_tables_objets_sql
36  * @param array $tables
37  *     Description des tables
38  * @return array
39  *     Description complétée des tables
40  */
41 function souscription_declarer_tables_objets_sql($tables) {
42
43   $tables['spip_souscriptions'] =
44     array('type' => 'souscription',
45           'principale' => "oui",
46           'table_objet_surnoms' => array('souscription'), // table_objet('souscription') => 'souscription'
47           'field'=> array("id_souscription" => "bigint(21) NOT NULL",
48                           "id_transaction"      => "bigint(21) NOT NULL DEFAULT 0",
49                           "id_souscription_campagne" => "bigint(21) NOT NULL DEFAULT 0",
50                           "courriel"            => "text NOT NULL DEFAULT ''",
51                           "nom"                 => "text NOT NULL DEFAULT ''",
52                           "prenom"              => "text NOT NULL DEFAULT ''",
53                           "code_postal"         => "text NOT NULL DEFAULT ''",
54                           "adresse"             => "text NOT NULL DEFAULT ''",
55                           "ville"               => "text NOT NULL DEFAULT ''",
56                           "pays"                => "text NOT NULL DEFAULT ''",
57                           "recu_fiscal"         => "varchar(3) NOT NULL DEFAULT ''",
58                           "type_souscription"   => "varchar(255) NOT NULL DEFAULT ''",
59                           "informer_comite_local" => "varchar(3) NOT NULL DEFAULT ''",
60                           "envoyer_info"        => "varchar(3) NOT NULL DEFAULT ''",
61                           "date_souscription "  => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
62                           "maj"                 => "TIMESTAMP"
63                           ),
64           'key' => array("PRIMARY KEY"          => "id_souscription",
65                          "KEY id_transaction"   => "id_transaction",
66                          "KEY id_souscription_campagne" => "id_souscription_campagne"),
67           'titre' => "nom AS titre, '' AS lang",
68           'date' => "date_souscription",
69           'champs_editables'  => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'),
70           'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'),
71           'rechercher_champs' => array(),
72           'join' => array("id_transaction" => "id_transaction"),
73           /* 'join' => array("id_souscription_campagne" => "id_souscription_campagne"), */
74           /* 'tables_jointures'  => array('souscription_campagnes'), */
75           'tables_jointures'  => array('spip_transactions'),
76           );
77
78   $tables['spip_souscription_campagnes'] =
79     array('type' => 'souscription_campagne',
80           'principale' => "oui",
81           'table_objet_surnoms' => array('souscriptioncampagne'),
82           'field'=> array("id_souscription_campagne" => "bigint(21) NOT NULL",
83                           "objectif"                 => "int(11) NOT NULL DEFAULT 0",
84                           "objectif_initial"         => "int(11) NOT NULL DEFAULT 0",
85                           "type_objectif"            => "varchar(255) NOT NULL DEFAULT 0",
86                           "titre"                    => "text NOT NULL DEFAULT ''",
87                           "texte"                    => "longtext NOT NULL DEFAULT ''",
88                           "statut"                   => "varchar(255) NOT NULL DEFAULT 0",
89                           "date"                     => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
90                           "maj"                      => "TIMESTAMP"
91                           ),
92           'key' => array("PRIMARY KEY"               => "id_souscription_campagne",
93                          "KEY id_souscription_campagne" => "id_souscription_campagne",
94                          ),
95           'titre' => "titre AS titre, '' AS lang",
96           'date' => "date",
97           'champs_editables'  => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
98           'champs_versionnes' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
99           'rechercher_champs' => array(),
100           /* 'tables_jointures'  => array('spip_souscription_campagnes'), */
101           );
102
103   return $tables;
104 }