[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/exec/ -> articles.php (source)

   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("&laquo; ". $row['titre'] ." &raquo;", "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>&nbsp;</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')."&nbsp;:</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  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics