Skip to content
Extraits de code Groupes Projets
Valider afdbcada rédigé par esj's avatar esj
Parcourir les fichiers

fonctionnalisation des scripts de l'espace public, et nettoyage de code

parent 45e2e72e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -14,6 +14,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_minipres");
include_ecrire("inc_acces");
include_ecrire("inc_texte"); // utile pour l'espace public, deja fait sinon
// mais d'abord un tri par date (inverse)
function trier_par_date($a, $b) {
......@@ -134,31 +136,28 @@ END:'.$type.'
//
// Creer un bouton qui renvoie vers la bonne url spip_rss
function bouton_spip_rss($op, $args, $fmt='rss') {
include_ecrire("inc_acces");
if (is_array($args))
foreach ($args as $val => $var)
if ($var) $a .= $val.'-'.$var.':';
$a = substr($a,0,-1);
if ($var) $a .= ':' . $val.'-'.$var;
$a = substr($a,1);
$link = new Link("spip_rss.php?op=$op");
if ($a) $link->addVar('args', $a);
$link->addVar('id', $GLOBALS['connect_id_auteur']);
$cle = afficher_low_sec($GLOBALS['connect_id_auteur'], "rss $op $a");
$link->addVar('cle', $cle);
$link->addVar('lang', $GLOBALS['spip_lang']);
$url = $link->getUrl();
$url = suivre_lien($GLOBALS['meta']['adresse_site'] . '/',
("spip_rss.php?op=$op"
. (!$a ? "" : "&args=$a")
. ('&id=' . $GLOBALS['connect_id_auteur'])
. ('&cle=' . afficher_low_sec($GLOBALS['connect_id_auteur'], "rss $op $a"))
. ('&lang=' . $GLOBALS['spip_lang'])));
switch($fmt) {
case 'ical':
$url = preg_replace(',^.*?://,', 'webcal://', url_absolue($url))
. "&fmt=ical";
$url = preg_replace(',^.*?://,', 'webcal://', $url)
. "&fmt=ical";
$button = 'iCal';
break;
case 'rss':
default:
$url = url_absolue($url);
$button = 'RSS';
break;
}
......@@ -172,8 +171,6 @@ function bouton_spip_rss($op, $args, $fmt='rss') {
//
// Fonctions de remplissage du RSS
//
......@@ -366,5 +363,120 @@ function rss_sites($critere) {
return $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
function spip_rss_dist()
{
global $args, $cle, $fmt, $id, $lang, $op;
charger_generer_url();
//
// Verifier la securite du lien et decoder les arguments
//
spip_timer('rss');
if (!verifier_low_sec ($id, $cle,
"rss $op $args"
)
OR ($a['id_auteur']>0 AND $id<>$a['id_auteur'])) {
$op = 'erreur securite';
unset($a);
} else {
$a = array();
foreach (split(':', $args) as $bout) {
list($var, $val) = split('-', $bout, 2);
$a[$var] = $val;
}
include_ecrire('inc_lang');
lang_select($lang);
}
//
// Choisir la fonction de calcul du RSS
//
switch($op) {
# forum public
case 'forum':
if ($id = intval($a['id_article'])) {
$critere = "statut='publie' AND id_article=$id";
$url = generer_url_article($id);
}
else if ($id = intval($a['id_syndic'])) {
$critere = "statut='publie' AND id_syndic=$id";
$url = generer_url_site($id);
}
else if ($id = intval($a['id_breve'])) {
$critere = "statut='publie' AND id_breve=$id";
$url = generer_url_breve($id);
}
else if ($id = intval($a['id_rubrique'])) {
$critere = "statut='publie' AND id_rubrique=$id";
$url = generer_url_rubrique($id);
}
else if ($id = intval($a['id_thread'])) {
$critere = "statut='publie' AND id_thread=$id";
$url = generer_url_forum($id);
}
if ($id) $rss = rss_suivi_forums($a, "FROM spip_forum WHERE $critere", false);
$title = _T("ecrire:titre_page_forum_suivi");
break;
# suivi prive des forums
case 'forums':
include_ecrire("inc_forum");
$critere = critere_statut_controle_forum($a['page']);
$rss = rss_suivi_forums($a, $critere, true);
$title = _T("ecrire:titre_page_forum_suivi")." (".$a['page'].")";
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'controle_forum', 'page='.$a['page']);
break;
# revisions des articles
case 'revisions':
$rss = rss_suivi_versions($a);
$title = _T("icone_suivi_revisions");
$url = "";
foreach (array('id_secteur', 'id_auteur', 'lang_choisie') as $var)
if ($a[$var]) $url.= $var.'='.$a[$var] . '&';
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'suivi_revisions', $url);
break;
# messagerie privee
case 'messagerie':
$rss = rss_suivi_messagerie($a);
$title = _T("icone_messagerie_personnelle");
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'messagerie');
break;
# a suivre
case 'a-suivre':
$rss = rss_a_suivre($a);
$title = _T("icone_a_suivre");
$url = _DIR_RESTREINT_ABS;
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
//
$intro = array(
'title' => "[".$GLOBALS['meta']['nom_site']."] RSS ".$title,
'url' => $url
);
list($content,$header) = affiche_rss($rss, $intro, $fmt);
if ($header) @header($header);
echo $content;
spip_log("spip_rss: ".spip_timer('rss'));
}
?>
......@@ -10,129 +10,23 @@
* 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");
include_ecrire('inc_rss');
include_ecrire("inc_acces");
// Gestionnaire d'URLs
if (@file_exists("inc-urls" . _EXTENSION_PHP))
include_local("inc-urls");
else
include_local("inc-urls-".$GLOBALS['type_urls']);
//
// Verifier la securite du lien et decoder les arguments
//
spip_timer('rss');
if (!verifier_low_sec ($id, $cle,
"rss $op $args"
)
OR ($a['id_auteur']>0 AND $id<>$a['id_auteur'])) {
$op = 'erreur securite';
unset($a);
} else {
$a = array();
foreach (split(':', $args) as $bout) {
list($var, $val) = split('-', $bout, 2);
$a[$var] = $val;
}
include_ecrire('inc_lang');
lang_select($lang);
}
$var_nom = "rss";
//
// Choisir la fonction de calcul du RSS
//
switch($op) {
# forum public
case 'forum':
if ($id = intval($a['id_article'])) {
$critere = "statut='publie' AND id_article=$id";
$url = generer_url_article($id);
}
else if ($id = intval($a['id_syndic'])) {
$critere = "statut='publie' AND id_syndic=$id";
$url = generer_url_site($id);
}
else if ($id = intval($a['id_breve'])) {
$critere = "statut='publie' AND id_breve=$id";
$url = generer_url_breve($id);
}
else if ($id = intval($a['id_rubrique'])) {
$critere = "statut='publie' AND id_rubrique=$id";
$url = generer_url_rubrique($id);
}
else if ($id = intval($a['id_thread'])) {
$critere = "statut='publie' AND id_thread=$id";
$url = generer_url_forum($id);
}
if ($id) $rss = rss_suivi_forums($a, "FROM spip_forum WHERE $critere", false);
$title = _T("ecrire:titre_page_forum_suivi");
break;
# suivi prive des forums
case 'forums':
include_ecrire("inc_forum");
$critere = critere_statut_controle_forum($a['page']);
$rss = rss_suivi_forums($a, $critere, true);
$title = _T("ecrire:titre_page_forum_suivi")." (".$a['page'].")";
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'controle_forum', 'page='.$a['page']);
break;
# revisions des articles
case 'revisions':
$rss = rss_suivi_versions($a);
$title = _T("icone_suivi_revisions");
$url = "";
foreach (array('id_secteur', 'id_auteur', 'lang_choisie') as $var)
if ($a[$var]) $url.= $var.'='.$a[$var] . '&';
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'suivi_revisions', $url);
break;
# messagerie privee
case 'messagerie':
$rss = rss_suivi_messagerie($a);
$title = _T("icone_messagerie_personnelle");
$url = generer_url_ecrire(_DIR_RESTREINT_ABS .'messagerie');
break;
# a suivre
case 'a-suivre':
$rss = rss_a_suivre($a);
$title = _T("icone_a_suivre");
$url = _DIR_RESTREINT_ABS;
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;
}
$var_f = find_in_path('inc_' . $var_nom . '.php');
//
// Envoyer le RSS
//
$intro = array(
'title' => "[".$GLOBALS['meta']['nom_site']."] RSS ".$title,
'url' => $url
);
list($content,$header) = affiche_rss($rss, $intro, $fmt);
if ($header) @header($header);
echo $content;
spip_log("spip_rss: ".spip_timer('rss'));
exit;
if ($var_f)
include($var_f);
else
include_ecrire('inc_' . $var_nom);
$var_nom = "spip_rss";
if (function_exists($var_nom))
$var_nom();
elseif (function_exists($var_f = $var_nom . "_dist"))
$var_f();
else
spip_log("fonction $nom indisponible");
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter