X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fsuivi_versions.php;fp=www%2Fecrire%2Finc%2Fsuivi_versions.php;h=b4b0e6c1e24937c34342adfa87c4cbc101a1ce83;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/suivi_versions.php b/www/ecrire/inc/suivi_versions.php new file mode 100644 index 0000000..b4b0e6c --- /dev/null +++ b/www/ecrire/inc/suivi_versions.php @@ -0,0 +1,279 @@ + $max) $texte_ret .= '(...)'; + } + $texte = $texte_ret; + return $texte; +} + + +// Retourne le titre de la rubrique demandee, pour affichage de la chaine +// "deplace de XX vers YY" +// http://doc.spip.org/@titre_rubrique +function titre_rubrique($id_rubrique) { + if (!$id = intval($id_rubrique)) + return _T('info_sans_titre'); + + return typo(sql_getfetsel('titre', 'spip_rubriques', "id_rubrique=$id")); +} + + +// http://doc.spip.org/@afficher_suivi_versions +function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = false, $lang = "", $court = false) { + + changer_typo($lang); + $lang_dir = lang_dir($lang); + $nb_aff = 10; + $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps'); + + if ($uniq_auteur) { + $req_where = " AND articles.statut IN ('prepa','prop','publie')"; + $req_where .= " AND versions.id_auteur = $uniq_auteur"; + } else { + $req_where = " AND articles.statut IN ('prop','publie')"; + } + + if (strlen($lang) > 0) + $req_where .= " AND articles.lang=" . sql_quote($lang); + + if ($id_secteur > 0) + $req_where .= " AND articles.id_secteur = ".intval($id_secteur); + + $req_where = "versions.id_version > 1 $req_where"; + + $req_sel = "versions.id_version, versions.id_auteur, versions.date, versions.id_article, articles.statut, articles.titre"; + + $req_from = 'spip_versions AS versions LEFT JOIN spip_articles AS articles ON versions.id_article = articles.id_article'; + + $revisions = ''; + $items = array(); + $result = sql_select($req_sel, $req_from, $req_where, '', 'versions.date DESC', "$debut, $nb_aff"); + while ($row = sql_fetch($result)) { + $id_article = $row['id_article']; + if (autoriser('voir','article',$id_article)){ + $statut = $row['statut']; + $id_version = $row['id_version']; + $id_auteur = $row['id_auteur']; + $date = $row['date']; + $titre = typo(supprime_img($row['titre'],'')); + + // l'id_auteur peut etre un numero IP (edition anonyme) + if ($id_auteur == intval($id_auteur) + AND $row_auteur = sql_fetsel('nom,email', 'spip_auteurs', "id_auteur = ".sql_quote($id_auteur))) { + $nom = typo($row_auteur["nom"]); + $email = $row_auteur['email']; + } else { + $nom = $id_auteur; + $email = ''; + } + + $aff = revisions_bouton($id_article, $id_auteur, $id_version, $titre, $statut, $date, $lang_dir, $nom); + if (!$court) { + $bouton_id = "b$id_version-$id_article-$id_auteur"; + $aff = bouton_block_depliable($aff,false,$bouton_id) + . debut_block_depliable(false,$bouton_id) + . safehtml(revisions_diff ($id_article, $id_version, $court)) + . fin_block(); + } + $revisions .= "\n
'.$GLOBALS['les_notes'].'
'; + $GLOBALS['les_notes'] = ''; + } + $rev .= "$aff"; + } + } + } + return $court ? _T('taille_octets', array('taille' => $nb)) : $rev; +} + +// http://doc.spip.org/@revisions_bouton +function revisions_bouton($id_article, $id_auteur, $id_version, $titre, $statut, $date, $lang_dir, $nom) +{ + $titre_bouton = ""; + $titre_bouton .= puce_statut($statut); + $titre_bouton .= "\n $titre"; + $titre_bouton .= ""; + $titre_bouton .= "\n".date_relative($date)." "; # laisser un peu de privacy aux redacteurs + $titre_bouton .= ""; + if (strlen($nom)>0) $titre_bouton .= "($nom)"; + $titre_bouton .= ""; + return $titre_bouton; +} + +// http://doc.spip.org/@revisions_entete_boite +function revisions_entete_boite($court, $debut, $id_secteur, $lang, $nb_aff, $req_from, $req_where, $uniq_auteur) +{ + + $titre_table = '' . _T('icone_suivi_revisions').aide('suivimodif') . ''; + if ($court) + $titre_table = afficher_plus(generer_url_ecrire("suivi_revisions")) + . $titre_table; + + $total = sql_countsel($req_from, $req_where); + if ($total >= 150) $total = 149; + $id_liste = 't'.substr(md5("$req_where 149"),0,8); + $bouton = bouton_block_depliable($titre_table,true,$id_liste); + $revisions = debut_cadre('liste',"historique-24.gif",'',$bouton) + . debut_block_depliable(true,$id_liste); + + if ($total > $nb_aff) { + $nb_tranches = ceil($total / $nb_aff); + + $revisions .= "\n