[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> documenter.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  // Affiche le portfolio et les documents lies a l'article (ou a la rubrique)
  16  // => Nouveau : au lieu de les ignorer, on affiche desormais avec un fond gris
  17  // les documents et images inclus dans le texte.
  18  
  19  // http://doc.spip.org/@inc_documenter_dist
  20  function inc_documenter_dist(
  21      $doc,        # tableau des documents ou numero de l'objet attachant
  22      $type = "article",    # article ou rubrique ?
  23      $ancre = 'portfolio',    # album d'images ou de documents ?
  24      $flag = false,    # a-t-on le droit de modifier ?
  25      $couleur='',        # couleur des cases du tableau
  26      $appelant =''        # pour le rappel (cf plugin)
  27  ) {
  28      global $couleur_claire, $spip_lang_left, $spip_lang_right;
  29  
  30      if (is_int($doc)) {
  31          if ($ancre == 'portfolio') {
  32              $lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
  33              $couleur = $couleur_claire;
  34          } else {
  35              $lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l,spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
  36              $couleur = '#aaaaaa';
  37          }
  38  
  39          $documents = array();
  40          while ($document = spip_fetch_array($lies))
  41              $documents[] = $document;
  42      } else
  43          $documents = $doc;
  44  
  45      if (!$documents) return '';
  46  
  47      charger_generer_url();
  48      // la derniere case d'une rangee
  49      $bord_droit = ($ancre == 'portfolio' ? 2 : 1);
  50      $case = 0;
  51      $res = '';
  52  
  53      $tourner = charger_fonction('tourner', 'inc');
  54      $legender = charger_fonction('legender', 'inc');
  55  
  56      // Pour les doublons d'article et en mode ajax, il faut faire propre()
  57      if ($type=='article'
  58      AND !isset($GLOBALS['doublons_documents_inclus'])
  59      AND is_int($doc)) {
  60          $r = spip_fetch_array(spip_query("SELECT chapo,texte FROM spip_articles WHERE id_article="._q($doc)));
  61          propre(join(" ",$r));
  62      }
  63  
  64      foreach ($documents as $document) {
  65          $id_document = $document['id_document'];
  66  
  67          if (isset($document['script']))
  68              $script = $document['script']; # pour plugin Cedric
  69          else
  70            // ref a $exec inutilise en standard
  71            $script = $appelant ? $appelant : $GLOBALS['exec'];
  72  
  73          $style = est_inclus($id_document) ? ' background-color: #cccccc;':'';
  74  
  75          $deplier = in_array($id_document, explode(',', _request('show_docs')));
  76  
  77          if (!$case)
  78              $res .= "<tr style='border-top: 1px solid black;'>";
  79          else if ($case == $bord_droit)
  80              $style .= " border-$spip_lang_right: 1px solid $couleur;";
  81          $res .= "\n<td  style='width:33%; text-align: $spip_lang_left; border-$spip_lang_left: 1px solid $couleur; border-bottom: 1px solid $couleur; $style' valign='top'>"
  82          .  $tourner($id_document, $document, $script, $flag, $type)
  83          . (!$flag  ? '' :
  84             $legender($id_document, $document, $script, $type, $document["id_$type"], $ancre, $deplier))
  85          . (!isset($document['info']) ? '' :
  86                 ("<div class='verdana1'>".$document['info']."</div>"))
  87          . "</td>\n";
  88  
  89          $case++;
  90                  
  91          if ($case > $bord_droit) {
  92                $case = 0;
  93                $res .= "</tr>\n";
  94          }
  95  
  96      }
  97  
  98      // fermer la derniere ligne
  99      if ($case) {
 100          $res .= "<td style='border-$spip_lang_left: 1px solid $couleur;'>&nbsp;</td>";
 101          $res .= "</tr>";
 102      }
 103  
 104      $s = ($ancre =='documents' ? '': '-');
 105      if (is_int($doc)) {
 106          $head = "\n<div style='background-color: $couleur; padding: 4px; color: black; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;' class='verdana2'>\n<b>".majuscules(_T("info_$ancre"))."</b></div>";
 107  
 108          if (count($documents) > 3) {
 109              $head .= "<div style='background-color: #dddddd; padding: 4px; color: black; text-align: right' class='arial1'>"
 110              . ajax_action_auteur('documenter', "$s$doc/$type", $script, "id_$type=$doc&s=$s&type=$type",array(_T('lien_tout_supprimer')))
 111              . "</div>\n";
 112          }
 113      } else $head = '';
 114  
 115      $res = $head
 116      . "\n<table width='100%' cellspacing='0' cellpadding='4'>"
 117      . $res
 118      . "</table>";      
 119  
 120      return ajax_action_greffe("documenter-$s$doc", $res, $flag==='ajax');
 121  }


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