source: spip-zone/_plugins_/couteau_suisse/exec/cs_boite_rss.php @ 60201

Last change on this file since 60201 was 54758, checked in by patfr@…, 8 years ago

Cosmétique SPIP 3.0
+ Retour des RSS et version du plugin
+ Diverses bricoles

File size: 2.6 KB
Line 
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#-----------------------------------------------------#
8if(!defined("_ECRIRE_INC_VERSION")) return;
9
10include_spip('inc/actions');
11
12function 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?>
Note: See TracBrowser for help on using the repository browser.