Source for file jResponseAtom10.class.php

Documentation is available at jResponseAtom10.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_response
  5. @author      Yannick Le Guédart
  6. @contributor Laurent Jouanneau
  7. @copyright   2006 Yannick Le Guédart
  8. @copyright   2006-2010 Laurent Jouanneau
  9. @link        http://www.jelix.org
  10. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  11. */
  12.  
  13. require_once(JELIX_LIB_PATH.'tpl/jTpl.class.php');
  14. require_once(JELIX_LIB_CORE_PATH.'response/jResponseXmlFeed.class.php');
  15. require_once(JELIX_LIB_PATH.'utils/jAtom10Info.class.php');
  16. require_once(JELIX_LIB_PATH.'utils/jAtom10Item.class.php');
  17.  
  18. /**
  19. * Atom 1.0 response
  20. *
  21. * Known limitations : only text in the title, and only name in categories
  22. @package  jelix
  23. @subpackage core_response
  24. @link http://tools.ietf.org/html/rfc4287
  25. @since 1.0b1
  26. */
  27. class jResponseAtom10 extends jResponseXMLFeed {
  28.  
  29.     protected $_type = 'atom1.0';
  30.  
  31.     /**
  32.      * Class constructor
  33.      *
  34.      * @return void 
  35.      */
  36.     function __construct (){
  37.         $this->_template     new jTpl();
  38.         $this->_mainTpl     'jelix~atom10';
  39.  
  40.         $this->infos = new jAtom10Info ();
  41.  
  42.         parent::__construct ();
  43.     }
  44.  
  45.     /**
  46.      * Generate the content and send it
  47.      * Errors are managed
  48.      * @return boolean true if generation is ok, else false
  49.      */
  50.     final public function output (){
  51.  
  52.         if($this->_outputOnlyHeaders){
  53.             $this->sendHttpHeaders();
  54.             return true;
  55.         }
  56.     
  57.         $this->_httpHeaders['Content-Type'=
  58.                 'application/atom+xml;charset=' $this->charset;
  59.  
  60.         if(!$this->infos->updated){
  61.             $this->infos->updated date("Y-m-d H:i:s");
  62.         }
  63.  
  64.         // generate the main content, in a buffer
  65.         // so we can handle errors
  66.         $this->_template->assign ('atom'$this->infos);
  67.         $this->_template->assign ('items'$this->itemList);
  68.         $this->_template->assign ('lang',$this->lang);
  69.         $content $this->_template->fetch ($this->_mainTpl);
  70.  
  71.         $this->sendHttpHeaders();
  72.         echo '<?xml version="1.0" encoding="'$this->charset .'"?>'"\n";
  73.         $this->_outputXmlHeader ();
  74.         echo $content;
  75.         return true;
  76.     }
  77.  
  78.     /**
  79.      * create a new item
  80.      * @param string $title the item title
  81.      * @param string $link  the link
  82.      * @param string $date  the date of the item
  83.      * @return jXMLFeedItem 
  84.      */
  85.     public function createItem($title,$link$date){
  86.         $item new jAtom10Item();
  87.         $item->title $title;
  88.         $item->id $item->link $link;
  89.         $item->published $date;
  90.         return $item;
  91.     }
  92.  
  93. }

Documentation generated on Wed, 04 Jan 2017 22:56:07 +0100 by phpDocumentor 1.4.3