inc_presentation.php3 inc_suivi_revisions.php index.php3 spip_style.php3 suivi_versions.php 1.439 NONE 1.106 1.80 NONE 1.440 1.1 1.107 1.81 1.1

Update of /home/spip-cvs/spip/ecrire
In directory alan:/tmp/cvs-serv27031

Modified Files:
  inc_presentation.php3 index.php3 spip_style.php3
Added Files:
  inc_suivi_revisions.php suivi_versions.php
Log Message:
Nouvelle page: historique general des versions

Index: spip_style.php3

RCS file: /home/spip-cvs/spip/ecrire/spip_style.php3,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -d -r1.80 -r1.81
--- spip_style.php3 14 Sep 2004 11:28:01 -0000 1.80
+++ spip_style.php3 19 Sep 2004 16:52:59 -0000 1.81
@@ -620,6 +620,7 @@
.verdana2 { font-family: Verdana, Arial, Sans, sans-serif; font-size: 11px; }
.verdana3 { font-family: Verdana, Arial, Sans, sans-serif; font-size: 13px; }
.serif { font-family: Georgia, Garamond, Times New Roman, serif; }
+.serif1 { font-family: Georgia, Garamond, Times New Roman, serif; font-size: 11px; }
.serif2 { font-family: Georgia, Garamond, Times New Roman, serif; font-size: 13px; }

/* Liens hypertexte */

Index: index.php3

RCS file: /home/spip-cvs/spip/ecrire/index.php3,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -d -r1.106 -r1.107
--- index.php3 21 Aug 2004 14:48:13 -0000 1.106
+++ index.php3 19 Sep 2004 16:52:59 -0000 1.107
@@ -339,6 +339,13 @@
     "WHERE articles.id_article=lien.id_article AND lien.id_auteur=\"$connect_id_auteur\" AND articles.statut=\"publie\" ORDER BY articles.date DESC", true);

+ // Dernieres modifications d'articles
+ echo "<p>";
+ include_ecrire("inc_suivi_revisions.php");
+ afficher_suivi_versions ();
+
+
+
}

--- NEW FILE: suivi_versions.php ---
<?php

include("inc.php");

include_ecrire("inc_suivi_revisions.php");
include_spip("ecrire.php");
include_spip("revisions.php");
include_spip("diff.php");

debut_page(_T("icone_suivi_revisions"));

//////////////////////////////////////////////////////
// Affichage de la colonne de gauche
//

debut_gauche();
if (!$debut) $debut = 0;

if (!$uniq_auteur) $uniq_auteur = false ;
else $uniq_auteur = true;

if ($connect_statut == "0minirezo") $req_where = " AND spip_articles.statut IN ('prepa','prop','publie')";
else $req_where = " AND spip_articles.statut IN ('prop','publie')";

echo "<div class='arial1'>";

if (!$uniq_auteur AND $id_secteur < 1) echo "<li><b>tout afficher</b>";
else echo "<li><a href='suivi_versions.php'>tout afficher</a>";

if ($uniq_auteur) echo "<li><b>mes modifications</b>";
else echo "<li><a href='suivi_versions.php?uniq_auteur=true'>mes modifications</a>";

$query = "SELECT * FROM spip_rubriques WHERE id_parent = 0 ORDER BY titre";
$result = spip_query($query);

while ($row = mysql_fetch_array($result)) {
  $id_rubrique = $row['id_rubrique'];
  $titre = propre($row['titre']);
  
  $query_rub = "SELECT spip_versions.*, spip_articles.statut, spip_articles.titre FROM spip_versions, spip_articles WHERE spip_versions.id_article = spip_articles.id_article AND spip_versions.id_version > 1 AND spip_articles.id_secteur=$id_rubrique$req_where LIMIT 0,1";
  $result_rub = spip_query($query_rub);
  
  if ($id_rubrique == $id_secteur) echo "<li><b>$titre</b>";
  else if (spip_num_rows($result_rub) > 0) echo "<li><a href='suivi_versions.php?id_secteur=$id_rubrique'>$titre</a>";
}
echo "</div>";

