[ Index ] |
|
Code source de Joomla 1.0.13 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 14:43:32 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |