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

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

on ajoute la petite loupe à coté de l'instruction "voir en ligne" sur les pages de vue d'un contact ou d'une organisation;

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