//////////////////////////////////////////////////////
// Affichage de la colonne de droite
//

debut_droite();

afficher_suivi_versions ($debut, $id_secteur, $uniq_auteur);

fin_page();

?>

--- NEW FILE: inc_suivi_revisions.php ---
<?php
//
// Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_SUIVI_REVISIONS")) return;
define("_ECRIRE_INC_SUIVI_REVISIONS", "1");

include_ecrire("inc.php");
include_spip("ecrire.php");
include_spip("revisions.php");
include_spip("diff.php");

function afficher_para_modifies ($texte) {
  $paras = explode ("\n",$texte);
  for ($i = 0; $i < count($paras); $i++) {
    if (ereg("diff-", $paras[$i])) $texte_ret .= $paras[$i]."\n\n";
  }
  $texte = $texte_ret;
  return $texte;
}

function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = false) {
  global $connect_id_auteur, $connect_statut, $dir_lang;
  
  $nb_aff = 10;
  $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps');

  if ($connect_statut == "0minirezo") $req_where = " AND spip_articles.statut IN ('prepa','prop','publie')";
  else $req_where = " AND spip_articles.statut IN ('prop','publie')";
  
  if ($uniq_auteur) $req_where = " AND spip_versions.id_auteur = $connect_id_auteur";

  if ($id_secteur > 0) $req_where .= " AND spip_articles.id_secteur = $id_secteur";

  $query = "SELECT spip_versions.*, spip_articles.statut, spip_articles.titre FROM spip_versions, spip_articles WHERE spip_versions.id_article = spip_articles.id_article AND spip_versions.id_version > 1$req_where ORDER BY spip_versions.date DESC LIMIT $debut, $nb_aff";
  $result = spip_query($query);
  
  if (spip_num_rows($result) > 0) {
    $titre_table = _T('icone_suivi_revisions');
    echo "<div style='height: 12px;'></div>";
    echo "<div class='liste'>";
    bandeau_titre_boite2($titre_table, "historique-24.gif");
  
    $query_total = "SELECT spip_versions.*, spip_articles.statut, spip_articles.titre FROM spip_versions, spip_articles WHERE spip_versions.id_article = spip_articles.id_article AND spip_versions.id_version > 1$req_where LIMIT 0, 149";
    $result_total = spip_query($query_total);
    $total = spip_num_rows($result_total);
    
    if ($total > $nb_aff) {
      $nb_tranches = ceil($total / $nb_aff);
      
      echo "<div class='arial2' style='background-color: #dddddd; padding: 5px;'>";
    
      for ($i = 0; $i < $nb_tranches; $i++) {
        if ($i > 0) echo " | ";
        if ($i*$nb_aff == $debut) echo "<b>";
        else echo "<a href='suivi_versions.php?debut=".($i * $nb_aff)."&id_secteur=$id_secteur&uniq_auteur=$uniq_auteur'>";
        echo (($i * $nb_aff) + 1);
        if ($i*$nb_aff == $debut) echo "</b>";
        else echo "</a>";
      }
      echo "</div>";
    }
  
    while ($row = mysql_fetch_array($result)) {
      $id_version = $row['id_version'];
      $id_auteur = $row['id_auteur'];
      $date = affdate_court($row['date']);
      $id_article = $row['id_article'];
      $statut = $row['statut'];
      $titre = propre($row['titre']);
      $nom = "";
      $query_auteur = "SELECT nom FROM spip_auteurs WHERE id_auteur = $id_auteur";
      $result_auteur = spip_query($query_auteur);
      if ($row_auteur = spip_fetch_array($result_auteur)) {
        $nom = propre($row_auteur["nom"]);
        if (strlen($nom) > 0) $nom = "($nom)";
      }
  
      $logo_statut = "puce-".puce_statut($statut).".gif";
      
      echo "<div class='tr_liste' style='padding: 5px; border-top: 1px solid #aaaaaa;'>";
  
      echo "<span class='arial2'>";
      echo bouton_block_invisible("$id_version-$id_article-$id_auteur");
      echo "<img src='img_pack/$logo_statut' border='0'>&nbsp;";
      echo "<a class='$statut' style='font-weight: bold;' href='articles.php3?id_article=$id_article'>$titre</a>";
      echo "</span>";
      echo "<span class='arial1'>";
      echo " $date $nom";
      echo "</span>";
    
      $query_diff = "SELECT id_version FROM spip_versions WHERE id_article=$id_article ".
        "AND id_version<$id_version ORDER BY id_version DESC LIMIT 0,1";
        if ($result_diff = spip_query($query_diff)) {
          $row_diff = mysql_fetch_array($result_diff);
          $id_diff = $row_diff['id_version'];
      }
  
      $query_art = "SELECT * FROM spip_articles WHERE id_article='$id_article'";
      $result_art = spip_query($query_art);
      
      if ($row_art = spip_fetch_array($result_art)) {
        $id_article = $row_art["id_article"];
        $id_rubrique = $row_art["id_rubrique"];
        $date = $row_art["date"];
        $statut_article = $row_art["statut"];
        $maj = $row_art["maj"];
        $date_redac = $row_art["date_redac"];
        $visites = $row_art["visites"];
        $referers = $row_art["referers"];
        $extra = $row_art["extra"];
        $id_trad = $row_art["id_trad"];
      }
      
      $textes = recuperer_version($id_article, $id_version);
          
      if ($id_version && $id_diff) {
        if ($id_diff > $id_version) {
          $t = $id_version;
          $id_version = $id_diff;
          $id_diff = $t;
          $old = $textes;
          $new = $textes = recuperer_version($id_article, $id_version);
        }
        else {
          $old = recuperer_version($id_article, $id_diff);
          $new = $textes;
        }
        $textes = array();
        foreach ($champs as $champ) {
          if (!$new[$champ] && !$old[$champ]) continue;
          $diff = new Diff(new DiffTexte);
          $textes[$champ] = afficher_para_modifies(afficher_diff($diff->comparer(preparer_diff($new[$champ]), preparer_diff($old[$champ]))));
        }
      }
      
      echo debut_block_invisible("$id_version-$id_article-$id_auteur");
      if (is_array($textes))
      foreach ($textes as $var => $t) {
        if (strlen($t) > 0) {
          echo "<blockquote class='spip serif1'>";
          echo propre($t)."";
          echo "</blockquote>";
        }
      }
      echo fin_block();
      echo "</div>";
    }
    echo "</div>";
  }
}

