886663abec2ee7ea1540287771842ea68da3cc72
[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                           "recu_fiscal"         => "varchar(3) NOT NULL DEFAULT ''",
57                           "type_souscription"   => "varchar(255) NOT NULL DEFAULT ''",
58                           "informer_comite_local" => "varchar(3) NOT NULL DEFAULT ''",
59                           "envoyer_info"        => "varchar(3) NOT NULL DEFAULT ''",
60                           "date_souscription "  => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
61                           "maj"                 => "TIMESTAMP"
62                           ),
63           'key' => array("PRIMARY KEY"          => "id_souscription",
64                          "KEY id_transaction"   => "id_transaction",
65                          "KEY id_souscription_campagne" => "id_souscription_campagne"),
66           'titre' => "nom AS titre, '' AS lang",
67           'date' => "date_souscription",
68           'champs_editables'  => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
69           'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
70           'rechercher_champs' => array(),
71           'join' => array("id_transaction" => "id_transaction"),
72           /* 'join' => array("id_souscription_campagne" => "id_souscription_campagne"), */
73           /* 'tables_jointures'  => array('souscription_campagnes'), */
74           'tables_jointures'  => array('spip_transactions'),
75           );
76
77   $tables['spip_souscription_campagnes'] =
78     array('type' => 'souscription_campagne',
79           'principale' => "oui",
80           'table_objet_surnoms' => array('souscriptioncampagne'),
81           'field'=> array("id_souscription_campagne" => "bigint(21) NOT NULL",
82                           "objectif"                 => "int(11) NOT NULL DEFAULT 0",
83                           "objectif_initial"         => "int(11) NOT NULL DEFAULT 0",
84                           "type_objectif"            => "varchar(255) NOT NULL DEFAULT 0",
85                           "titre"                    => "text NOT NULL DEFAULT ''",
86                           "texte"                    => "longtext NOT NULL DEFAULT ''",
87                           "statut"                   => "varchar(255) NOT NULL DEFAULT 0",
88                           "date"                     => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
89                           "maj"                      => "TIMESTAMP"
90                           ),
91           'key' => array("PRIMARY KEY"               => "id_souscription_campagne",
92                          "KEY id_souscription_campagne" => "id_souscription_campagne",
93                          ),
94           'titre' => "titre AS titre, '' AS lang",
95           'date' => "date",
96           'champs_editables'  => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
97           'champs_versionnes' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
98           'rechercher_champs' => array(),
99           /* 'tables_jointures'  => array('spip_souscription_campagnes'), */
100           );
101
102   return $tables;
103 }