squellete2
[aidenligne_francais_universite.git] / ecrire / public / interfaces.php
CommitLineData
c495c100
P
1<?php
2
3/***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
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
13
14if (!defined("_ECRIRE_INC_VERSION")) return;
15
16
17// Definition des noeuds de l'arbre de syntaxe abstraite
18
19// http://doc.spip.org/@Texte
20class Texte {
21 var $type = 'texte';
22 var $texte;
23 var $avant, $apres = ""; // s'il y avait des guillemets autour
24 var $ligne = 0;
25}
26
27// http://doc.spip.org/@Inclure
28class Inclure {
29 var $type = 'include';
30 var $texte;
31 var $avant, $apres; // inutilises mais generiques
32 var $ligne = 0;
33 var $param = array(); // valeurs des params
34}
35
36//
37// encodage d'une boucle SPIP en un objet PHP
38//
39// http://doc.spip.org/@Boucle
40class Boucle {
41 var $type = 'boucle';
42 var $id_boucle;
43 var $id_parent ='';
44 var $avant, $milieu, $apres, $altern;
45 var $lang_select;
46 var $type_requete;
47 var $sql_serveur = '';
48 var $param = array();
49 var $criteres = array();
50 var $separateur = array();
51 var $jointures = array();
52 var $jointures_explicites = false;
53 var $doublons;
54 var $partie, $total_parties,$mode_partie;
55 var $externe = ''; # appel a partir d'une autre boucle (recursion)
56 // champs pour la construction de la requete SQL
57 var $select = array();
58 var $from = array();
59 var $where = array();
60 var $join = array();
61 var $having = array();
62 var $limit;
63 var $group = array();
64 var $order = array();
65 var $default_order = array();
66 var $date = 'date' ;
67 var $hash = "" ;
68 var $in = "" ;
69 var $sous_requete = false;
70 var $hierarchie = '';
71 var $statut = false; # definition/surcharge du statut des elements retournes
72 // champs pour la construction du corps PHP
73 var $id_table;
74 var $primary;
75 var $return;
76 var $numrows = false;
77 var $cptrows = false;
78 var $ligne = 0;
79 var $descr = array(); # noms des fichiers source et but etc
80
81 var $modificateur = array(); // table pour stocker les modificateurs de boucle tels que tout, plat, fragment ..., utilisable par les plugins egalement
82
83 // obsoletes, conserves provisoirement pour compatibilite
84 var $fragment; # definir un fragment de page
85 var $tout = false;
86 var $plat = false;
87 var $lien = false;
88}
89
90// sous-noeud du precedent
91
92// http://doc.spip.org/@Critere
93class Critere {
94 var $op;
95 var $not;
96 var $param = array();
97 var $ligne = 0;
98}
99
100// http://doc.spip.org/@Champ
101class Champ {
102 var $type = 'champ';
103 var $nom_champ;
104 var $nom_boucle= ''; // seulement si boucle explicite
105 var $avant, $apres; // tableaux d'objets
106 var $etoile;
107 var $param = array(); // filtre explicites
108 var $fonctions = array(); // source des filtres (compatibilite)
109 // champs pour la production de code
110 var $id_boucle;
111 var $boucles;
112 var $type_requete;
113 var $code; // code du calcul
114 var $interdire_scripts = true; // false si on est sur de cette balise
115 // tableau pour la production de code dependant du contexte
116 // id_mere; pour TOTAL_BOUCLE hors du corps
117 // document; pour embed et img dans les textes
118 // sourcefile; pour DOSSIER_SQUELETTE
119 var $descr = array();
120 // pour localiser les erreurs
121 var $ligne = 0;
122}
123
124
125// http://doc.spip.org/@Idiome
126class Idiome {
127 var $type = 'idiome';
128 var $nom_champ = ""; // la chaine a traduire
129 var $module = ""; // son module de definition
130 var $param = array(); // les filtres a appliquer au resultat
131 var $fonctions = array(); // source des filtres (compatibilite)
132 var $avant, $apres; // inutilises mais faut = ci-dessus
133 // champs pour la production de code, cf ci-dessus
134 var $id_boucle;
135 var $boucles;
136 var $type_requete;
137 var $code;
138 var $interdire_scripts = false;
139 var $descr = array();
140 var $ligne = 0;
141}
142
143// http://doc.spip.org/@Polyglotte
144class Polyglotte {
145 var $type = 'polyglotte';
146 var $traductions = array(); // les textes ou choisir
147 var $ligne = 0;
148}
149//
150// Globales de description de la base
151
152//ces variables ne sont pas initialisees par "$var = array()"
153// afin de permettre leur extension dans mes_options.php etc
154
155global $tables_des_serveurs_sql, $tables_principales; // (voir inc_serialbase)
156global $exceptions_des_tables, $table_des_tables;
157global $table_date;
158
159 # cf. fonction table_objet dans inc_version
160$table_des_tables['articles']='articles';
161$table_des_tables['auteurs']='auteurs';
162$table_des_tables['breves']='breves';
163$table_des_tables['forums']='forum';
164$table_des_tables['signatures']='signatures';
165$table_des_tables['documents']='documents';
166$table_des_tables['types_documents']='types_documents';
167$table_des_tables['mots']='mots';
168$table_des_tables['groupes_mots']='groupes_mots';
169$table_des_tables['rubriques']='rubriques';
170$table_des_tables['syndication']='syndic';
171$table_des_tables['syndic_articles']='syndic_articles';
172$table_des_tables['hierarchie']='rubriques';
173$table_des_tables['index']='index';
174
175$exceptions_des_tables['breves']['id_secteur']='id_rubrique';
176$exceptions_des_tables['breves']['date']='date_heure';
177$exceptions_des_tables['breves']['nom_site']='lien_titre';
178$exceptions_des_tables['breves']['url_site']='lien_url';
179
180$exceptions_des_tables['forums']['date']='date_heure';
181$exceptions_des_tables['forums']['nom']='auteur';
182$exceptions_des_tables['forums']['email']='email_auteur';
183
184$exceptions_des_tables['signatures']['date']='date_time';
185$exceptions_des_tables['signatures']['nom']='nom_email';
186$exceptions_des_tables['signatures']['email']='ad_email';
187
188$exceptions_des_tables['documents']['type_document']=array('spip_types_documents'
189, 'titre');
190$exceptions_des_tables['documents']['extension_document']=array('spip_types_documents', 'extension');
191$exceptions_des_tables['documents']['mime_type']=array('spip_types_documents'
192, 'mime_type');
193
194# ne sert plus ? verifier balise_URL_ARTICLE
195$exceptions_des_tables['syndic_articles']['url_article']='url';
196# ne sert plus ? verifier balise_LESAUTEURS
197$exceptions_des_tables['syndic_articles']['lesauteurs']='lesauteurs';
198$exceptions_des_tables['syndic_articles']['url_site']=array('spip_syndic',
199'url_site');
200$exceptions_des_tables['syndic_articles']['nom_site']=array('spip_syndic',
201'nom_site');
202
203$table_date['articles']='date';
204$table_date['auteurs']='date';
205$table_date['breves']='date_heure';
206$table_date['forums']='date_heure';
207$table_date['signatures']='date_time';
208$table_date['documents']='date';
209$table_date['types_documents']='date';
210$table_date['groupes_mots']='date';
211$table_date['mots']='date';
212$table_date['rubriques']='date';
213$table_date['syndication']='date';
214$table_date['syndic_articles']='date';
215
216//
217// tableau des tables de jointures
218// Ex: gestion du critere {id_mot} dans la boucle(ARTICLES)
219
220global $tables_jointures;
221
222$tables_jointures['spip_articles'][]= 'mots_articles';
223$tables_jointures['spip_articles'][]= 'auteurs_articles';
224$tables_jointures['spip_articles'][]= 'documents_articles';
225$tables_jointures['spip_articles'][]= 'mots';
226$tables_jointures['spip_articles'][]= 'signatures';
227
228$tables_jointures['spip_auteurs'][]= 'auteurs_articles';
229$tables_jointures['spip_auteurs'][]= 'mots';
230
231$tables_jointures['spip_breves'][]= 'mots_breves';
232$tables_jointures['spip_breves'][]= 'documents_breves';
233$tables_jointures['spip_breves'][]= 'mots';
234
235$tables_jointures['spip_documents'][]= 'documents_articles';
236$tables_jointures['spip_documents'][]= 'documents_rubriques';
237$tables_jointures['spip_documents'][]= 'documents_breves';
238$tables_jointures['spip_documents'][]= 'mots_documents';
239$tables_jointures['spip_documents'][]= 'types_documents';
240$tables_jointures['spip_documents'][]= 'mots';
241
242$tables_jointures['spip_forum'][]= 'mots_forum';
243$tables_jointures['spip_forum'][]= 'mots';
244
245$tables_jointures['spip_rubriques'][]= 'mots_rubriques';
246$tables_jointures['spip_rubriques'][]= 'documents_rubriques';
247$tables_jointures['spip_rubriques'][]= 'mots';
248
249$tables_jointures['spip_syndic'][]= 'mots_syndic';
250$tables_jointures['spip_syndic'][]= 'mots';
251
252$tables_jointures['spip_syndic_articles'][]= 'syndic';
253$tables_jointures['spip_syndic_articles'][]= 'mots';
254
255$tables_jointures['spip_mots'][]= 'mots_articles';
256$tables_jointures['spip_mots'][]= 'mots_breves';
257$tables_jointures['spip_mots'][]= 'mots_forum';
258$tables_jointures['spip_mots'][]= 'mots_rubriques';
259$tables_jointures['spip_mots'][]= 'mots_syndic';
260$tables_jointures['spip_mots'][]= 'mots_documents';
261
262$tables_jointures['spip_groupes_mots'][]= 'mots';
263
264
265global $exceptions_des_jointures;
266$exceptions_des_jointures['titre_mot'] = array('spip_mots', 'titre');
267$exceptions_des_jointures['type_mot'] = array('spip_mots', 'type');
268$exceptions_des_jointures['id_signature']= array('spip_signatures', 'id_signature');
269
270global $table_des_traitements;
271$table_des_traitements['BIO'][]= 'propre(%s)';
272$table_des_traitements['CHAPO'][]= 'propre(nettoyer_chapo(%s))';
273$table_des_traitements['DATE'][]= 'vider_date(%s)';
274$table_des_traitements['DATE_MODIF'][]= 'vider_date(%s)';
275$table_des_traitements['DATE_NOUVEAUTES'][]= 'vider_date(%s)';
276$table_des_traitements['DATE_REDAC'][]= 'vider_date(%s)';
277$table_des_traitements['DESCRIPTIF'][]= 'propre(%s)';
278$table_des_traitements['LIEN_TITRE'][]= 'typo(%s)';
279$table_des_traitements['LIEN_URL'][]= 'vider_url(%s)';
280$table_des_traitements['MESSAGE'][]= 'propre(%s)';
281$table_des_traitements['NOM_SITE_SPIP'][]= 'typo(%s)';
282$table_des_traitements['NOM_SITE'][]= '%s'; # construire_titre_lien -> typo
283$table_des_traitements['NOM'][]= 'typo(%s)';
284$table_des_traitements['PARAMETRES_FORUM'][]= 'htmlspecialchars(lang_parametres_forum(%s))';
285$table_des_traitements['PS'][]= 'propre(%s)';
286$table_des_traitements['SOURCE'][]= 'typo(%s)';
287$table_des_traitements['SOUSTITRE'][]= 'typo(%s)';
288$table_des_traitements['SURTITRE'][]= 'typo(%s)';
289$table_des_traitements['TAGS'][]= '%s';
290$table_des_traitements['TEXTE'][]= 'propre(%s)';
291$table_des_traitements['TITRE'][]= 'typo(%s)';
292$table_des_traitements['TYPE'][]= 'typo(%s)';
293$table_des_traitements['URL_ARTICLE'][]= 'vider_url(%s)';
294$table_des_traitements['URL_BREVE'][]= 'vider_url(%s)';
295$table_des_traitements['URL_DOCUMENT'][]= 'vider_url(%s)';
296$table_des_traitements['URL_FORUM'][]= 'vider_url(%s)';
297$table_des_traitements['URL_MOT'][]= 'vider_url(%s)';
298$table_des_traitements['URL_RUBRIQUE'][]= 'vider_url(%s)';
299$table_des_traitements['DESCRIPTIF_SITE_SPIP'][]= 'propre(%s)';
300$table_des_traitements['URL_SITE'][]= 'calculer_url(%s)';
301$table_des_traitements['URL_SOURCE'][]= 'vider_url(%s)';
302$table_des_traitements['URL_SYNDIC'][]= 'vider_url(%s)';
303$table_des_traitements['ENV'][]= 'entites_html(%s)';
304
305
306// Articles syndiques : passage des donnees telles quelles, sans traitement typo
307// A noter, dans applique_filtres la securite et compliance XHTML de ces champs
308// est assuree par safehtml()
309foreach(array('TITRE','DESCRIPTIF','SOURCE') as $balise)
310 if (!isset($table_des_traitements[$balise]['syndic_articles']))
311 $table_des_traitements[$balise]['syndic_articles'] = '%s';
312
313?>