[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / exec / cs_boite_rss.php
1 <?php
2 #-----------------------------------------------------#
3 # Plugin : Couteau Suisse - Licence : GPL #
4 # Auteur : Patrice Vanneufville, 2007 #
5 # Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
6 # Infos : http://www.spip-contrib.net/?article2166 #
7 #-----------------------------------------------------#
8 if(!defined("_ECRIRE_INC_VERSION")) return;
9
10 include_spip('inc/actions');
11
12 function exec_cs_boite_rss_dist() {
13 cs_minipres();
14 // Constantes distantes
15 include_spip('cout_define');
16 if(defined('_CS_PAS_DE_DISTANT')) { ajax_retour(_T('couteauprive:version_distante_off')); return; }
17 $p = '';
18 // on cherche le flux rss toutes les _CS_RSS_UPDATE minutes
19 $force = _request('force')=='oui';
20 if(!$force) {
21 $lastmodified = @file_exists(_CS_TMP_RSS)?@filemtime(_CS_TMP_RSS):0;
22 if(time()-$lastmodified < _CS_RSS_UPDATE) lire_fichier(_CS_TMP_RSS, $p);
23 }
24 if(strlen($p)) { ajax_retour($p); return; }
25 include_spip('inc/filtres');
26 include_spip('action/editer_site');
27 include_spip('inc/xml');
28 $r = spip_xml_load(_CS_RSS_SOURCE);
29 if(function_exists('spip_xml_match_nodes')) $c = spip_xml_match_nodes(',^item$,', $r, $r2);
30 else {
31 $r2 = !is_array($r)?array():array_shift(array_shift(array_shift(array_shift($r))));
32 $c = count($r2);
33 }
34 if($c) {
35 $r3 = &$r2['item'];
36 $c = count($r3); $p='';
37 for($i=0; $i<min($c, _CS_RSS_COUNT); $i++) {
38 $l = $r3[$i]['link'][0];
39 $d = affdate_court(date('Y-m-d', strtotime($r3[$i]['pubDate'][0])));
40 $t = str_replace('&amp;', '&', htmlentities($r3[$i]['title'][0], ENT_NOQUOTES, "UTF-8"));
41 $t = preg_replace(',\s*&#8364;(&brvbar;)?,', '&nbsp;(&hellip;)', $t);
42 $t = preg_replace(',^(.*?):,', "&bull; <a href='$l' class='spip_out' target='_cout'>$1</a> <i>($d)</i><br/>", $t);
43 $p .= "<li>$t</li>";
44 }
45 } else {
46 // pour cs_lien()
47 include_spip('couteau_suisse_fonctions');
48 $p = '<span style="color: red;">'._T('couteauprive:erreur:probleme', array('pb'=>cs_lien(_CS_RSS_SOURCE,_T('couteauprive:erreur:distant')))).'</span>';
49 }
50 $du = affdate_heure(date('Y-m-d H:i:s',time()));
51 $p = '<ul>'.$p
52 .'</ul><p class="rss-small"><b>'
53 ._T('couteauprive:rss_edition')."</b><br/>$du</p>"
54 .'<p style="text-align:right"><a href="'
55 .generer_url_ecrire('admin_couteau_suisse','var_mode=calcul', true).'" onclick="'
56 ."javascipt:jQuery('div.cs_boite_rss').children().css('opacity', 0.5).parent().load('".generer_url_ecrire('cs_boite_rss', 'force=oui', true).'\');return false;">'
57 ._T('couteauprive:rss_actualiser').'</a> | <a href="'
58 ._CS_RSS_SOURCE.'">'
59 ._T('couteauprive:rss_source').'</a></p>';
60 if($c) ecrire_fichier(_CS_TMP_RSS, $p);
61
62 ajax_retour($p);
63 }
64
65 ?>