You've already forked joomla_test
							
							
		
			
	
	
		
			207 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			207 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | /** | ||
|  |  * @package     Joomla.Platform | ||
|  |  * @subpackage  Feed | ||
|  |  * | ||
|  |  * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved. | ||
|  |  * @license     GNU General Public License version 2 or later; see LICENSE | ||
|  |  */ | ||
|  | 
 | ||
|  | defined('JPATH_PLATFORM') or die; | ||
|  | 
 | ||
|  | /** | ||
|  |  * ATOM Feed Parser class. | ||
|  |  * | ||
|  |  * @package     Joomla.Platform | ||
|  |  * @subpackage  Feed | ||
|  |  * @link        http://www.atomenabled.org/developers/syndication/ | ||
|  |  * @since       12.3 | ||
|  |  */ | ||
|  | class JFeedParserAtom extends JFeedParser | ||
|  | { | ||
|  | 	/** | ||
|  | 	 * @var    string  The feed format version. | ||
|  | 	 * @since  12.3 | ||
|  | 	 */ | ||
|  | 	protected $version; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <author> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleAuthor(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		// Set the author information from the XML element.
 | ||
|  | 		$feed->setAuthor((string) $el->name, (string) $el->email, (string) $el->uri); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <contributor> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleContributor(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->addContributor((string) $el->name, (string) $el->email, (string) $el->uri); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <generator> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleGenerator(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->generator = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <id> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleId(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->uri = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <link> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleLink(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$link = new JFeedLink; | ||
|  | 		$link->uri      = (string) $el['href']; | ||
|  | 		$link->language = (string) $el['hreflang']; | ||
|  | 		$link->length   = (int) $el['length']; | ||
|  | 		$link->relation = (string) $el['rel']; | ||
|  | 		$link->title    = (string) $el['title']; | ||
|  | 		$link->type     = (string) $el['type']; | ||
|  | 
 | ||
|  | 		$feed->link = $link; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <rights> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleRights(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->copyright = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <subtitle> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleSubtitle(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->description = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <title> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleTitle(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->title = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the <updated> element for the feed. | ||
|  | 	 * | ||
|  | 	 * @param   JFeed             $feed  The JFeed object being built from the parsed feed. | ||
|  | 	 * @param   SimpleXMLElement  $el    The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function handleUpdated(JFeed $feed, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$feed->updatedDate = (string) $el; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to initialise the feed for parsing.  Here we detect the version and advance the stream | ||
|  | 	 * reader so that it is ready to parse feed elements. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function initialise() | ||
|  | 	{ | ||
|  | 		// Read the version attribute.
 | ||
|  | 		$this->version = ($this->stream->getAttribute('version') == '0.3') ? '0.3' : '1.0'; | ||
|  | 
 | ||
|  | 		// We want to move forward to the first element after the root element.
 | ||
|  | 		$this->moveToNextElement(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Method to handle the feed entry element for the feed: <entry>. | ||
|  | 	 * | ||
|  | 	 * @param   JFeedEntry        $entry  The JFeedEntry object being built from the parsed feed entry. | ||
|  | 	 * @param   SimpleXMLElement  $el     The current XML element object to handle. | ||
|  | 	 * | ||
|  | 	 * @return  void | ||
|  | 	 * | ||
|  | 	 * @since   12.3 | ||
|  | 	 */ | ||
|  | 	protected function processFeedEntry(JFeedEntry $entry, SimpleXMLElement $el) | ||
|  | 	{ | ||
|  | 		$entry->uri         = (string) $el->id; | ||
|  | 		$entry->title       = (string) $el->title; | ||
|  | 		$entry->updatedDate = (string) $el->updated; | ||
|  | 		$entry->content     = (string) $el->summary; | ||
|  | 	} | ||
|  | } |