[ Index ]
 

Code source de Joomla 1.0.13

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/includes/domit/ -> xml_domit_rss_lite.php (source)

   1  <?php
   2  /**
   3  * DOMIT! RSS Lite is a lightweight version of the DOMIT! Lite RSS parser
   4  * @package domit-rss
   5  * @subpackage domit-rss-lite
   6  * @version 0.51
   7  * @copyright (C) 2004 John Heinstein. All rights reserved
   8  * @license http://www.gnu.org/copyleft/lesser.html LGPL License
   9  * @author John Heinstein <johnkarl@nbnet.nb.ca>
  10  * @link http://www.engageinteractive.com/domitrss/ DOMIT! RSS Home Page
  11  * DOMIT! RSS is Free Software
  12  **/
  13  
  14  if (!defined('DOMIT_RSS_INCLUDE_PATH')) {
  15      define('DOMIT_RSS_INCLUDE_PATH', (dirname(__FILE__) . "/"));
  16  }
  17  
  18  /** current version of DOMIT! RSS Lite */
  19  define ('DOMIT_RSS_LITE_VERSION', '0.51');
  20  
  21  require_once (DOMIT_RSS_INCLUDE_PATH . 'xml_domit_rss_shared.php');
  22  
  23  /**
  24  * The base DOMIT! RSS Lite document class
  25  *
  26  * @package domit-rss
  27  * @subpackage domit-rss-lite
  28  * @author John Heinstein <johnkarl@nbnet.nb.ca>
  29  */
  30  class xml_domit_rss_document_lite extends xml_domit_rss_base_document {
  31      /**
  32      * Constructor
  33      * @param string Path to the rss file
  34      * @param string Directory for cache files
  35      * @param int Expiration time for a cache file
  36      */
  37  	function xml_domit_rss_document_lite($url = '', $cacheDir = './', $cacheTime = 3600) {
  38          $this->parser = 'DOMIT_RSS_LITE';
  39          $this->xml_domit_rss_base_document($url, $cacheDir, $cacheTime);
  40      } //xml_domit_rss_document_lite
  41  
  42       /**
  43      * Performs initialization of the RSS document
  44      */
  45  	function _init() {
  46          $total = $this->node->documentElement->childCount;
  47          $itemCounter = 0;
  48          $channelCounter = 0;
  49  
  50          for ($i = 0; $i < $total; $i++) {
  51              $currNode =& $this->node->documentElement->childNodes[$i];
  52              $tagName = strtolower($currNode->nodeName);
  53  
  54              switch ($tagName) {
  55                  case DOMIT_RSS_ELEMENT_ITEM:
  56                      $this->domit_rss_items[$itemCounter] = new xml_domit_rss_item_lite($currNode);
  57                      $itemCounter++;
  58                      break;
  59                  case DOMIT_RSS_ELEMENT_CHANNEL:
  60                      $this->domit_rss_channels[$channelCounter] = new xml_domit_rss_channel_lite($currNode);
  61                      $channelCounter++;
  62                      break;
  63                  case DOMIT_RSS_ELEMENT_TITLE:
  64                  case DOMIT_RSS_ELEMENT_LINK:
  65                  case DOMIT_RSS_ELEMENT_DESCRIPTION:
  66                      $this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_simpleelement($currNode);
  67                      break;
  68              }
  69          }
  70  
  71          if ($itemCounter != 0) {
  72              $this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_ITEMS] =& $this->domit_rss_items;
  73          }
  74  
  75          if ($channelCounter != 0) {
  76              $this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_CHANNELS] =& $this->domit_rss_channels;
  77          }
  78  
  79          $this->handleChannelElementsEmbedded();
  80      } //_init
  81  
  82      /**
  83      * Returns the current version of DOMIT! RSS
  84      * @return Object The current version of DOMIT! RSS
  85      */
  86  	function getVersion() {
  87          return DOMIT_RSS_LITE_VERSION;
  88      } //getVersion
  89  } //xml_domit_rss_document_lite
  90  
  91  /**
  92  * Represents an RSS channel
  93  *
  94  * @package domit-rss
  95  * @subpackage domit-rss-lite
  96  * @author John Heinstein <johnkarl@nbnet.nb.ca>
  97  */
  98  class xml_domit_rss_channel_lite extends xml_domit_rss_elementindexer {
  99      /** @var array A list of references to channel items */
 100      var $domit_rss_items = array();
 101  
 102      /**
 103      * Constructor
 104      * @param Object A DOM node containing channel data
 105      */
 106  	function xml_domit_rss_channel_lite(&$channel) {
 107          $this->node =& $channel;
 108          $this->_init();
 109      } //xml_domit_rss_channel_lite
 110  
 111      /**
 112      * Performs initialization of the RSS channel element
 113      */
 114  	function _init() {
 115          $total = $this->node->childCount;
 116          $itemCounter = 0;
 117  
 118          for ($i = 0; $i < $total; $i++) {
 119              $currNode =& $this->node->childNodes[$i];
 120              $tagName = strtolower($currNode->nodeName);
 121  
 122              switch ($tagName) {
 123                  case DOMIT_RSS_ELEMENT_ITEM:
 124                      $this->domit_rss_items[$itemCounter] = new xml_domit_rss_item_lite($currNode);
 125                      $itemCounter++;
 126                      break;
 127                  case DOMIT_RSS_ELEMENT_TITLE:
 128                  case DOMIT_RSS_ELEMENT_LINK:
 129                  case DOMIT_RSS_ELEMENT_DESCRIPTION:
 130                      $this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_simpleelement($currNode);
 131                      break;
 132              }
 133          }
 134  
 135          if ($itemCounter != 0) {
 136              $this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_ITEMS] =& $this->domit_rss_items;
 137          }
 138      } //_init
 139  
 140      /**
 141      * Returns the title of the channel
 142      * @return string The title of the channel, or an empty string
 143      */
 144  	function getTitle() {
 145          return $this->getElementText(DOMIT_RSS_ELEMENT_TITLE);
 146      } //getTitle
 147  
 148      /**
 149      * Returns the url of the channel
 150      * @return string The url of the channel, or an empty string
 151      */
 152  	function getLink() {
 153          return $this->getElementText(DOMIT_RSS_ELEMENT_LINK);
 154      } //getLink
 155  
 156      /**
 157      * Returns a description of the channel
 158      * @return string A description of the channel, or an empty string
 159      */
 160  	function getDescription() {
 161          return $this->getElementText(DOMIT_RSS_ELEMENT_DESCRIPTION);
 162      } //getDescription
 163  
 164      /**
 165      * Returns the number of items in the channel
 166      * @return int The number of items in the channel
 167      */
 168  	function getItemCount() {
 169          return count($this->domit_rss_items);
 170      } //getItemCount
 171  
 172      /**
 173      * Returns a reference to the item at the specified index
 174      * @param int The index of the requested item
 175      * @return Object A reference to the item at the specified index
 176      */
 177      function &getItem($index) {
 178          return $this->domit_rss_items[$index];
 179      } //getItem
 180  } //xml_domit_rss_channel_lite
 181  
 182  /**
 183  * Represents an RSS item
 184  *
 185  * @package domit-rss
 186  * @subpackage domit-rss-lite
 187  * @author John Heinstein <johnkarl@nbnet.nb.ca>
 188  */
 189  class xml_domit_rss_item_lite extends xml_domit_rss_elementindexer {
 190      /**
 191      * Constructor
 192      * @param Object A DOM node containing item data
 193      */
 194  	function xml_domit_rss_item_lite(&$item) {
 195          $this->node =& $item;
 196          $this->_init();
 197      } //xml_domit_rss_item_lite
 198  
 199      /**
 200      * Performs initialization of the item element
 201      */
 202  	function _init(){
 203          $total = $this->node->childCount;
 204  
 205          for($i = 0; $i < $total; $i++) {
 206              $currNode =& $this->node->childNodes[$i];
 207              $tagName = strtolower($currNode->nodeName);
 208  
 209              switch ($tagName) {
 210                  case DOMIT_RSS_ELEMENT_TITLE:
 211                  case DOMIT_RSS_ELEMENT_LINK:
 212                  case DOMIT_RSS_ELEMENT_DESCRIPTION:
 213                      $this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_simpleelement($currNode);
 214                      break;
 215              }
 216          }
 217      } //init
 218  
 219      /**
 220      * Returns the title of the item
 221      * @return string The title of the item, or an empty string
 222      */
 223  	function getTitle() {
 224          return $this->getElementText(DOMIT_RSS_ELEMENT_TITLE);
 225      } //getTitle
 226  
 227      /**
 228      * Returns the url of the item
 229      * @return string The url of the item, or an empty string
 230      */
 231  	function getLink() {
 232          return $this->getElementText(DOMIT_RSS_ELEMENT_LINK);
 233      } //getLink
 234  
 235      /**
 236      * Returns a description of the item
 237      * @return string A description of the item, or an empty string
 238      */
 239  	function getDescription() {
 240          return $this->getElementText(DOMIT_RSS_ELEMENT_DESCRIPTION);
 241      } //getDescription
 242  } //xml_domit_rss_item_lite
 243  
 244  ?>


Généré le : Wed Nov 21 14:43:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics