Source for file jAtom10Item.class.php

Documentation is available at jAtom10Item.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  utils
  5. @author      Yannick Le Guédart
  6. @contributor Laurent Jouanneau
  7. @contributor  Sebastien Romieu
  8. @contributor  Florian Lonqueu-Brochard
  9. @copyright   2006 Yannick Le Guédart
  10. @copyright   2006-2010 Laurent Jouanneau
  11. @copyright   2010 Sébastien Romieu
  12. @copyright   2012 Florian Lonqueu-Brochard
  13. @link        http://www.jelix.org
  14. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  15. */
  16.  
  17. require_once(JELIX_LIB_PATH.'utils/jXMLFeedItem.class.php');
  18.  
  19. class jAtom10Item extends jXMLFeedItem {
  20.     /**
  21.      * the url of the main author
  22.      * @var string 
  23.      */
  24.     public $authorUri;
  25.     /**
  26.      * list of other authors
  27.      * each author is an array('name'=>'','email'=>'','uri'=>'')
  28.      * @var array 
  29.      */
  30.     public $otherAuthors = array();
  31.     /**
  32.      * list of contributors
  33.      * each contributor is an array('name'=>'','email'=>'','uri'=>'')
  34.      * @var string 
  35.      */
  36.     public $contributorsarray();
  37.     /**
  38.      * related links to the item
  39.      * each link is an array with this keys : href rel type hreflang title length
  40.      * @var array 
  41.      */
  42.     public $otherLinksarray();
  43.     /**
  44.      * summary of the content
  45.      * @var string 
  46.      */
  47.     public $summary;
  48.     /**
  49.      * type of the summary
  50.      * possible values are 'text', 'html', 'xhtml'
  51.      * @var string 
  52.      */
  53.     public $summaryType;
  54.     /**
  55.      * atom content of the source of the item
  56.      * @var xml 
  57.      */
  58.     public $source;
  59.     /**
  60.      * Copyright
  61.      * @var string 
  62.      */
  63.     public $copyright;
  64.     /**
  65.      * date of the last update of the item
  66.      * date format is yyyy-mm-dd hh:mm:ss
  67.      * @var string 
  68.      */
  69.     public $updated;
  70.     
  71.     /**
  72.      * fill item with the given xml node
  73.      */
  74.     public function setFromXML(SimpleXMLElement $item){
  75.         
  76.         $dt new jDateTime();
  77.         
  78.         $this->authorEmail = (string)$item->author->email;
  79.         $this->authorName = (string)$item->author->name;
  80.     
  81.         foreach ($item->category as $cat{
  82.             if($cat['term'!= null)
  83.                 $this->categories[= (string)$cat['term'];
  84.         }
  85.  
  86.         $this->content = (string)$item->content;
  87.         if($item->content['type'])
  88.             $this->contentType = (string)$item->content['type'];
  89.         
  90.         $this->source = (string)$item->source;
  91.         $this->id = (string)$item->id;
  92.         
  93.         if((string)$item->published != ''){
  94.             $dt->setFromString((string)$item->publishedjDateTime::ISO8601_FORMAT);
  95.             $this->published = $dt->toString(jDateTime::DB_DTFORMAT);
  96.         }
  97.  
  98.         $this->title = (string)$item->title;
  99.         $this->authorUri = (string)$item->author->uri;
  100.         $this->copyright = (string)$item->rights;
  101.     
  102.         foreach ($item->contributor as $contrib{
  103.             $this->contributors[array('name' => (string)$contrib->name'email' =>(string)$contrib->email'uri' => (string)$contrib->uri;
  104.         }
  105.  
  106.         $i=0;
  107.         foreach ($item->author as $author{
  108.             if($i==0){
  109.                 $this->authorEmail = (string)$author->email;
  110.                 $this->authorName = (string)$author->name;
  111.                 $this->authorUri = (string)$author->uri;
  112.             }
  113.             else{
  114.                $this->otherAuthors[array('name' => (string)$author->name'email' =>(string)$author->email'uri' => (string)$author->uri;
  115.             }
  116.             $i++;
  117.         }
  118.  
  119.         $attrs_links array('href''rel''type''hreflang''title''length');
  120.         foreach($item->link as $l){
  121.                 if(($l['rel'== 'alternate' || $l['rel'== null)&& $l['href'!= null)
  122.                     $this->link = (string)$l['href'];
  123.                 else{
  124.                     $link array();
  125.                     foreach($attrs_links as $a){
  126.                         if($l[$a!= null)
  127.                             $link[$a= (string)$l[$a];
  128.                     }
  129.                     $this->otherLinks[$link;
  130.                 }
  131.         }
  132.     
  133.         $this->summary = (string)$item->summary;
  134.         if($feed->summary['type'])
  135.             $this->summaryType = (string)$feed->summary['type'];
  136.  
  137.         if((string)$item->updated != ''){
  138.             $dt->setFromString((string)$item->updatedjDateTime::ISO8601_FORMAT);
  139.             $this->updated = $dt->toString(jDateTime::DB_DTFORMAT);
  140.         }
  141.     
  142.     }    
  143.  
  144. }

Documentation generated on Wed, 04 Jan 2017 22:52:09 +0100 by phpDocumentor 1.4.3