source: spip-zone/_plugins_/simple_calendrier/trunk/base/simplecal.php @ 104742

Last change on this file since 104742 was 104742, checked in by peetdu@…, 4 years ago

Ajout d’un champ Adresse pour compléter le nom du lieu.
Mise au norme de la structure HTML du formulaire événement (cf https://www.spip.net/fr_article3791.html)

File size: 4.8 KB
Line 
1<?php
2/**
3 * Plugin Simple Calendrier v2 pour SPIP 3
4 * Licence GNU/GPL
5 * 2010-2017
6 *
7 * cf. paquet.xml pour plus d'infos.
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12
13function simplecal_declarer_tables_interfaces($interfaces) {
14        $interfaces['table_des_tables']['evenements'] = 'evenements';
15
16        $interfaces['table_des_traitements']['LIEU'][]= _TRAITEMENT_RACCOURCIS;
17        $interfaces['table_des_traitements']['ADRESSE'][]= _TRAITEMENT_RACCOURCIS;
18
19       
20        // ---------------------------------------------------------------------------
21        // Champs de type 'date' pour la gestion des criteres age, age_relatif, etc.
22        // ---------------------------------------------------------------------------
23        // Note : provoque l'enregistrement de la date de publication (lors de sa modif) dans date
24        //$interface['table_date']['evenements'] = 'date';
25       
26        return $interfaces;
27}
28
29
30function simplecal_declarer_tables_objets_sql($tables){
31       
32        // Champs de la table spip_evenements
33        $fields = array(
34                "id_evenement"      => "bigint(21) NOT NULL auto_increment",
35                "id_secteur"        => "bigint(21) NOT NULL DEFAULT '0'",
36                "id_rubrique"       => "bigint(21) NOT NULL DEFAULT '0'",
37                "id_trad"           => "bigint(21) NOT NULL DEFAULT '0'",
38                "id_objet"          => "bigint(21) NOT NULL DEFAULT '0'",
39                "type"              => "varchar(25) NOT NULL",
40                "titre"             => "varchar(255) NOT NULL",
41                "date_debut"        => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
42                "date_fin"          => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
43                "horaire"           => "varchar(3) NOT NULL DEFAULT 'oui'",
44                "descriptif"        => "text NOT NULL",
45                "texte"             => "text NOT NULL",
46                'lieu'                          => "text NOT NULL DEFAULT ''",
47                'adresse'                       => "text NOT NULL DEFAULT ''",
48                "lien_titre"        => "varchar(255) NOT NULL",
49                "lien_url"          => "varchar(255) NOT NULL",
50                "date"              => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", // creation ou publication (selon statut)
51                "statut"            => "varchar(20)  DEFAULT '0' NOT NULL",
52                "lang"              => "varchar(10) NOT NULL DEFAULT ''",
53                "langue_choisie"    => "varchar(3) NULL DEFAULT 'non'", 
54                "maj"               => "timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"
55        );
56       
57        // champs qui possedent les cles
58        $key = array(
59                "PRIMARY KEY"     => "id_evenement",
60                "KEY statut"      => "statut", 
61                "KEY id_secteur"  => "id_secteur",
62                "KEY id_rubrique" => "id_rubrique",
63                "KEY id_trad"     => "id_trad",
64                "KEY lang"        => "lang"
65        );
66
67        // champs candidats a la jointure
68        $join = array(
69                "id_evenement" => "id_evenement",
70                "id_secteur"   => "id_secteur",
71                "id_rubrique"  => "id_rubrique"
72        );
73       
74        // champ 'statut'
75        $statut = array(
76                'champ'=>'statut',
77                'publie'=>'publie',
78                'previsu'=>'publie,prop',
79                'exception'=>'statut'
80        );
81       
82        // titre des statuts
83        $statut_titres = array(
84                'prepa'=>'simplecal:titre_evenement_redaction',
85                'prop' => 'simplecal:titre_evenement_propose',
86                'publie' => 'simplecal:titre_evenement_publie',
87                'refuse' => 'simplecal:titre_evenement_refuse',
88                'poubelle'=>'simplecal:titre_evenement_supprime'
89        );
90       
91        $statut_textes_instituer = array(
92                'prepa' => 'texte_statut_en_cours_redaction',
93                'prop' => 'texte_statut_propose_evaluation',
94                'publie' => 'texte_statut_publie', 
95                'refuse' => 'texte_statut_refuse',
96                'poubelle' => 'texte_statut_poubelle'
97        );
98       
99        // La Table
100        $tables['spip_evenements'] = array(
101                'type' => 'evenement',
102                'principale' => 'oui',
103                'field'=> $fields,
104                'key' => $key,
105                'join' => $join,
106                'titre' => 'titre, lang',
107                'date' => 'date', // indique le nom du field pour le formulaires_dater_charger_dist
108                'champs_editables' => array('titre', 'date_debut', 'date_fin', 'horaire', 'descriptif', 'texte', 'lieu', 'adresse', 'lien_titre', 'lien_url', 'type', 'id_objet'),
109                'champs_versionnes' => array('id_rubrique', 'titre', 'descriptif', 'texte', 'lieu', 'adresse', 'date_debut', 'date_fin', 'lien_titre', 'lien_url', 'jointure_auteurs'),
110                'rechercher_champs' => array('titre'=>8, 'descriptif'=>4, 'texte'=>2),
111                'rechercher_jointures' => array('document' => array('titre' => 2, 'descriptif' => 1)),
112                'tables_jointures' => array('id_auteur' => 'auteurs_liens'),
113                'statut' =>  array($statut),
114                'statut_textes_instituer' => $statut_textes_instituer,
115                'statut_titres' => $statut_titres,
116                'texte_retour' => 'icone_retour',
117                'texte_objets' => 'simplecal:evenements',
118                'texte_objet' => 'simplecal:evenement',
119                'texte_modifier' => 'simplecal:icone_modifier_evenement',
120                'texte_creer' => 'simplecal:icone_nouvel_evenement',
121                'info_aucun_objet'=> 'simplecal:info_aucun_evenement',
122                'info_1_objet' => 'simplecal:info_1_evenement',
123                'info_nb_objets' => 'simplecal:info_nb_evenements',
124                'texte_logo_objet' => 'simplecal:logo_evenement',
125                'texte_langue_objet' => 'simplecal:titre_langue_evenement',
126                'texte_changer_statut' => 'simplecal:entree_evenement_publie'
127        );
128       
129        return $tables;
130}
131
132?>
Note: See TracBrowser for help on using the repository browser.