XOOPS  2.6.0
xmlrss2parser.php
Go to the documentation of this file.
1 <?php
2 /*
3  You may not change or alter any portion of this comment or credits
4  of supporting developers from this source code or any supporting source code
5  which is considered copyrighted (c) material of the original comment or credit authors.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 */
11 
23 {
27  private $_tempArr = array();
28 
32  private $_channelData = array();
33 
37  private $_imageData = array();
38 
42  private $_items = array();
43 
44  public function __construct(&$input)
45  {
46  parent::__construct($input);
47  $this->useUtfEncoding();
48  $this->addTagHandler(new RssChannelHandler());
49  $this->addTagHandler(new RssTitleHandler());
50  $this->addTagHandler(new RssLinkHandler());
51  $this->addTagHandler(new RssGeneratorHandler());
53  $this->addTagHandler(new RssCopyrightHandler());
54  $this->addTagHandler(new RssNameHandler());
56  $this->addTagHandler(new RssLanguageHandler());
58  $this->addTagHandler(new RssWebMasterHandler());
59  $this->addTagHandler(new RssImageHandler());
60  $this->addTagHandler(new RssUrlHandler());
61  $this->addTagHandler(new RssWidthHandler());
62  $this->addTagHandler(new RssHeightHandler());
63  $this->addTagHandler(new RssItemHandler());
64  $this->addTagHandler(new RssCategoryHandler());
65  $this->addTagHandler(new RssPubDateHandler());
66  $this->addTagHandler(new RssCommentsHandler());
67  $this->addTagHandler(new RssSourceHandler());
68  $this->addTagHandler(new RssAuthorHandler());
69  $this->addTagHandler(new RssGuidHandler());
70  $this->addTagHandler(new RssTextInputHandler());
71  }
72 
78  public function setChannelData($name, &$value)
79  {
80  if (!isset($this->_channelData[$name])) {
81  $this->_channelData[$name] = $value;
82  } else {
83  $this->_channelData[$name] .= $value;
84  }
85  }
86 
91  public function getChannelData($name = null)
92  {
93  if (isset($name)) {
94  if (isset($this->_channelData[$name])) {
95  return $this->_channelData[$name];
96  }
97  return false;
98  }
99  return $this->_channelData;
100  }
101 
107  public function setImageData($name, &$value)
108  {
109  $this->_imageData[$name] = $value;
110  }
111 
116  public function getImageData($name = null)
117  {
118  if (isset($name)) {
119  if (isset($this->_imageData[$name])) {
120  return $this->_imageData[$name];
121  }
122  $return = false;
123  return $return;
124  }
125  return $this->_imageData;
126  }
127 
132  public function setItems(&$itemarr)
133  {
134  $this->_items[] = $itemarr;
135  }
136 
140  public function getItems()
141  {
142  return $this->_items;
143  }
144 
151  public function setTempArr($name, &$value, $delim = '')
152  {
153  if (!isset($this->_tempArr[$name])) {
154  $this->_tempArr[$name] = $value;
155  } else {
156  $this->_tempArr[$name] .= $delim . $value;
157  }
158  }
159 
163  public function getTempArr()
164  {
165  return $this->_tempArr;
166  }
167 
171  public function resetTempArr()
172  {
173  unset($this->_tempArr);
174  $this->_tempArr = array();
175  }
176 }
177 
179 {
183  public function getName()
184  {
185  return 'channel';
186  }
187 }
188 
190 {
194  public function getName()
195  {
196  return 'title';
197  }
198 
204  public function handleCharacterData(&$parser, &$data)
205  {
206  switch ($parser->getParentTag()) {
207  case 'channel':
208  $parser->setChannelData('title', $data);
209  break;
210  case 'image':
211  $parser->setImageData('title', $data);
212  break;
213  case 'item':
214  case 'textInput':
215  $parser->setTempArr('title', $data);
216  break;
217  default:
218  break;
219  }
220  }
221 }
222 
224 {
228  public function getName()
229  {
230  return 'link';
231  }
232 
238  public function handleCharacterData(&$parser, &$data)
239  {
240  switch ($parser->getParentTag()) {
241  case 'channel':
242  $parser->setChannelData('link', $data);
243  break;
244  case 'image':
245  $parser->setImageData('link', $data);
246  break;
247  case 'item':
248  case 'textInput':
249  $parser->setTempArr('link', $data);
250  break;
251  default:
252  break;
253  }
254  }
255 }
256 
258 {
262  public function getName()
263  {
264  return 'description';
265  }
266 
272  public function handleCharacterData(&$parser, &$data)
273  {
274  switch ($parser->getParentTag()) {
275  case 'channel':
276  $parser->setChannelData('description', $data);
277  break;
278  case 'image':
279  $parser->setImageData('description', $data);
280  break;
281  case 'item':
282  case 'textInput':
283  $parser->setTempArr('description', $data);
284  break;
285  default:
286  break;
287  }
288  }
289 }
290 
292 {
293 
297  public function getName()
298  {
299  return 'generator';
300  }
301 
307  public function handleCharacterData(&$parser, &$data)
308  {
309  switch ($parser->getParentTag()) {
310  case 'channel':
311  $parser->setChannelData('generator', $data);
312  break;
313  default:
314  break;
315  }
316  }
317 }
318 
320 {
324  public function getName()
325  {
326  return 'copyright';
327  }
328 
334  public function handleCharacterData(&$parser, &$data)
335  {
336  switch ($parser->getParentTag()) {
337  case 'channel':
338  $parser->setChannelData('copyright', $data);
339  break;
340  default:
341  break;
342  }
343  }
344 }
345 
347 {
351  public function getName()
352  {
353  return 'name';
354  }
355 
361  public function handleCharacterData(&$parser, &$data)
362  {
363  switch ($parser->getParentTag()) {
364  case 'textInput':
365  $parser->setTempArr('name', $data);
366  break;
367  default:
368  break;
369  }
370  }
371 }
372 
374 {
375 
379  public function getName()
380  {
381  return 'managingEditor';
382  }
383 
389  public function handleCharacterData(&$parser, &$data)
390  {
391  switch ($parser->getParentTag()) {
392  case 'channel':
393  $parser->setChannelData('editor', $data);
394  break;
395  default:
396  break;
397  }
398  }
399 }
400 
402 {
403 
407  public function getName()
408  {
409  return 'language';
410  }
411 
417  public function handleCharacterData(&$parser, &$data)
418  {
419  switch ($parser->getParentTag()) {
420  case 'channel':
421  $parser->setChannelData('language', $data);
422  break;
423  default:
424  break;
425  }
426  }
427 }
428 
430 {
434  public function getName()
435  {
436  return 'webMaster';
437  }
438 
444  public function handleCharacterData(&$parser, &$data)
445  {
446  switch ($parser->getParentTag()) {
447  case 'channel':
448  $parser->setChannelData('webmaster', $data);
449  break;
450  default:
451  break;
452  }
453  }
454 }
455 
457 {
461  public function getName()
462  {
463  return 'docs';
464  }
465 
471  public function handleCharacterData(&$parser, &$data)
472  {
473  switch ($parser->getParentTag()) {
474  case 'channel':
475  $parser->setChannelData('docs', $data);
476  break;
477  default:
478  break;
479  }
480  }
481 }
482 
484 {
488  public function getName()
489  {
490  return 'ttl';
491  }
492 
498  public function handleCharacterData(&$parser, &$data)
499  {
500  switch ($parser->getParentTag()) {
501  case 'channel':
502  $parser->setChannelData('ttl', $data);
503  break;
504  default:
505  break;
506  }
507  }
508 }
509 
511 {
515  public function getName()
516  {
517  return 'textInput';
518  }
519 
525  public function handleBeginElement(&$parser, &$attributes)
526  {
527  $parser->resetTempArr();
528  }
529 
534  public function handleEndElement(&$parser)
535  {
536  $parser->setChannelData('textinput', $parser->getTempArr());
537  }
538 }
539 
541 {
545  public function getName()
546  {
547  return 'lastBuildDate';
548  }
549 
555  public function handleCharacterData(&$parser, &$data)
556  {
557  switch ($parser->getParentTag()) {
558  case 'channel':
559  $parser->setChannelData('lastbuilddate', $data);
560  break;
561  default:
562  break;
563  }
564  }
565 }
566 
568 {
572  public function getName()
573  {
574  return 'image';
575  }
576 }
577 
579 {
583  public function getName()
584  {
585  return 'url';
586  }
587 
593  public function handleCharacterData(&$parser, &$data)
594  {
595  if ($parser->getParentTag() == 'image') {
596  $parser->setImageData('url', $data);
597  }
598  }
599 }
600 
602 {
606  public function getName()
607  {
608  return 'width';
609  }
610 
616  public function handleCharacterData(&$parser, &$data)
617  {
618  if ($parser->getParentTag() == 'image') {
619  $parser->setImageData('width', $data);
620  }
621  }
622 }
623 
625 {
629  public function getName()
630  {
631  return 'height';
632  }
633 
639  public function handleCharacterData(&$parser, &$data)
640  {
641  if ($parser->getParentTag() == 'image') {
642  $parser->setImageData('height', $data);
643  }
644  }
645 }
646 
648 {
652  public function getName()
653  {
654  return 'item';
655  }
656 
662  public function handleBeginElement(&$parser, &$attributes)
663  {
664  $parser->resetTempArr();
665  }
666 
671  public function handleEndElement(&$parser)
672  {
673  $items = $parser->getTempArr();
674  $parser->setItems($items);
675  }
676 }
677 
679 {
683  public function getName()
684  {
685  return 'category';
686  }
687 
693  public function handleCharacterData(&$parser, &$data)
694  {
695  switch ($parser->getParentTag()) {
696  case 'channel':
697  $parser->setChannelData('category', $data);
698  break;
699  case 'item':
700  $parser->setTempArr('category', $data, ', ');
701  break;
702  default:
703  break;
704  }
705  }
706 }
707 
709 {
713  public function getName()
714  {
715  return 'comments';
716  }
717 
723  public function handleCharacterData(&$parser, &$data)
724  {
725  if ($parser->getParentTag() == 'item') {
726  $parser->setTempArr('comments', $data);
727  }
728  }
729 }
730 
732 {
736  public function getName()
737  {
738  return 'pubDate';
739  }
740 
746  public function handleCharacterData(&$parser, &$data)
747  {
748  switch ($parser->getParentTag()) {
749  case 'channel':
750  $parser->setChannelData('pubdate', $data);
751  break;
752  case 'item':
753  $parser->setTempArr('pubdate', $data);
754  break;
755  default:
756  break;
757  }
758  }
759 }
760 
762 {
766  public function getName()
767  {
768  return 'guid';
769  }
770 
776  public function handleCharacterData(&$parser, &$data)
777  {
778  if ($parser->getParentTag() == 'item') {
779  $parser->setTempArr('guid', $data);
780  }
781  }
782 }
783 
785 {
789  public function getName()
790  {
791  return 'author';
792  }
793 
799  public function handleCharacterData(&$parser, &$data)
800  {
801  if ($parser->getParentTag() == 'item') {
802  $parser->setTempArr('author', $data);
803  }
804  }
805 }
806 
808 {
812  public function getName()
813  {
814  return 'source';
815  }
816 
822  public function handleBeginElement(&$parser, &$attributes)
823  {
824  if ($parser->getParentTag() == 'item') {
825  $parser->setTempArr('source_url', $attributes['url']);
826  }
827  }
828 
834  public function handleCharacterData(&$parser, &$data)
835  {
836  if ($parser->getParentTag() == 'item') {
837  $parser->setTempArr('source', $data);
838  }
839  }
840 }
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
addTagHandler(XmlTagHandler &$tagHandler)
Definition: saxparser.php:192
handleCharacterData(&$parser, &$data)
handleEndElement(&$parser)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
setTempArr($name, &$value, $delim= '')
setImageData($name, &$value)
getImageData($name=null)
handleBeginElement(&$parser, &$attributes)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
setChannelData($name, &$value)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleBeginElement(&$parser, &$attributes)
useUtfEncoding()
Definition: saxparser.php:105
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleEndElement(&$parser)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
handleBeginElement(&$parser, &$attributes)
handleCharacterData(&$parser, &$data)
handleCharacterData(&$parser, &$data)
getChannelData($name=null)