Skip to content
Extraits de code Groupes Projets
Valider 6b5afdf9 rédigé par Fil's avatar Fil
Parcourir les fichiers

une espèce d'API pour spip_rss

parent 1bcf1ac2
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -278,6 +278,27 @@ function affiche_rss($rss, $intro = '') {
return $u;
}
//
// Creer un bouton qui renvoie vers la bonne url spip_rss
function bouton_spip_rss($op, $args) {
include_ecrire("inc_acces.php3");
if (is_array($args))
foreach ($args as $val => $var)
if ($var) $a .= $val.'-'.$var.':';
$a = substr($a,0,-1);
if ($a) $a = "&args=$a";
$link = new Link("../spip_rss.php?op=$op$a");
$link->addVar('id', $GLOBALS['connect_id_auteur']);
$link->addVar('cle', afficher_low_sec($GLOBALS['connect_id_auteur'], "rss $op $a"));
return "<a href='".$link->getUrl()."'>"
. http_img_pack("xml.gif", 'XML', "border='0' align='middle' valign='top'")
. "</a>";
}
function trouver_format($texte) {
$syndic_version = '';
......
......@@ -32,17 +32,19 @@ function afficher_para_modifies ($texte, $court = false) {
return $texte;
}
function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = false, $lang = "", $court = false, $rss = false) {
global $connect_id_auteur, $connect_statut, $dir_lang;
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 ($uniq_auteur) $req_where = " AND articles.statut IN ('prepa','prop','publie')";
else $req_where = " AND articles.statut IN ('prop','publie')";
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 ($uniq_auteur) $req_where = " AND versions.id_auteur = $connect_id_auteur";
if (strlen($lang) > 0) $req_where .= " AND articles.lang='$lang'";
if ($id_secteur > 0) $req_where .= " AND articles.id_secteur = $id_secteur";
......
......@@ -11,52 +11,11 @@
\***************************************************************************/
//
// Si le RSS est demande on ne passe pas par l'authentification de ecrire/
// (hack rapide en attendant une meilleure solution)
//
if ($_GET['rss']) {
include("inc_version.php3");
$debut = intval($debut);
$uniq_auteur = ($uniq_auteur != false);
include_ecrire("inc_suivi_revisions.php");
include_ecrire("lab_revisions.php");
include_ecrire("lab_diff.php");
include_ecrire("inc_texte.php3");
include_ecrire("inc_presentation.php3");
include_ecrire("inc_acces.php3");
// verifier la securite du lien (rss = md5(arguments + low_sec(id_auteur))
if (!verifier_low_sec ($id_auteur, $rss,
"rss suivi $debut $id_secteur $uniq_auteur $lang_choisie"
))
$rss = array(array('title' => 'Erreur'));
else
$rss = afficher_suivi_versions ($debut, $id_secteur, $uniq_auteur, $lang_choisie, true, true);
include_ecrire('inc_sites.php3');
@header('Content-Type: text/xml; charset='.lire_meta('charset'));
$intro = array(
'title' => "[".lire_meta('nom_site')."] "
._T("icone_suivi_revisions"),
'url' => lire_meta('adresse_site').'/'
._DIR_RESTREINT_ABS .'suivi_revisions.php3'
);
echo affiche_rss($rss, $intro);
exit;
}
include("inc_lab.php");
include_ecrire("inc_suivi_revisions.php");
include_spip("ecrire.php");
include_spip("revisions.php");
include_spip("diff.php");
include_ecrire("inc_acces.php3");
$debut = intval($debut);
$uniq_auteur = ($uniq_auteur != false);
......@@ -133,16 +92,18 @@ WHERE versions.id_article = articles.id_article AND versions.id_version > 1 AND
echo "</ul></div>\n";
// lien vers le rss
$link = new Link();
$link->addVar('id_auteur', $connect_id_auteur);
$link->addVar('rss', afficher_low_sec($connect_id_auteur,
"rss suivi $debut $id_secteur $uniq_auteur $lang_choisie"));
include_ecrire('inc_sites.php3');
$op = 'revisions';
$args = array(
'id_secteur' => $id_secteur,
'id_auteur' => $uniq_auteur ? $connect_id_auteur : false,
'lang_choisie' => $lang_choisie
);
echo "<div style='text-align: "
. $GLOBALS['spip_lang_right']
. ";'><a href='".$link->getUrl()."'>"
. http_img_pack("xml.gif", 'XML', "border='0' align='middle' valign='top'")
. "</a></div>";
. ";'>"
. bouton_spip_rss($op, $args)
."</div>";
fin_cadre_relief();
......@@ -156,7 +117,9 @@ fin_cadre_relief();
debut_droite();
afficher_suivi_versions ($debut, $id_secteur, $uniq_auteur, $lang_choisie);
afficher_suivi_versions ($debut, $id_secteur,
$uniq_auteur ? $connect_id_auteur : '',
$lang_choisie);
fin_page();
......
<?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. *
\***************************************************************************/
// SPIP RSS
//
// On recoit un op (operation) + args (arguments)
// + id (id_auteur) + cle (low_sec(id_auteur, "op args"))
// On verifie que la cle correspond
// On cree ensuite le RSS correspondant a l'operation
include("ecrire/inc_version.php3");
include_ecrire("inc_texte.php3");
//
// Verifier la securite du lien et decoder les arguments
//
include_ecrire("inc_acces.php3");
if (!verifier_low_sec ($id, $cle,
"rss $op $args"
)) {
$op = 'erreur securite';
unset($a);
} else {
$a = array();
foreach (split(':', $args) as $bout) {
list($var, $val) = split('-', $bout, 2);
$a[$var] = $val;
}
}
//
// Choisir la fonction de calcul du RSS
//
switch($op) {
case 'revisions':
$rss = rss_suivi_versions($a);
$title = _T("icone_suivi_revisions");
$url = _DIR_RESTREINT_ABS .'suivi_revisions.php3';
break;
case 'erreur securite':
$rss = array(array('title' => _L('Erreur de s&eacute;curit&eacute;')));
$title = _L('Erreur de s&eacute;curit&eacute;');
$url = '';
break;
default:
$rss = array(array('title' => _L('Erreur')));
$title = _L('Erreur');
$url = '';
break;
}
//
// Envoyer le RSS
//
include_ecrire('inc_sites.php3');
@header('Content-Type: text/xml; charset='.lire_meta('charset'));
$intro = array(
'title' => "[".lire_meta('nom_site')."] RSS ".$title,
'url' => lire_meta('adresse_site').'/'.$url
);
echo affiche_rss($rss, $intro);
exit;
//
// Fonctions de calcul (a dispatcher dans les librairies)
//
function rss_suivi_versions($a) {
include_ecrire("inc_suivi_revisions.php");
include_ecrire("lab_revisions.php");
include_ecrire("lab_diff.php");
include_ecrire("inc_presentation.php3");
$rss = afficher_suivi_versions (0, $a['id_secteur'], $a['id_auteur'], $a['lang_choisie'], true, true);
return $rss;
}
?>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter