Subversion Repositories Sites.tela-botanica.org

Rev

Rev 4 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4 Rev 629
1
<?php
1
<?php
2
 
2
 
3
/***************************************************************************\
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
6
 *  Copyright (c) 2001-2005                                                *
7
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
7
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8
 *                                                                         *
8
 *                                                                         *
9
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11
\***************************************************************************/
11
\***************************************************************************/
12
 
12
 
13
 
13
 
14
// SPIP RSS
14
// SPIP RSS
15
//
15
//
16
// On recoit un op (operation) + args (arguments)
16
// On recoit un op (operation) + args (arguments)
17
// + id (id_auteur) + cle (low_sec(id_auteur, "op args"))
17
// + id (id_auteur) + cle (low_sec(id_auteur, "op args"))
18
// On verifie que la cle correspond
18
// On verifie que la cle correspond
19
// On cree ensuite le RSS correspondant a l'operation
19
// On cree ensuite le RSS correspondant a l'operation
20
 
20
 
21
include("ecrire/inc_version.php3");
21
include("ecrire/inc_version.php3");
22
include_ecrire("inc_texte.php3");
22
include_ecrire("inc_texte.php3");
23
include_ecrire('inc_rss.php3');
23
include_ecrire('inc_rss.php3');
24
include_ecrire("inc_acces.php3");
24
include_ecrire("inc_acces.php3");
25
// Gestionnaire d'URLs
25
// Gestionnaire d'URLs
26
if (@file_exists("inc-urls.php3"))
26
if (@file_exists("inc-urls.php3"))
27
	include_local("inc-urls.php3");
27
	include_local("inc-urls.php3");
28
else
28
else
29
	include_local("inc-urls-".$GLOBALS['type_urls'].".php3");
29
	include_local("inc-urls-".$GLOBALS['type_urls'].".php3");
30
 
30
 
31
 
31
 
32
//
32
//
33
// Verifier la securite du lien et decoder les arguments
33
// Verifier la securite du lien et decoder les arguments
34
//
34
//
35
spip_timer('rss');
35
spip_timer('rss');
36
if (!verifier_low_sec ($id, $cle,
36
if (!verifier_low_sec ($id, $cle,
37
"rss $op $args"
37
"rss $op $args"
38
)
38
)
39
OR ($a['id_auteur']>0 AND $id<>$a['id_auteur'])) {
39
OR ($a['id_auteur']>0 AND $id<>$a['id_auteur'])) {
40
	$op = 'erreur securite';
40
	$op = 'erreur securite';
41
	unset($a);
41
	unset($a);
42
} else {
42
} else {
43
	$a = array();
43
	$a = array();
44
	foreach (split(':', $args) as $bout) {
44
	foreach (split(':', $args) as $bout) {
45
		list($var, $val) = split('-', $bout, 2);
45
		list($var, $val) = split('-', $bout, 2);
46
		$a[$var] = $val;
46
		$a[$var] = $val;
47
	}
47
	}
48
	include_ecrire('inc_lang.php3');
48
	include_ecrire('inc_lang.php3');
49
	lang_select($lang);
49
	lang_select($lang);
50
}
50
}
51
 
51
 
52
//
52
//
53
// Choisir la fonction de calcul du RSS
53
// Choisir la fonction de calcul du RSS
54
//
54
//
55
switch($op) {
55
switch($op) {
56
	# forum public
56
	# forum public
57
	case 'forum':
57
	case 'forum':
58
		if ($id = intval($a['id_article'])) {
58
		if ($id = intval($a['id_article'])) {
59
			$critere = "statut='publie' AND id_article=$id";
59
			$critere = "statut='publie' AND id_article=$id";
60
			$url = generer_url_article($id);
60
			$url = generer_url_article($id);
61
		}
61
		}
62
		else if ($id = intval($a['id_syndic'])) {
62
		else if ($id = intval($a['id_syndic'])) {
63
			$critere = "statut='publie' AND id_syndic=$id";
63
			$critere = "statut='publie' AND id_syndic=$id";
64
			$url = generer_url_site($id);
64
			$url = generer_url_site($id);
65
		}
65
		}
66
		else if ($id = intval($a['id_breve'])) {
66
		else if ($id = intval($a['id_breve'])) {
67
			$critere = "statut='publie' AND id_breve=$id";
67
			$critere = "statut='publie' AND id_breve=$id";
68
			$url = generer_url_breve($id);
68
			$url = generer_url_breve($id);
69
		}
69
		}
70
		else if ($id = intval($a['id_rubrique'])) {
70
		else if ($id = intval($a['id_rubrique'])) {
71
			$critere = "statut='publie' AND id_rubrique=$id";
71
			$critere = "statut='publie' AND id_rubrique=$id";
72
			$url = generer_url_rubrique($id);
72
			$url = generer_url_rubrique($id);
73
		}
73
		}
74
		else if ($id = intval($a['id_thread'])) {
74
		else if ($id = intval($a['id_thread'])) {
75
			$critere = "statut='publie' AND id_thread=$id";
75
			$critere = "statut='publie' AND id_thread=$id";
76
			$url = generer_url_forum($id);
76
			$url = generer_url_forum($id);
77
		}
77
		}
78
		if ($id) $rss = rss_suivi_forums($a, $critere, false);
78
		if ($id) $rss = rss_suivi_forums($a, $critere, false);	
79
		$title = _T("ecrire:titre_page_forum_suivi");
79
		$title = _T("ecrire:titre_page_forum_suivi");
80
		break;
80
		break;
81
	# suivi prive des forums
81
	# suivi prive des forums
82
	case 'forums':
82
	case 'forums':
83
		include_ecrire("inc_forum.php3");
83
		include_ecrire("inc_forum.php3");
84
		$critere = critere_statut_controle_forum($a['page']);
84
		$critere = critere_statut_controle_forum($a['page']);
-
 
85
		//GREG : ajout d'un paramÃtre dans l'url pour afficher des urls publiques
-
 
86
		if (isset($_GET["public"]) && ($_GET["public"] == true))	{
-
 
87
		 	$rss = rss_suivi_forums($a, $critere, false);
-
 
88
		} else	{
85
		$rss = rss_suivi_forums($a, $critere, true);
89
			$rss = rss_suivi_forums($a, $critere, true);
-
 
90
		}
86
		$title = _T("ecrire:titre_page_forum_suivi")." (".$a['page'].")";
91
		$title = _T("ecrire:titre_page_forum_suivi")." (".$a['page'].")";
87
		$url = _DIR_RESTREINT_ABS .'controle_forum.php3?page='.$a['page'];
92
		$url = _DIR_RESTREINT_ABS .'controle_forum.php3?page='.$a['page'];
88
		break;
93
		break;
89
	# revisions des articles
94
	# revisions des articles
90
	case 'revisions':
95
	case 'revisions':
91
		$rss = rss_suivi_versions($a);
96
		$rss = rss_suivi_versions($a);
92
		$title = _T("icone_suivi_revisions");
97
		$title = _T("icone_suivi_revisions");
93
		$url = _DIR_RESTREINT_ABS .'suivi_revisions.php3?';
98
		$url = _DIR_RESTREINT_ABS .'suivi_revisions.php3?';
94
		foreach (array('id_secteur', 'id_auteur', 'lang_choisie') as $var)
99
		foreach (array('id_secteur', 'id_auteur', 'lang_choisie') as $var)
95
			if ($a[$var]) $url.= '&'.$var.'='.$a[$var];
100
			if ($a[$var]) $url.= '&'.$var.'='.$a[$var];
96
		break;
101
		break;
97
	# messagerie privee
102
	# messagerie privee
98
	case 'messagerie':
103
	case 'messagerie':
99
		$rss = rss_suivi_messagerie($a);
104
		$rss = rss_suivi_messagerie($a);
100
		$title = _T("icone_messagerie_personnelle");
105
		$title = _T("icone_messagerie_personnelle");
101
		$url = _DIR_RESTREINT_ABS .'messagerie.php3';
106
		$url = _DIR_RESTREINT_ABS .'messagerie.php3';
102
		break;
107
		break;
103
	# a suivre
108
	# a suivre
104
	case 'a-suivre':
109
	case 'a-suivre':
105
		$rss = rss_a_suivre($a);
110
		$rss = rss_a_suivre($a);
106
		$title = _T("icone_a_suivre");
111
		$title = _T("icone_a_suivre");
107
		$url = _DIR_RESTREINT_ABS .'';
112
		$url = _DIR_RESTREINT_ABS .'';
108
		break;
113
		break;
109
	case 'erreur securite':
114
	case 'erreur securite':
110
		$rss = array(array('title' => _L('Erreur de s&eacute;curit&eacute;')));
115
		$rss = array(array('title' => _L('Erreur de s&eacute;curit&eacute;')));
111
		$title = _L('Erreur de s&eacute;curit&eacute;');
116
		$title = _L('Erreur de s&eacute;curit&eacute;');
112
		$url = '';
117
		$url = '';
113
		break;
118
		break;
114
	default:
119
	default:
115
		$rss = array(array('title' => _L('Erreur')));
120
		$rss = array(array('title' => _L('Erreur')));
116
		$title = _L('Erreur');
121
		$title = _L('Erreur');
117
		$url = '';
122
		$url = '';
118
		break;
123
		break;
119
}
124
}
120
 
125
 
121
//
126
//
122
// Envoyer le RSS
127
// Envoyer le RSS
123
//
128
//
124
$intro = array(
129
$intro = array(
125
	'title' => "[".lire_meta('nom_site')."] RSS ".$title,
130
	'title' => "[".lire_meta('nom_site')."] RSS ".$title,
126
	'url' => $url
131
	'url' => $url
127
);
132
);
128
 
133
 
129
list($content,$header) = affiche_rss($rss, $intro, $fmt);
134
list($content,$header) = affiche_rss($rss, $intro, $fmt);
130
if ($header) @header($header);
135
if ($header) @header($header);
131
echo $content;
136
echo $content;
132
 
137
 
133
spip_log("spip_rss: ".spip_timer('rss'));
138
spip_log("spip_rss: ".spip_timer('rss'));
134
exit;
139
exit;
135
 
140
 
136
 
141
 
137
?>
142
?>