source: spip-zone/_plugins_/contacts_et_organisations/base/contacts.php @ 48211

Last change on this file since 48211 was 48211, checked in by cyril@…, 10 years ago

on ajoute la table spip_organisations_liens;

  • Property svn:executable set to *
File size: 5.8 KB
Line 
1<?php
2/**
3 * Plugin Contacts & Organisations pour Spip 2.0
4 * Auteurs : Cyril Marion, Matthieu Marcillaud
5 * Licence GPL (c) 2009 - 2011- Ateliers CYM
6 */
7
8function contacts_declarer_tables_interfaces($interface){       
9        $interface['table_des_tables']['organisations'] = 'organisations';
10        $interface['table_des_tables']['contacts'] = 'contacts';
11        $interface['table_des_tables']['organisations_contacts'] = 'organisations_contacts';
12       
13        // -- Liaisons organisations/auteurs, contacts/auteurs et organisations/contacts
14        $interface['tables_jointures']['spip_contacts'][]= 'contacts_liens';
15        $interface['tables_jointures']['spip_auteurs'][]= 'contacts_liens';
16        $interface['tables_jointures']['spip_organisations'][] = 'auteurs';
17        $interface['tables_jointures']['spip_auteurs'][]= 'organisations';
18        $interface['tables_jointures']['spip_organisations_contacts'][]= 'contacts';
19        $interface['tables_jointures']['spip_organisations_contacts'][]= 'organisations';
20        $interface['tables_jointures']['spip_contacts'][]= 'organisations_contacts';
21        $interface['tables_jointures']['spip_organisations'][]= 'organisations_contacts';
22
23
24        /**
25         * Objectif : autoriser les traitements SPIP sur certains champs texte...
26         *
27         */
28        $interface['table_des_traitements']['NOM'][] = _TRAITEMENT_TYPO;
29        $interface['table_des_traitements']['PRENOM'][] = _TRAITEMENT_TYPO;
30        $interface['table_des_traitements']['CIVILITE'][] = _TRAITEMENT_TYPO;
31        $interface['table_des_traitements']['FONCTION'][] = _TRAITEMENT_TYPO;
32        $interface['table_des_traitements']['ACTIVITE'][] = _TRAITEMENT_TYPO;
33
34        // gerer le critere de date
35        $interface['table_date']['contacts'] = 'date_naissance';
36        $interface['table_date']['organisations'] = 'date_creation';
37
38        // titre
39        $interface['table_titre']['contacts'] = "nom AS titre, '' AS lang"; // pour avoir une #URL_CONTACT...
40        $interface['table_titre']['organisations'] = "nom AS titre, '' AS lang";
41       
42        return $interface;
43}
44
45
46function contacts_declarer_tables_principales($tables_principales){
47        //-- Table organisations ------------------------------------------
48        $organisations = array(
49                "id_organisation"       => "bigint(21) NOT NULL auto_increment",
50                "id_auteur"                     => "bigint(21) NOT NULL default 0",
51                "id_parent"                     => "bigint(21) NOT NULL default 0",
52                "nom"                           => "tinytext DEFAULT '' NOT NULL",
53        "statut_juridique"      => "tinytext DEFAULT '' NOT NULL", // forme juridique : SA, SARL, association, etc.
54        "identification"        => "tinytext DEFAULT '' NOT NULL", // N° d'identification : SIRET, SIREN, N° TVA...
55                "activite"                      => "tinytext DEFAULT '' NOT NULL", // Secteur d'activité : humanitaire, formation...
56                "date_creation"         => "datetime NOT NULL default '0000-00-00 00:00:00'",
57                "descriptif"            => "TEXT DEFAULT '' NOT NULL",
58                "maj"                           => "TIMESTAMP"
59                );
60        $organisations_key = array(
61                "PRIMARY KEY"           => "id_organisation",
62                "KEY id_auteur"     => "id_auteur"
63                );
64        $organisations_join = array(
65                // sinon (ORGANISATIONS){auteurs.statut = xxx} ne fonctionne pas...
66                // va comprendre...
67                "id_auteur"             => "id_auteur", 
68                "id_organisation"       => "id_organisation"
69        );
70        $tables_principales['spip_organisations'] =
71                array('field' => &$organisations, 'key' => &$organisations_key, 'join' => &$organisations_join);
72
73        //-- Table contacts ------------------------------------------
74        $contacts = array(
75                "id_contact"    => "bigint(21) NOT NULL auto_increment", 
76                "civilite"              => "tinytext DEFAULT '' NOT NULL",
77                "nom"                   => "tinytext DEFAULT '' NOT NULL",
78                "prenom"                => "tinytext NOT NULL DEFAULT ''",
79                "fonction"              => "tinytext DEFAULT '' NOT NULL", // gérant, membre, trésorier, etc.
80                "date_naissance"=> "datetime NOT NULL default '0000-00-00 00:00:00'",
81                "descriptif"    => "text DEFAULT '' NOT NULL",
82                "maj"                   => "TIMESTAMP"
83                );
84        $contacts_key = array(
85                "PRIMARY KEY"   => "id_contact",
86                );
87/*      $contacts_join = array(
88                "id_contact" => "id_contact"
89        );*/
90        $tables_principales['spip_contacts'] =
91                array('field' => &$contacts, 'key' => &$contacts_key, /*'join' => &$contacts_join*/);
92
93        return $tables_principales;
94
95}
96
97
98function contacts_declarer_tables_auxiliaires($tables_auxiliaires){
99
100    //-- Table organisations_contacts -------------------------------------
101    $organisations_contacts = array(
102        "id_organisation" => "BIGINT(21) NOT NULL",
103        "id_contact"      => "BIGINT(21) NOT NULL",
104        "type_liaison"    => "tinytext NOT NULL DEFAULT ''",
105    );
106    $organisations_contacts_key = array(
107        "PRIMARY KEY"          => "id_organisation, id_contact",
108                "KEY id_organisation"  => "id_organisation",
109                "KEY id_contact"       => "id_contact"
110    );
111        $tables_auxiliaires['spip_organisations_contacts'] =
112                array('field' => &$organisations_contacts, 'key' => &$organisations_contacts_key);
113
114
115    //-- Table organisations_liens -------------------------------------
116    $organisations_liens = array(
117        "id_organisation" => "BIGINT(21) NOT NULL",
118        "id_objet"      => "BIGINT(21) NOT NULL",
119        "objet"         => "VARCHAR(25) NOT NULL",
120    );
121    $organisations_liens_key = array(
122        "PRIMARY KEY"    => "id_organisation, id_objet, objet",
123                "KEY id_contact" => "id_organisation"
124    );
125        $tables_auxiliaires['spip_organisations_liens'] =
126                array('field' => &$organisations_liens, 'key' => &$organisations_liens_key);
127
128
129    //-- Table contacts_liens -------------------------------------
130    $contacts_liens = array(
131        "id_contact" => "BIGINT(21) NOT NULL",
132        "id_objet"   => "BIGINT(21) NOT NULL",
133        "objet"      => "VARCHAR(25) NOT NULL",
134    );
135    $contacts_liens_key = array(
136        "PRIMARY KEY"    => "id_contact, id_objet, objet",
137                "KEY id_contact" => "id_contact"
138    );
139        $tables_auxiliaires['spip_contacts_liens'] =
140                array('field' => &$contacts_liens, 'key' => &$contacts_liens_key);
141       
142        return $tables_auxiliaires;
143}
144
145?>
Note: See TracBrowser for help on using the repository browser.