?>
Index: inc_presentation.php3

RCS file: /home/spip-cvs/spip/ecrire/inc_presentation.php3,v
retrieving revision 1.439
retrieving revision 1.440
diff -u -d -r1.439 -r1.440
--- inc_presentation.php3 18 Sep 2004 14:30:10 -0000 1.439
+++ inc_presentation.php3 19 Sep 2004 16:52:59 -0000 1.440
@@ -2032,6 +2032,13 @@
       icone_bandeau_secondaire (_T('icone_articles'), "articles_page.php3", "article-24.gif", "articles", $sous_rubrique);
     }

+ if ($connect_statut == "0minirezo") $req_where = " AND spip_articles.statut IN ('prepa','prop','publie')";
+ else $req_where = " AND spip_articles.statut IN ('prop','publie')";
+ $nombre_versions = spip_num_rows(spip_query("SELECT spip_versions.*, spip_articles.statut, spip_articles.titre FROM spip_versions, spip_articles WHERE spip_versions.id_article = spip_articles.id_article AND spip_versions.id_version > 1$req_where LIMIT 0,1"));
+ if ($nombre_versions > 0 OR 1==1) {
+ icone_bandeau_secondaire (_T('icone_suivi_revisions'), "suivi_versions.php", "historique-24.gif", "revisions", $sous_rubrique);
+ }
+
     $activer_breves=lire_meta("activer_breves");
     if ($activer_breves != "non"){
       icone_bandeau_secondaire (_T('icone_breves'), "breves.php3", "breve-24.gif", "breves", $sous_rubrique);