[ 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 if (!defined("_ECRIRE_INC_VERSION")) return; 14 15 include_spip('inc/presentation'); 16 include_spip('inc/texte'); 17 include_spip('inc/actions'); 18 19 // http://doc.spip.org/@exec_articles_dist 20 function exec_articles_dist() 21 { 22 $id_article= intval(_request('id_article')); 23 24 pipeline('exec_init',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')); 25 26 $row = spip_fetch_array(spip_query("SELECT * FROM spip_articles WHERE id_article=$id_article")); 27 28 if (!$row 29 OR !autoriser('voir', 'article', $id_article)) { 30 $res = $row['titre'] = _T('public:aucun_article'); 31 $row['id_rubrique'] = 0; 32 } else { 33 $discuter = charger_fonction('discuter', 'inc'); 34 $row['titre'] = sinon($row["titre"],_T('info_sans_titre')); 35 36 $res = debut_gauche('accueil',true) 37 . articles_affiche($id_article, $row, _request('cherche_auteur'), _request('ids'), _request('cherche_mot'), _request('select_groupe'), _request('trad_err')) 38 . "<br /><br />\n<div align='center'>" 39 . icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id=$id_article&script=articles") ."#formulaire", "forum-interne-24.gif", "creer.gif", '', false) 40 . "</div><br />" 41 . $discuter($id_article, false, _request('debut')) 42 . fin_gauche() 43 ; 44 } 45 46 $commencer_page = charger_fonction('commencer_page', 'inc'); 47 echo $commencer_page("« ". $row['titre'] ." »", "naviguer", "articles", $row['id_rubrique']); 48 49 echo debut_grand_cadre(true), 50 afficher_hierarchie($row['id_rubrique']), 51 fin_grand_cadre(true), 52 $res, 53 fin_page(); 54 } 55 56 // http://doc.spip.org/@articles_affiche 57 function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot, $select_groupe, $trad_err) 58 { 59 global $spip_display, $spip_lang_left, $spip_lang_right, $dir_lang; 60 global $connect_id_auteur, $connect_statut, $options; 61 62 $id_rubrique = $row['id_rubrique']; 63 $statut_article = $row['statut']; 64 $titre = $row["titre"]; 65 $surtitre = $row["surtitre"]; 66 $soustitre = $row["soustitre"]; 67 $descriptif = $row["descriptif"]; 68 $nom_site = $row["nom_site"]; 69 $url_site = $row["url_site"]; 70 $chapo = $row["chapo"]; 71 $texte = $row["texte"]; 72 $ps = $row["ps"]; 73 $date = $row["date"]; 74 $date_redac = $row["date_redac"]; 75 $visites = $row["visites"]; 76 $extra = $row["extra"]; 77 $id_trad = $row["id_trad"]; 78 $id_version = $row["id_version"]; 79 80 if (substr($chapo, 0, 1) != '=') 81 $virtuel =''; 82 else { 83 $virtuel = chapo_redirige(substr($chapo, 1)); 84 $virtuel = $virtuel[3]; 85 } 86 87 $statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique); 88 $flag_editable = autoriser('modifier', 'article', $id_article); 89 90 // Est-ce que quelqu'un a deja ouvert l'article en edition ? 91 if ($flag_editable 92 AND $GLOBALS['meta']['articles_modif'] != 'non') { 93 include_spip('inc/drapeau_edition'); 94 $modif = mention_qui_edite($id_article, 'article'); 95 } else 96 $modif = array(); 97 98 99 // chargement prealable des fonctions produisant des formulaires 100 101 $dater = charger_fonction('dater', 'inc'); 102 $editer_mot = charger_fonction('editer_mot', 'inc'); 103 $editer_auteurs = charger_fonction('editer_auteurs', 'inc'); 104 $referencer_traduction = charger_fonction('referencer_traduction', 'inc'); 105 106 if ($flag_editable AND ($spip_display != 4)) { 107 $iconifier = charger_fonction('iconifier', 'inc'); 108 $icone = $iconifier('id_article', $id_article,'articles'); 109 } else $icone = ''; 110 111 $instituer_article = charger_fonction('instituer_article', 'inc'); 112 113 $res = boite_info_articles($id_article, $statut_article, $visites, $id_version) 114 115 . $icone 116 117 . boites_de_config_articles($id_article) 118 . boite_article_virtuel($id_article, $virtuel, $flag_editable) 119 . meme_rubrique($id_rubrique, $id_article, 'article') 120 121 . pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) 122 123 . creer_colonne_droite('', true) 124 125 . pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) 126 127 . debut_droite('',true); 128 129 130 // affecter les globales dictant les regles de typographie de la langue 131 changer_typo('','article'.$id_article); 132 133 return $res 134 . debut_cadre_relief('', true) 135 . titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif) 136 137 . "\n<div> </div>" 138 . "\n<div class='serif' align='$spip_lang_left'>" 139 140 . $dater($id_article, $flag_editable, $statut_article, 'article', 'articles', $date, $date_redac) 141 142 . $editer_auteurs('article', $id_article, $flag_editable, $cherche_auteur, $ids) 143 144 . (!$editer_mot ? '' : $editer_mot('article', $id_article, $cherche_mot, $select_groupe, $flag_editable)) 145 146 . (!$referencer_traduction ? '' : $referencer_traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err)) 147 148 . pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) 149 150 . (!$statut_rubrique ? '' 151 : (debut_cadre_relief('', true) 152 . $instituer_article($id_article, $statut_article) 153 . fin_cadre_relief(true))) 154 155 . "\n<div style='text-align: justify; padding: 10px;'>" 156 . afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra) 157 158 . (!$flag_editable ? '' 159 : ("\n<div align='$spip_lang_right'><br />" 160 . bouton_modifier_articles($id_article, $id_rubrique, $modif,_T('texte_travail_article', $modif), "warning-24.gif", "") 161 . "</div>")) 162 . (($spip_display == 4) ? '' 163 : articles_documents($flag_editable, 'article', $id_article)) 164 165 . (($statut_article == 'prepa' AND !$statut_rubrique 166 AND spip_num_rows(auteurs_article($id_article, " id_auteur=$connect_id_auteur"))) 167 ? $instituer_article($id_article) 168 : '') 169 . "</div></div>" 170 . fin_cadre_relief(true); 171 } 172 173 // http://doc.spip.org/@articles_documents 174 function articles_documents($flag_editable, $type, $id) 175 { 176 global $spip_lang_left; 177 178 if ($GLOBALS['meta']["documents_$type"]!='non' AND $flag_editable) { 179 180 $joindre = charger_fonction('joindre', 'inc'); 181 182 $res = debut_cadre_relief("image-24.gif", true, "", _T('titre_joindre_document')) 183 . $joindre('articles', "id_article=$id", $id, _T('info_telecharger_ordinateur'), 'document', 'article','',0,generer_url_ecrire("documenter","id_article=$id&type=$type",true)) 184 . fin_cadre_relief(true); 185 186 // eviter le formulaire upload qui se promene sur la page 187 // a cause des position:relative incompris de MSIE 188 189 $align = ""; 190 if ($GLOBALS['browser_name']!='MSIE') { 191 $res = "\n<table width='50%' cellpadding='0' cellspacing='0' border='0'>\n<tr><td style='text-align: $spip_lang_left;'>\n$res</td></tr></table>"; 192 $align = " align='right'"; 193 } 194 $res = "\n<div$align>$res</div>"; 195 $res .= "<script src='"._DIR_JAVASCRIPT."async_upload.js' type='text/javascript'></script>\n"; 196 $res .= <<<EOF 197 <script type='text/javascript'> 198 $("form.form_upload").async_upload(async_upload_portfolio_documents); 199 </script> 200 EOF; 201 } else $res = ''; 202 203 $documenter = charger_fonction('documenter', 'inc'); 204 205 return "<div id='portfolio'>" . $documenter($id, 'article', 'portfolio', $flag_editable) . "</div>" 206 . "<div id='documents'>" . $documenter($id, 'article', 'documents', $flag_editable) . "</div>" 207 . $res; 208 } 209 210 // http://doc.spip.org/@boite_info_articles 211 function boite_info_articles($id_article, $statut_article, $visites, $id_version) 212 { 213 global $connect_statut, $options, $flag_revisions; 214 215 $res = "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>" 216 . _T('info_numero_article') 217 . "<br /><span class='spip_xx-large'>" 218 . $id_article 219 . '</span></div>' 220 . voir_en_ligne('article', $id_article, $statut_article, 'racine-24.gif', false); 221 222 if ($statut_article == 'publie' 223 AND $visites > 0 224 AND $GLOBALS['meta']["activer_statistiques"] != "non" 225 AND $options == "avancees" 226 AND autoriser('voirstats', 'article', $id_article)) { 227 $res .= icone_horizontale(_T('icone_evolution_visites', array('visites' => $visites)), generer_url_ecrire("statistiques_visites","id_article=$id_article"), "statistiques-24.gif","rien.gif", false); 228 } 229 230 if ((($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) 231 AND $id_version>1 AND $options == "avancees" 232 AND autoriser('voirrevisions', 'article', $id_article)) 233 $res .= icone_horizontale(_T('info_historique_lien'), generer_url_ecrire("articles_versions","id_article=$id_article"), "historique-24.gif", "rien.gif", false); 234 235 // Correction orthographique 236 if ($GLOBALS['meta']['articles_ortho'] == 'oui') { 237 $js_ortho = "onclick=\"window.open(this.href, 'spip_ortho', 'scrollbars=yes, resizable=yes, width=740, height=580'); return false;\""; 238 $res .= icone_horizontale(_T('ortho_verifier'), generer_url_ecrire("articles_ortho", "id_article=$id_article"), "ortho-24.gif", "rien.gif", false, $js_ortho); 239 } 240 241 return debut_boite_info(true). $res . fin_boite_info(true); 242 } 243 244 // 245 // Boites de configuration avancee 246 // 247 248 // http://doc.spip.org/@boites_de_config_articles 249 function boites_de_config_articles($id_article) 250 { 251 if (autoriser('modererforum', 'article', $id_article)) { 252 $regler_moderation = charger_fonction('regler_moderation', 'inc'); 253 $regler = $regler_moderation($id_article,"articles","id_article=$id_article") . '<br />'; 254 } 255 256 if (autoriser('modererpetition', 'article', $id_article)) { 257 $petitionner = charger_fonction('petitionner', 'inc'); 258 $petition = $petitionner($id_article,"articles","id_article=$id_article"); 259 } 260 261 $masque = $regler . $petition; 262 263 if (!$masque) 264 return ''; 265 266 $invite = "<span class='verdana1'><b>" 267 . _T('bouton_forum_petition') 268 . aide('confforums') 269 . "</b></span>"; 270 271 return debut_cadre_relief("forum-interne-24.gif", true) 272 . block_parfois_visible('forumpetition', 273 $invite, 274 $masque, 275 'text-align: center;', 276 $visible = strstr($masque, '<!-- visible -->') 277 ) 278 . fin_cadre_relief(true); 279 } 280 281 // http://doc.spip.org/@boite_article_virtuel 282 function boite_article_virtuel($id_article, $virtuel, $flag) 283 { 284 285 $virtualiser = charger_fonction('virtualiser', 'inc'); 286 287 $masque = $virtualiser($id_article, $flag, $virtuel, "articles", "id_article=$id_article"); 288 289 if (!$masque) return ''; 290 291 $invite = "<span class='verdana1'>" 292 . '<b>' 293 ._T('bouton_redirection') 294 . '</b>' 295 . aide ("artvirt") 296 . "</span>"; 297 298 $f = block_parfois_visible('redirection', $invite, $masque, 'text-align: center;', $virtuel); 299 300 return debut_cadre_relief("site-24.gif", true) . $f . fin_cadre_relief(true); 301 } 302 303 // http://doc.spip.org/@bouton_modifier_articles 304 function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im, $align='') 305 { 306 if ($flag_modif) { 307 return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), $ip, $im, $align, false) 308 . "<span class='arial1 spip_small'>$mode</span>" 309 . aide("artmodif"); 310 } 311 else return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif", $align, false); 312 } 313 314 // http://doc.spip.org/@titres_articles 315 function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif) 316 { 317 global $dir_lang, $spip_lang_left, $spip_lang_right; 318 319 $res = ''; 320 321 if ($surtitre) { 322 $res .= "<span $dir_lang class='arial1 spip_medium'><b>" . typo($surtitre) . "</b></span>\n"; 323 } 324 325 $res .= gros_titre($titre, "puce-".puce_statut($statut_article).".gif", false); 326 327 if ($soustitre) { 328 $res .= "<span $dir_lang class='arial1 spip_medium'><b>" . typo($soustitre) . "</b></span>\n"; 329 } 330 331 if ($descriptif OR $url_site OR $nom_site) { 332 333 $texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : ''; 334 335 $texte_case .= ($nom_site OR $url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : ''; 336 337 $res .= "<br />\n<div align='$spip_lang_left' $dir_lang style='padding: 4px; border: 1px dashed #aaaaaa; background-color: #e4e4e4; ' class='Verdana1 spip_x-small'>" 338 . propre($texte_case) 339 . "</div>"; 340 } 341 342 if ($statut_article == 'prop') 343 $res .= "<p style='color: red' class='verdana1 spip_small'><b>"._T('text_article_propose_publication')."</b></p>"; 344 345 $res = "\n<td valign='top'>$res</td>"; 346 347 if ($flag_editable) { 348 $res .= "\n<td style='width: 130px;' valign='top' align='$spip_lang_right'>" 349 . bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif") 350 . "</td>\n"; 351 } 352 353 return "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>" 354 . "\n<tr>" 355 . $res 356 . "</tr></table>\n"; 357 } 358 359 // http://doc.spip.org/@afficher_corps_articles 360 function afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra) 361 { 362 global $revision_nbsp, $activer_revision_nbsp, $champs_extra, $les_notes, $dir_lang; 363 364 $res = ''; 365 366 if ($virtuel) { 367 $res .= debut_boite_info(true) 368 . "\n<div style='text-align: center'>" 369 . _T('info_renvoi_article') 370 . " " 371 . propre("[->$virtuel]") 372 . '</div>' 373 . fin_boite_info(true); 374 } else { 375 $revision_nbsp = $activer_revision_nbsp; 376 377 if (strlen($chapo) > 0) { 378 $res .= "\n<div $dir_lang style='font-weight: bold;' class='spip_small'>" 379 . propre($chapo) 380 . "</div>"; 381 } 382 383 $res .= "\n<div $dir_lang>" 384 . propre($texte) 385 . "<br style='clear: both;' />" 386 . "</div>"; 387 388 if ($ps) { 389 $res .= debut_cadre_enfonce('',true) 390 . "\n<div $dir_lang style='font-size: small;' class='verdana1'>" 391 . justifier("<b>"._T('info_ps')."</b> ".propre($ps)) 392 . "</div>" 393 . fin_cadre_enfonce(true); 394 } 395 $revision_nbsp = false; 396 397 if ($les_notes) { 398 $res .= debut_cadre_relief('',true) 399 . "\n<div $dir_lang class='arial11'>" 400 . justifier("<b>"._T('info_notes')." :</b> ".$les_notes) 401 . "</div>" 402 . fin_cadre_relief(true); 403 } 404 405 if ($champs_extra AND $extra) { 406 include_spip('inc/extra'); 407 $res .= extra_affichage($extra, "articles"); 408 } 409 } 410 return $res; 411 } 412 ?>
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 |
![]() |