Source for file jResponseXmlFeed.class.php

Documentation is available at jResponseXmlFeed.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-2012 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. /**
  14.  * Responses for Syndication  should inherits from jResponseXMLFeed
  15.  * @package    jelix
  16.  * @subpackage core_response
  17.  * @since 1.0b1
  18.  */
  19. abstract class jResponseXMLFeed extends jResponse {
  20.  
  21.     /**
  22.     * charset used in the channel
  23.     * @var string 
  24.     */
  25.     public $charset;
  26.  
  27.     /**
  28.     * Language used in the channel
  29.     * @var string 
  30.     */
  31.     public $lang;
  32.  
  33.     /**
  34.     * informations about the channel
  35.     * @var jXMLFeedInfo 
  36.     */
  37.     public $infos = null;
  38.  
  39.     /**
  40.     * array of channel item
  41.     */
  42.     public $itemList = array ();
  43.  
  44.     /**
  45.     * Template engine used for output
  46.     * @var jtpl 
  47.     */
  48.     private $_template null;
  49.  
  50.     /**
  51.      * template name
  52.      * @var string 
  53.      */
  54.     private $_mainTpl '';
  55.  
  56.     /**
  57.     * Array containing the XSL stylesheets links
  58.     */
  59.     private $_xsl array ();
  60.  
  61.     /**
  62.      * Class constructor
  63.      */
  64.     function __construct (){
  65.  
  66.         $this->charset  = jApp::config()->charset;
  67.         $this->lang     = jLocale::getCurrentLang();
  68.  
  69.         parent::__construct ();
  70.     }
  71.  
  72.     /**
  73.      * create a new item
  74.      * @param string $title the item title
  75.      * @param string $link  the link
  76.      * @param string $date  the date of the item
  77.      * @return jXMLFeedItem 
  78.      */
  79.     abstract public function createItem($title,$link$date);
  80.  
  81.     /**
  82.      * register an item in the channel
  83.      * @param jXMLFeedItem $item 
  84.      */
  85.     public function addItem ($item){
  86.         $this->itemList[$item;
  87.     }
  88.  
  89.  
  90.     public function addOptionals($content{
  91.         if (is_array($content)) {
  92.             $this->_optionals $content;
  93.         }
  94.     }
  95.  
  96.     public function addXSLStyleSheet($src$params=array ()) {
  97.         if (!isset($this->_xsl[$src])){
  98.             $this->_xsl[$src$params;
  99.         }
  100.     }
  101.  
  102.     protected function _outputXmlHeader({
  103.         // XSL stylesheet
  104.         foreach ($this->_xsl as $src => $params{
  105.             //the extra params we may found in there.
  106.             $more '';
  107.             foreach ($params as $param_name => $param_value{
  108.                 $more .= $param_name.'="'htmlspecialchars($param_value).'" ';
  109.             }
  110.             echo ' <?xml-stylesheet type="text/xsl" href="'$src,'" '$more,' ?>';
  111.         }
  112.     }
  113.  
  114.     protected function _outputOptionals({
  115.         if (is_array($this->_optionals)) {
  116.             foreach ($this->_optionals as $name => $value{
  117.                 echo '<'$name .'>'$value .'</'$name .'>'"\n";
  118.             }
  119.         }
  120.     }
  121.  
  122.  
  123. }

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