Subversion Repositories eFlore/Applications.cel

Rev

Rev 741 | Rev 960 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 741 Rev 788
Line 79... Line 79...
79
	private function executerObservation() {
79
	private function executerObservation() {
80
		$widget = null;
80
		$widget = null;
81
		extract($this->parametres);
81
		extract($this->parametres);
82
		$max_obs = (isset($max_obs) && preg_match('/^[0-9]+,[0-9]+$/', $max_obs)) ? $max_obs : '10';
82
		$max_obs = (isset($max_obs) && preg_match('/^[0-9]+,[0-9]+$/', $max_obs)) ? $max_obs : '10';
83
		$this->flux_rss_url .= $this->traiterParametres();
83
		$this->flux_rss_url .= $this->traiterParametres();
-
 
84
		if (file_get_contents($this->flux_rss_url, false) != false) {
84
		$xml = file_get_contents($this->flux_rss_url);
85
			$xml = file_get_contents($this->flux_rss_url);
85
		if ($xml) {
86
			if ($xml) {
86
			try {
87
				try {
87
				$flux = new XmlFeedParser($xml);
88
					$flux = new XmlFeedParser($xml);
88
			
89
				
89
				$widget['donnees']['flux_rss_url'] = $this->flux_rss_url;
90
					$widget['donnees']['flux_rss_url'] = $this->flux_rss_url;
90
				$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/observation/squelettes/css/');
91
					$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/observation/squelettes/css/');
91
				$widget['donnees']['colonne'] = 1;
92
					$widget['donnees']['colonne'] = 1;
92
				$num = 0;
93
					$num = 0;
93
				foreach ($flux as $entree) {
94
					foreach ($flux as $entree) {
94
					if ($num == $max_obs) {
95
						if ($num == $max_obs) {
95
						break;
96
							break;
-
 
97
						}
-
 
98
						$item = array();
-
 
99
						// Formatage date
-
 
100
						$date = $entree->updated ? $entree->updated : null;
-
 
101
						$date = $entree->pubDate ? $entree->pubDate : $date;
-
 
102
						$item['date'] = strftime('%A %d %B %Y', $date);
-
 
103
						// Formatage titre
-
 
104
		    			$item['titre'] = $entree->title;
-
 
105
		    			$item['nn'] = '';
-
 
106
		    			$item['eflore_url'] = '#';
-
 
107
		    			if (preg_match('/\[nn([0-9]+)\]/', $entree->title, $match)) {
-
 
108
		    				$item['nn'] = $match[1];
-
 
109
		    				$item['eflore_url'] = sprintf($this->eflore_url_tpl, $item['nn']);
-
 
110
		    			}
-
 
111
		    			
-
 
112
						// Récupération du GUID
-
 
113
						if (preg_match('/urn:lsid:tela-botanica.org:cel:obs([0-9]+)$/', $entree->id, $match)) {
-
 
114
		  					$item['guid'] = (int) $match[1];
-
 
115
						} else {
-
 
116
							$item['guid'] = $entree->id;
-
 
117
						}
-
 
118
						$item['description'] = $entree->content;
-
 
119
						
-
 
120
						$widget['donnees']['items'][$num++] =  $item;
96
					}
121
					}
97
					$item = array();
-
 
98
					// Formatage date
-
 
99
					$date = $entree->updated ? $entree->updated : null;
-
 
100
					$date = $entree->pubDate ? $entree->pubDate : $date;
-
 
101
					$item['date'] = strftime('%A %d %B %Y', $date);
-
 
102
					// Formatage titre
-
 
103
	    			$item['titre'] = $entree->title;
122
					$widget['squelette'] = 'observation';
104
	    			$item['nn'] = '';
-
 
105
	    			$item['eflore_url'] = '#';
123
				} catch (XmlFeedParserException $e) {
106
	    			if (preg_match('/\[nn([0-9]+)\]/', $entree->title, $match)) {
-
 
107
	    				$item['nn'] = $match[1];
-
 
108
	    				$item['eflore_url'] = sprintf($this->eflore_url_tpl, $item['nn']);
124
				    trigger_error('Flux invalide : '.$e->getMessage(), E_USER_WARNING);
109
	    			}
-
 
110
	    			
-
 
111
					// Récupération du GUID
-
 
112
					if (preg_match('/urn:lsid:tela-botanica.org:cel:obs([0-9]+)$/', $entree->id, $match)) {
-
 
113
	  					$item['guid'] = (int) $match[1];
-
 
114
					} else {
-
 
115
						$item['guid'] = $entree->id;
-
 
116
					}
-
 
117
					$item['description'] = $entree->content;
-
 
118
					
-
 
119
					$widget['donnees']['items'][$num++] =  $item;
-
 
120
				}
125
				}
121
				$widget['squelette'] = 'observation';
-
 
122
			} catch (XmlFeedParserException $e) {
126
			} else {
123
			    trigger_error('Flux invalide : '.$e->getMessage(), E_USER_WARNING);
127
				$this->messages[] = "Fichier xml invalide.";
124
			}
128
			}
-
 
129
		} else {
-
 
130
			$this->messages[] = "L'URI, $this->flux_rss_url, est invalide.";
125
		}
131
		}
126
		return $widget;
132
		return $widget;
127
	}
133
	}
Line 128... Line 134...
128
	
134