Subversion Repositories Applications.papyrus

Rev

Rev 1087 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
771 florian 1
<?php
2
 
772 florian 3
define('MAGPIE_DIR', GEN_CHEMIN_API.'syndication_rss/magpierss/');
945 alexandre_ 4
define('MAGPIE_CACHE_DIR', MAGPIE_DIR.'tmp/magpie_cache');
772 florian 5
define('OUVRIR_LIEN_RSS_NOUVELLE_FENETRE', 1);
6
define('FORMAT_DATE', 'jma');
771 florian 7
require_once(MAGPIE_DIR.'rss_fetch.inc');
8
 
843 alexandre_ 9
function voir_rss($titre='', $url='', $nb=0, $nouvelle_fenetre=OUVRIR_LIEN_RSS_NOUVELLE_FENETRE, $formatdate=FORMAT_DATE, $template = "") {
771 florian 10
	$res= '';
11
	if ( $url!='' ) {
12
		$rss = fetch_rss( $url );
1039 alexandre_ 13
 
843 alexandre_ 14
		if ($template != "") {
1039 alexandre_ 15
			$i = 0 ;
843 alexandre_ 16
			foreach ($rss->items as $item) {
945 alexandre_ 17
				// Le test suivant pour savoir s il faut reduire l excendent de description
18
				// Si {all} est present dans le template on ne reduit pas
19
				if (preg_match ('/{all}/', $template)) {
20
					$template = str_replace('{all}', '', $template);
21
					$all = true ;
1039 alexandre_ 22
				} else {
23
					$all = false;
945 alexandre_ 24
				}
25
				if (strlen($item['description']) > 200 && !$all) {
843 alexandre_ 26
					$item['description'] = substr ($item['description'] , 0, 300).'... <a href="'.$item['link'].'">Lire la suite</a>';
27
				}
1039 alexandre_ 28
				if (!isset($item['pubdate'])) $item['pubdate'] = date('dmY');
1203 alexandre_ 29
 
30
				// Le code ci-apres est pour rattraper les dates du type 01012005 parsees par magpie
31
				// lorsque les flux donne des dates au format iso
32
				if (preg_match('/^([0-3][0-9])([0-1][0-9])([0-9][0-9][0-9][0-9])$/', $item['pubdate'], $match)) {
33
					$item['pubdate'] = $match[3].'-'.$match[2].'-'.$match[1];
34
					//echo $item['pubdate'];
35
				}
843 alexandre_ 36
				$res .= str_replace ('{num}', ++$i,
37
						str_replace ('{item}', '<a href="'.$item['link'].'" target="_top">'.$item['title'].'</a>',
945 alexandre_ 38
						str_replace ('{date}', strftime('%d.%m.%Y',strtotime($item['pubdate'])),
39
						str_replace ('{description}', $item['description'], $template)))) ;
843 alexandre_ 40
				$res .= "\n";
1039 alexandre_ 41
				if ($i > $nb) break;
945 alexandre_ 42
 
843 alexandre_ 43
			}
44
			return $res ;
45
		}
771 florian 46
		if ( $titre=='' ) {$res .= '<h2>'.$rss->channel['title'].'</h2>'."\n";}
47
		elseif ( $titre!='0' ) {$res .= '<h2>'.$titre.'</h2>'."\n";}
48
		$res .= '<ul class="liste_rss">'."\n";
49
		$i=0;
772 florian 50
        $nb_item=count($rss->items);
771 florian 51
		if (($nb==0)or($nb_item<=$nb)) {
52
			foreach ($rss->items as $item) {
53
				$href = $item['link'];
54
				$title = $item['title'];
772 florian 55
				$res .= '<li class="titre_rss">'."\n";
56
				if (isset($item['pubdate'])) $date=$item['pubdate'];
57
				elseif ((!isset($item['pubdate']))and(isset($item['date_timestamp']))) $date=$item['date_timestamp'];
58
				else $formatdate='';
59
				if ($formatdate=='jm') {$res .= strftime('%d.%m',strtotime($date)).': ';}
60
				if ($formatdate=='jma') {$res .= strftime('%d.%m.%Y',strtotime($date)).': ';}
61
				if ($formatdate=='jmh') {$res .= strftime('%d.%m %H:%M',strtotime($date)).': ';}
62
				if ($formatdate=='jmah') {$res .= strftime('%d.%m.%Y %H:%M',strtotime($date)).': ';}
63
                $res .= '<a class="lien_rss" href="'.$href;
771 florian 64
        	               	if ($nouvelle_fenetre==1) $res .=  '" onclick="window.open(this.href); return false;';
65
				$res .= '">'.$title.'</a></li>'."\n";
66
			}
67
		}
68
		else {
69
			$i=0;
70
			foreach ($rss->items as $item) {
71
				$href = $item['link'];
72
				$title = $item['title'];
772 florian 73
				$res .= '<li class="titre_rss">'."\n";
771 florian 74
				if (isset($item['pubdate'])) $date=$item['pubdate'];
75
				elseif ((!isset($item['pubdate']))and(isset($item['date_timestamp']))) $date=$item['date_timestamp'];
76
				else $formatdate='';
77
				if ($formatdate=='jm') {$res .= strftime('%d.%m',strtotime($date)).': ';}
78
				if ($formatdate=='jma') {$res .= strftime('%d.%m.%Y',strtotime($date)).': ';}
79
				if ($formatdate=='jmh') {$res .= strftime('%d.%m %H:%M',strtotime($date)).': ';}
80
				if ($formatdate=='jmah') {$res .= strftime('%d.%m.%Y %H:%M',strtotime($date)).': ';}
772 florian 81
                $res .= '<a class="lien_rss" href="'.$href;
771 florian 82
        	               	if ($nouvelle_fenetre==1) $res .=  '" onclick="window.open(this.href); return false;';
83
				$res .= '">'.$title.'</a></li>'."\n";
84
				$i++;
85
				if ($i>=$nb) break;
86
			}
87
		}
88
		$res .= '</ul>'."\n";
89
	}
90
        //echo '<pre>'.var_dump($rss->items).'</pre><br /><br />';
91
	return $res;
92
}
93
?>