Rev 609 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/***************************************************************************\* SPIP, Systeme de publication pour l'internet ** ** Copyright (c) 2001-2005 ** Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James ** ** Ce programme est un logiciel libre distribue sous licence GNU/GPL. ** Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *\***************************************************************************///// Ce fichier ne sera execute qu'une foisif (defined("_ECRIRE_INC_SUIVI_REVISIONS")) return;define("_ECRIRE_INC_SUIVI_REVISIONS", "1");include_ecrire("inc_lab.php");include_spip("ecrire.php");function afficher_para_modifies ($texte, $court = false) {// Limiter la taille de l'affichageif ($court) $max = 200;else $max = 2000;$paras = explode ("\n",$texte);for ($i = 0; $i < count($paras) AND strlen($texte_ret) < $max; $i++) {if (strpos($paras[$i], '"diff-')) $texte_ret .= $paras[$i]."\n\n";}$texte = $texte_ret;return $texte;}function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $id_auteur = false, $lang = "", $court = false, $rss = false) {global $dir_lang;$nb_aff = 10;$champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps');if ($id_auteur) {$req_where = " AND articles.statut IN ('prepa','prop','publie')";$req_where = " AND versions.id_auteur = $id_auteur";} else {$req_where = " AND articles.statut IN ('prop','publie')";}if (strlen($lang) > 0) $req_where .= " AND articles.lang='$lang'";if ($id_secteur > 0) $req_where .= " AND articles.id_secteur = $id_secteur";$query = "SELECT versions.*, articles.statut, articles.titreFROM spip_versions AS versions, spip_articles AS articlesWHERE versions.id_article = articles.id_article AND versions.id_version > 1 $req_where ";$result = spip_query($query . " ORDER BY versions.date DESC LIMIT $debut, $nb_aff");if (spip_num_rows($result) > 0) {// Afficher l'entete de la boiteif (!$rss) {$titre_table = _T('icone_suivi_revisions').aide('suivimodif');if ($court)$titre_table = afficher_plus("suivi_revisions.php3"). $titre_table;echo "<div style='height: 12px;'></div>";echo "<div class='liste'>";bandeau_titre_boite2($titre_table, "historique-24.gif");$total = spip_num_rows(spip_query($query . "LIMIT 0, 149"));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_revisions.php3?debut=".($i * $nb_aff)."&id_secteur=$id_secteur&uniq_auteur=$uniq_auteur&lang_choisie=$lang'>";echo (($i * $nb_aff) + 1);if ($i*$nb_aff == $debut) echo "</b>";else echo "</a>";}echo "</div>";}}// Afficher les 10 elementswhile ($row = spip_fetch_array($result)) {$id_version = $row['id_version'];$id_auteur = $row['id_auteur'];$date = $row['date'];$id_article = $row['id_article'];$statut = $row['statut'];$titre = propre($row['titre']);$query_auteur = "SELECT nom,emailFROM spip_auteursWHERE id_auteur = $id_auteur";$row_auteur = spip_fetch_array(spip_query($query_auteur));$nom = typo($row_auteur["nom"]);$email = $row_auteur['email'];$logo_statut = "puce-".puce_statut($statut).".gif";if (!$rss) {echo "<div class='tr_liste' style='padding: 5px; border-top: 1px solid #aaaaaa;'>";echo "<span class='arial2'>";if (!$court) echo bouton_block_visible("$id_version-$id_article-$id_auteur");echo "<img src='" . _DIR_IMG_PACK . "$logo_statut' border='0'> ";echo "<a class='$statut' style='font-weight: bold;' href='articles_versions.php3?id_article=$id_article'>$titre</a>";echo "</span>";echo "<span class='arial1'$dir_lang>";echo " ".date_relative($date)." ";if (strlen($nom)>0) echo "($nom)";echo "</span>";} else {$item = array('title' => $titre,'url' => lire_meta('adresse_site').'/'._DIR_RESTREINT_ABS."articles_versions.php3?id_article=$id_article&id_version=$id_version",'date' => $date,'author' => $nom,'email' => $email);}if (!$court) {$query_diff = "SELECT id_versionFROM spip_versionsWHERE id_article=$id_article AND id_version<$id_versionORDER BY id_version DESC LIMIT 0,1";if ($result_diff = spip_query($query_diff)) {$row_diff = spip_fetch_array($result_diff);$id_diff = $row_diff['id_version'];}$query_art = "SELECT *FROM spip_articlesWHERE 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]))), $court);}}if (!$rss)echo debut_block_visible("$id_version-$id_article-$id_auteur");if (is_array($textes))foreach ($textes as $var => $t) {if (strlen($t) > 0) {if (!$rss) echo "<blockquote class='serif1'>";$aff = propre_diff($t);if ($GLOBALS['les_notes']) {$aff .= '<p>'.$GLOBALS['les_notes'];$GLOBALS['les_notes'] = '';}if (!$rss) {echo $aff;echo "</blockquote>";} else$item['description'] = $aff;}}if (!$rss) echo fin_block();}if (!$rss) echo "</div>";if ($rss)$items[] = $item;}if (!$rss) echo "</div>";}if ($rss)return $items;}?>