| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Contains FeedsSitemapParser and related classes.
 
-  */
 
- /**
 
-  * A parser for the Sitemap specification http://www.sitemaps.org/protocol.php
 
-  */
 
- class FeedsSitemapParser extends FeedsParser {
 
-   /**
 
-    * Implements FeedsParser::parse().
 
-    */
 
-   public function parse(FeedsSource $source, FeedsFetcherResult $fetcher_result) {
 
-     // Set time zone to GMT for parsing dates with strtotime().
 
-     $tz = date_default_timezone_get();
 
-     date_default_timezone_set('GMT');
 
-     // Yes, using a DOM parser is a bit inefficient, but will do for now
 
-     $xml = new SimpleXMLElement($fetcher_result->getRaw());
 
-     $result = new FeedsParserResult();
 
-     foreach ($xml->url as $url) {
 
-       $item = array('url' => (string) $url->loc);
 
-       if ($url->lastmod) {
 
-         $item['lastmod'] = strtotime($url->lastmod);
 
-       }
 
-       if ($url->changefreq) {
 
-         $item['changefreq'] = (string) $url->changefreq;
 
-       }
 
-       if ($url->priority) {
 
-         $item['priority'] = (string) $url->priority;
 
-       }
 
-       $result->items[] = $item;
 
-     }
 
-     date_default_timezone_set($tz);
 
-     return $result;
 
-   }
 
-   /**
 
-    * Implements FeedsParser::getMappingSources().
 
-    */
 
-   public function getMappingSources() {
 
-     return array(
 
-       'url' => array(
 
-         'name' => t('Item URL (link)'),
 
-         'description' => t('URL of the feed item.'),
 
-       ),
 
-       'lastmod' => array(
 
-         'name' => t('Last modification date'),
 
-         'description' => t('Last modified date as UNIX time GMT of the feed item.'),
 
-       ),
 
-       'changefreq' => array(
 
-         'name' => t('Change frequency'),
 
-         'description' => t('How frequently the page is likely to change.'),
 
-       ),
 
-       'priority' => array(
 
-         'name' => t('Priority'),
 
-         'description' => t('The priority of this URL relative to other URLs on the site.'),
 
-       ),
 
-     ) + parent::getMappingSources();
 
-   }
 
- }
 
 
  |