[ Index ] |
|
Code source de SPIP 1.9.2c |
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 14 if (!defined("_ECRIRE_INC_VERSION")) return; 15 16 17 // Definition des noeuds de l'arbre de syntaxe abstraite 18 19 // http://doc.spip.org/@Texte 20 class 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 28 class 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 40 class 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 93 class Critere { 94 var $op; 95 var $not; 96 var $param = array(); 97 var $ligne = 0; 98 } 99 100 // http://doc.spip.org/@Champ 101 class 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 126 class 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 144 class 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 155 global $tables_des_serveurs_sql, $tables_principales; // (voir inc_serialbase) 156 global $exceptions_des_tables, $table_des_tables; 157 global $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 220 global $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 265 global $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 270 global $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() 309 foreach(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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |