source: spip-zone/_core_/plugins/forum/base/forum.php @ 53166

Last change on this file since 53166 was 53166, checked in by kent1@…, 8 years ago

Montrons le bon exemple :

if (!defined('_ECRIRE_INC_VERSION')) return; partout

File size: 5.2 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2011                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15/**
16 * Interfaces de la table forum pour le compilateur
17 *
18 * @param array $interfaces
19 * @return array
20 */
21function forum_declarer_tables_interfaces($interfaces){
22
23        $interfaces['table_des_tables']['forums']='forum';
24
25        $interfaces['exceptions_des_tables']['forums']['date']='date_heure';
26        $interfaces['exceptions_des_tables']['forums']['nom']='auteur';
27        $interfaces['exceptions_des_tables']['forums']['email']='email_auteur';
28
29        // il ne faut pas essayer de chercher le forum du mot cle, mais bien le mot cle associe au forum
30        $interfaces['exceptions_des_jointures']['spip_forum']['id_mot'] = array('spip_mots','id_mot');
31        $interfaces['exceptions_des_jointures']['spip_forum']['titre_mot'] = array('spip_mots','titre');
32        $interfaces['exceptions_des_jointures']['spip_forum']['type_mot'] = array('spip_mots','type');
33        $interfaces['exceptions_des_jointures']['spip_forum']['id_groupe'] = array('spip_mots','id_groupe');
34
35       
36        #$interfaces['table_titre']['forums']= "titre, '' AS lang";
37        #$interfaces['table_date']['forums']='date_heure';
38
39        $interfaces['table_statut']['spip_forum'][] = array('champ'=>'statut','publie'=>'publie','previsu'=>'publie,prop','exception'=>'statut');
40
41        $interfaces['table_des_traitements']['PARAMETRES_FORUM'][]= 'htmlspecialchars(%s)';
42        $interfaces['table_des_traitements']['TEXTE']['forums']= "safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_RACCOURCIS).")";
43        $interfaces['table_des_traitements']['TITRE']['forums']= "safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_TYPO).")";
44        $interfaces['table_des_traitements']['NOTES']['forums']= "safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_RACCOURCIS).")";
45        $interfaces['table_des_traitements']['NOM_SITE']['forums']=  "safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_TYPO).")";
46        $interfaces['table_des_traitements']['URL_SITE']['forums']= 'safehtml(vider_url(%s))';
47        $interfaces['table_des_traitements']['AUTEUR']['forums']= 'safehtml(vider_url(%s))';
48        $interfaces['table_des_traitements']['EMAIL_AUTEUR']['forums']= 'safehtml(vider_url(%s))';
49
50        // gerer les sauts de ligne dans les textes des forums
51        $interfaces['table_des_traitements']['TEXTE']['forums'] =
52                str_replace('interdit_html(%s)', 'post_autobr(interdit_html(%s))',
53                $interfaces['table_des_traitements']['TEXTE']['forums']
54        );
55
56        return $interfaces;
57}
58
59
60function forum_declarer_tables_objets_sql($tables){
61        $tables['spip_forum'] = array(
62                'table_objet'=>'forums', # ??? hum hum redevient spip_forum par table_objet_sql mais casse par un bete "spip_".table_objet()
63                'type'=>'forum',
64          'url_voir'=>'controler_forum',
65          'url_edit'=>'controler_forum',
66          'editable'=>'non',
67          'principale' => 'oui',
68                'page'=>'', // pas de page editoriale pour un forum
69
70                'texte_retour' => 'icone_retour',
71                'texte_objets' => 'forum:forum',
72                'texte_objet' => 'forum:forum',
73                'info_aucun_objet'=> 'forum:aucun_message_forum',
74                'info_1_objet' => 'forum:info_1_message_forum',
75                'info_nb_objets' => 'forum:info_nb_messages_forum',
76                'titre' => "titre, '' AS lang",
77                'date' => 'date_heure',
78
79                'field'=> array(
80                        "id_forum"      => "bigint(21) NOT NULL",
81                        "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
82                        "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
83                        "id_parent"     => "bigint(21) DEFAULT '0' NOT NULL",
84                        "id_thread"     => "bigint(21) DEFAULT '0' NOT NULL",
85                        "date_heure"    => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
86                        "date_thread"   => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
87                        "titre" => "text DEFAULT '' NOT NULL",
88                        "texte" => "mediumtext DEFAULT '' NOT NULL",
89                        "auteur"        => "text DEFAULT '' NOT NULL",
90                        "email_auteur"  => "text DEFAULT '' NOT NULL",
91                        "nom_site"      => "text DEFAULT '' NOT NULL",
92                        "url_site"      => "text DEFAULT '' NOT NULL",
93                        "statut"        => "varchar(8) DEFAULT '0' NOT NULL",
94                        "ip"    => "varchar(40) DEFAULT '' NOT NULL",
95                        "maj"   => "TIMESTAMP",
96                        "id_auteur"     => "bigint DEFAULT '0' NOT NULL"
97                ),
98                'key' => array(
99                        "PRIMARY KEY"   => "id_forum",
100                        "KEY id_auteur" => "id_auteur",
101                        "KEY id_parent" => "id_parent",
102                        "KEY id_thread" => "id_thread",
103                        "KEY optimal" => "statut,id_parent,id_objet,objet,date_heure"
104                ),
105                'join' => array(
106                        "id_forum"=>"id_forum",
107                        "id_parent"=>"id_parent",
108                        "id_objet"=>"id_objet",
109                        "objet"=>"objet",
110                        "id_auteur"=>"id_auteur",
111                ),
112                'rechercher_champs' => array(
113            'titre' => 3, 'texte' => 1, 'auteur' => 2, 'email_auteur' => 2, 'nom_site' => 1, 'url_site' => 1
114                ),
115        );
116
117        // jointures sur les forum pour tous les objets
118        $tables[]['tables_jointures'][]= 'forums';
119
120        return $tables;
121}
122
123?>
Note: See TracBrowser for help on using the repository browser.