| 1: | <?php
|
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: | |
| 10: |
|
| 11: |
|
| 12: | |
| 13: | |
| 14: | |
| 15: | |
| 16: | |
| 17: | |
| 18: |
|
| 19: |
|
| 20: | defined('XOOPS_ROOT_PATH') || exit('XOOPS root path not defined');
|
| 21: | require_once(XOOPS_ROOT_PATH . '/class/xml/saxparser.php');
|
| 22: | require_once(XOOPS_ROOT_PATH . '/class/xml/xmltaghandler.php');
|
| 23: |
|
| 24: | |
| 25: | |
| 26: |
|
| 27: | class XoopsXmlRss2Parser extends SaxParser
|
| 28: | {
|
| 29: | public $_tempArr = array();
|
| 30: | public $_channelData = array();
|
| 31: | public $_imageData = array();
|
| 32: | public $_items = array();
|
| 33: |
|
| 34: | |
| 35: | |
| 36: |
|
| 37: | public function __construct($input)
|
| 38: | {
|
| 39: | parent::__construct($input);
|
| 40: | $this->useUtfEncoding();
|
| 41: | $this->addTagHandler(new RssChannelHandler());
|
| 42: | $this->addTagHandler(new RssTitleHandler());
|
| 43: | $this->addTagHandler(new RssLinkHandler());
|
| 44: | $this->addTagHandler(new RssGeneratorHandler());
|
| 45: | $this->addTagHandler(new RssDescriptionHandler());
|
| 46: | $this->addTagHandler(new RssCopyrightHandler());
|
| 47: | $this->addTagHandler(new RssNameHandler());
|
| 48: | $this->addTagHandler(new RssManagingEditorHandler());
|
| 49: | $this->addTagHandler(new RssLanguageHandler());
|
| 50: | $this->addTagHandler(new RssLastBuildDateHandler());
|
| 51: | $this->addTagHandler(new RssWebMasterHandler());
|
| 52: | $this->addTagHandler(new RssImageHandler());
|
| 53: | $this->addTagHandler(new RssUrlHandler());
|
| 54: | $this->addTagHandler(new RssWidthHandler());
|
| 55: | $this->addTagHandler(new RssHeightHandler());
|
| 56: | $this->addTagHandler(new RssItemHandler());
|
| 57: | $this->addTagHandler(new RssCategoryHandler());
|
| 58: | $this->addTagHandler(new RssPubDateHandler());
|
| 59: | $this->addTagHandler(new RssCommentsHandler());
|
| 60: | $this->addTagHandler(new RssSourceHandler());
|
| 61: | $this->addTagHandler(new RssAuthorHandler());
|
| 62: | $this->addTagHandler(new RssGuidHandler());
|
| 63: | $this->addTagHandler(new RssTextInputHandler());
|
| 64: | }
|
| 65: |
|
| 66: | |
| 67: | |
| 68: | |
| 69: |
|
| 70: | public function setChannelData($name, &$value)
|
| 71: | {
|
| 72: | if (!isset($this->_channelData[$name])) {
|
| 73: | $this->_channelData[$name] =& $value;
|
| 74: | } else {
|
| 75: | $this->_channelData[$name] .= $value;
|
| 76: | }
|
| 77: | }
|
| 78: |
|
| 79: | |
| 80: | |
| 81: | |
| 82: | |
| 83: |
|
| 84: | public function &getChannelData($name = null)
|
| 85: | {
|
| 86: | if (isset($name)) {
|
| 87: | if (isset($this->_channelData[$name])) {
|
| 88: | return $this->_channelData[$name];
|
| 89: | }
|
| 90: |
|
| 91: | return false;
|
| 92: | }
|
| 93: |
|
| 94: | return $this->_channelData;
|
| 95: | }
|
| 96: |
|
| 97: | |
| 98: | |
| 99: | |
| 100: |
|
| 101: | public function setImageData($name, &$value)
|
| 102: | {
|
| 103: | $this->_imageData[$name] =& $value;
|
| 104: | }
|
| 105: |
|
| 106: | |
| 107: | |
| 108: | |
| 109: | |
| 110: |
|
| 111: | public function &getImageData($name = null)
|
| 112: | {
|
| 113: | if (isset($name)) {
|
| 114: | if (isset($this->_imageData[$name])) {
|
| 115: | return $this->_imageData[$name];
|
| 116: | }
|
| 117: | $return = false;
|
| 118: |
|
| 119: | return $return;
|
| 120: | }
|
| 121: |
|
| 122: | return $this->_imageData;
|
| 123: | }
|
| 124: |
|
| 125: | |
| 126: | |
| 127: |
|
| 128: | public function setItems(&$itemarr)
|
| 129: | {
|
| 130: | $this->_items[] =& $itemarr;
|
| 131: | }
|
| 132: |
|
| 133: | |
| 134: | |
| 135: |
|
| 136: | public function &getItems()
|
| 137: | {
|
| 138: | return $this->_items;
|
| 139: | }
|
| 140: |
|
| 141: | |
| 142: | |
| 143: | |
| 144: | |
| 145: |
|
| 146: | public function setTempArr($name, &$value, $delim = '')
|
| 147: | {
|
| 148: | if (!isset($this->_tempArr[$name])) {
|
| 149: | $this->_tempArr[$name] =& $value;
|
| 150: | } else {
|
| 151: | $this->_tempArr[$name] .= $delim . $value;
|
| 152: | }
|
| 153: | }
|
| 154: |
|
| 155: | |
| 156: | |
| 157: |
|
| 158: | public function getTempArr()
|
| 159: | {
|
| 160: | return $this->_tempArr;
|
| 161: | }
|
| 162: |
|
| 163: | public function resetTempArr()
|
| 164: | {
|
| 165: | unset($this->_tempArr);
|
| 166: | $this->_tempArr = array();
|
| 167: | }
|
| 168: | }
|
| 169: |
|
| 170: | |
| 171: | |
| 172: |
|
| 173: | class RssChannelHandler extends XmlTagHandler
|
| 174: | {
|
| 175: | |
| 176: | |
| 177: |
|
| 178: | public function __construct()
|
| 179: | {
|
| 180: | }
|
| 181: |
|
| 182: | |
| 183: | |
| 184: |
|
| 185: | public function getName()
|
| 186: | {
|
| 187: | return 'channel';
|
| 188: | }
|
| 189: | }
|
| 190: |
|
| 191: | |
| 192: | |
| 193: |
|
| 194: | class RssTitleHandler extends XmlTagHandler
|
| 195: | {
|
| 196: | |
| 197: | |
| 198: |
|
| 199: | public function __construct()
|
| 200: | {
|
| 201: | }
|
| 202: |
|
| 203: | |
| 204: | |
| 205: |
|
| 206: | public function getName()
|
| 207: | {
|
| 208: | return 'title';
|
| 209: | }
|
| 210: |
|
| 211: | |
| 212: | |
| 213: | |
| 214: |
|
| 215: | public function handleCharacterData($parser, &$data)
|
| 216: | {
|
| 217: | switch ($parser->getParentTag()) {
|
| 218: | case 'channel':
|
| 219: | $parser->setChannelData('title', $data);
|
| 220: | break;
|
| 221: | case 'image':
|
| 222: | $parser->setImageData('title', $data);
|
| 223: | break;
|
| 224: | case 'item':
|
| 225: | case 'textInput':
|
| 226: | $parser->setTempArr('title', $data);
|
| 227: | break;
|
| 228: | default:
|
| 229: | break;
|
| 230: | }
|
| 231: | }
|
| 232: | }
|
| 233: |
|
| 234: | |
| 235: | |
| 236: |
|
| 237: | class RssLinkHandler extends XmlTagHandler
|
| 238: | {
|
| 239: | |
| 240: | |
| 241: |
|
| 242: | public function __construct()
|
| 243: | {
|
| 244: | }
|
| 245: |
|
| 246: | |
| 247: | |
| 248: |
|
| 249: | public function getName()
|
| 250: | {
|
| 251: | return 'link';
|
| 252: | }
|
| 253: |
|
| 254: | |
| 255: | |
| 256: | |
| 257: |
|
| 258: | public function handleCharacterData($parser, &$data)
|
| 259: | {
|
| 260: | switch ($parser->getParentTag()) {
|
| 261: | case 'channel':
|
| 262: | $parser->setChannelData('link', $data);
|
| 263: | break;
|
| 264: | case 'image':
|
| 265: | $parser->setImageData('link', $data);
|
| 266: | break;
|
| 267: | case 'item':
|
| 268: | case 'textInput':
|
| 269: | $parser->setTempArr('link', $data);
|
| 270: | break;
|
| 271: | default:
|
| 272: | break;
|
| 273: | }
|
| 274: | }
|
| 275: | }
|
| 276: |
|
| 277: | |
| 278: | |
| 279: |
|
| 280: | class RssDescriptionHandler extends XmlTagHandler
|
| 281: | {
|
| 282: | |
| 283: | |
| 284: |
|
| 285: | public function __construct()
|
| 286: | {
|
| 287: | }
|
| 288: |
|
| 289: | |
| 290: | |
| 291: |
|
| 292: | public function getName()
|
| 293: | {
|
| 294: | return 'description';
|
| 295: | }
|
| 296: |
|
| 297: | |
| 298: | |
| 299: | |
| 300: |
|
| 301: | public function handleCharacterData($parser, &$data)
|
| 302: | {
|
| 303: | switch ($parser->getParentTag()) {
|
| 304: | case 'channel':
|
| 305: | $parser->setChannelData('description', $data);
|
| 306: | break;
|
| 307: | case 'image':
|
| 308: | $parser->setImageData('description', $data);
|
| 309: | break;
|
| 310: | case 'item':
|
| 311: | case 'textInput':
|
| 312: | $parser->setTempArr('description', $data);
|
| 313: | break;
|
| 314: | default:
|
| 315: | break;
|
| 316: | }
|
| 317: | }
|
| 318: | }
|
| 319: |
|
| 320: | |
| 321: | |
| 322: |
|
| 323: | class RssGeneratorHandler extends XmlTagHandler
|
| 324: | {
|
| 325: | |
| 326: | |
| 327: |
|
| 328: | public function __construct()
|
| 329: | {
|
| 330: | }
|
| 331: |
|
| 332: | |
| 333: | |
| 334: |
|
| 335: | public function getName()
|
| 336: | {
|
| 337: | return 'generator';
|
| 338: | }
|
| 339: |
|
| 340: | |
| 341: | |
| 342: | |
| 343: |
|
| 344: | public function handleCharacterData($parser, &$data)
|
| 345: | {
|
| 346: | switch ($parser->getParentTag()) {
|
| 347: | case 'channel':
|
| 348: | $parser->setChannelData('generator', $data);
|
| 349: | break;
|
| 350: | default:
|
| 351: | break;
|
| 352: | }
|
| 353: | }
|
| 354: | }
|
| 355: |
|
| 356: | |
| 357: | |
| 358: |
|
| 359: | class RssCopyrightHandler extends XmlTagHandler
|
| 360: | {
|
| 361: | |
| 362: | |
| 363: |
|
| 364: | public function __construct()
|
| 365: | {
|
| 366: | }
|
| 367: |
|
| 368: | |
| 369: | |
| 370: |
|
| 371: | public function getName()
|
| 372: | {
|
| 373: | return 'copyright';
|
| 374: | }
|
| 375: |
|
| 376: | |
| 377: | |
| 378: | |
| 379: |
|
| 380: | public function handleCharacterData($parser, &$data)
|
| 381: | {
|
| 382: | switch ($parser->getParentTag()) {
|
| 383: | case 'channel':
|
| 384: | $parser->setChannelData('copyright', $data);
|
| 385: | break;
|
| 386: | default:
|
| 387: | break;
|
| 388: | }
|
| 389: | }
|
| 390: | }
|
| 391: |
|
| 392: | |
| 393: | |
| 394: |
|
| 395: | class RssNameHandler extends XmlTagHandler
|
| 396: | {
|
| 397: | |
| 398: | |
| 399: |
|
| 400: | public function __construct()
|
| 401: | {
|
| 402: | }
|
| 403: |
|
| 404: | |
| 405: | |
| 406: |
|
| 407: | public function getName()
|
| 408: | {
|
| 409: | return 'name';
|
| 410: | }
|
| 411: |
|
| 412: | |
| 413: | |
| 414: | |
| 415: |
|
| 416: | public function handleCharacterData($parser, &$data)
|
| 417: | {
|
| 418: | switch ($parser->getParentTag()) {
|
| 419: | case 'textInput':
|
| 420: | $parser->setTempArr('name', $data);
|
| 421: | break;
|
| 422: | default:
|
| 423: | break;
|
| 424: | }
|
| 425: | }
|
| 426: | }
|
| 427: |
|
| 428: | |
| 429: | |
| 430: |
|
| 431: | class RssManagingEditorHandler extends XmlTagHandler
|
| 432: | {
|
| 433: | |
| 434: | |
| 435: |
|
| 436: | public function __construct()
|
| 437: | {
|
| 438: | }
|
| 439: |
|
| 440: | |
| 441: | |
| 442: |
|
| 443: | public function getName()
|
| 444: | {
|
| 445: | return 'managingEditor';
|
| 446: | }
|
| 447: |
|
| 448: | |
| 449: | |
| 450: | |
| 451: |
|
| 452: | public function handleCharacterData($parser, &$data)
|
| 453: | {
|
| 454: | switch ($parser->getParentTag()) {
|
| 455: | case 'channel':
|
| 456: | $parser->setChannelData('editor', $data);
|
| 457: | break;
|
| 458: | default:
|
| 459: | break;
|
| 460: | }
|
| 461: | }
|
| 462: | }
|
| 463: |
|
| 464: | |
| 465: | |
| 466: |
|
| 467: | class RssLanguageHandler extends XmlTagHandler
|
| 468: | {
|
| 469: | |
| 470: | |
| 471: |
|
| 472: | public function __construct()
|
| 473: | {
|
| 474: | }
|
| 475: |
|
| 476: | |
| 477: | |
| 478: |
|
| 479: | public function getName()
|
| 480: | {
|
| 481: | return 'language';
|
| 482: | }
|
| 483: |
|
| 484: | |
| 485: | |
| 486: | |
| 487: |
|
| 488: | public function handleCharacterData($parser, &$data)
|
| 489: | {
|
| 490: | switch ($parser->getParentTag()) {
|
| 491: | case 'channel':
|
| 492: | $parser->setChannelData('language', $data);
|
| 493: | break;
|
| 494: | default:
|
| 495: | break;
|
| 496: | }
|
| 497: | }
|
| 498: | }
|
| 499: |
|
| 500: | |
| 501: | |
| 502: |
|
| 503: | class RssWebMasterHandler extends XmlTagHandler
|
| 504: | {
|
| 505: | |
| 506: | |
| 507: |
|
| 508: | public function __construct()
|
| 509: | {
|
| 510: | }
|
| 511: |
|
| 512: | |
| 513: | |
| 514: |
|
| 515: | public function getName()
|
| 516: | {
|
| 517: | return 'webMaster';
|
| 518: | }
|
| 519: |
|
| 520: | |
| 521: | |
| 522: | |
| 523: |
|
| 524: | public function handleCharacterData($parser, &$data)
|
| 525: | {
|
| 526: | switch ($parser->getParentTag()) {
|
| 527: | case 'channel':
|
| 528: | $parser->setChannelData('webmaster', $data);
|
| 529: | break;
|
| 530: | default:
|
| 531: | break;
|
| 532: | }
|
| 533: | }
|
| 534: | }
|
| 535: |
|
| 536: | |
| 537: | |
| 538: |
|
| 539: | class RssDocsHandler extends XmlTagHandler
|
| 540: | {
|
| 541: | |
| 542: | |
| 543: |
|
| 544: | public function __construct()
|
| 545: | {
|
| 546: | }
|
| 547: |
|
| 548: | |
| 549: | |
| 550: |
|
| 551: | public function getName()
|
| 552: | {
|
| 553: | return 'docs';
|
| 554: | }
|
| 555: |
|
| 556: | |
| 557: | |
| 558: | |
| 559: |
|
| 560: | public function handleCharacterData($parser, &$data)
|
| 561: | {
|
| 562: | switch ($parser->getParentTag()) {
|
| 563: | case 'channel':
|
| 564: | $parser->setChannelData('docs', $data);
|
| 565: | break;
|
| 566: | default:
|
| 567: | break;
|
| 568: | }
|
| 569: | }
|
| 570: | }
|
| 571: |
|
| 572: | |
| 573: | |
| 574: |
|
| 575: | class RssTtlHandler extends XmlTagHandler
|
| 576: | {
|
| 577: | |
| 578: | |
| 579: |
|
| 580: | public function __construct()
|
| 581: | {
|
| 582: | }
|
| 583: |
|
| 584: | |
| 585: | |
| 586: |
|
| 587: | public function getName()
|
| 588: | {
|
| 589: | return 'ttl';
|
| 590: | }
|
| 591: |
|
| 592: | |
| 593: | |
| 594: | |
| 595: |
|
| 596: | public function handleCharacterData($parser, &$data)
|
| 597: | {
|
| 598: | switch ($parser->getParentTag()) {
|
| 599: | case 'channel':
|
| 600: | $parser->setChannelData('ttl', $data);
|
| 601: | break;
|
| 602: | default:
|
| 603: | break;
|
| 604: | }
|
| 605: | }
|
| 606: | }
|
| 607: |
|
| 608: | |
| 609: | |
| 610: |
|
| 611: | class RssTextInputHandler extends XmlTagHandler
|
| 612: | {
|
| 613: | public function RssWebMasterHandler()
|
| 614: | {
|
| 615: | }
|
| 616: |
|
| 617: | |
| 618: | |
| 619: |
|
| 620: | public function getName()
|
| 621: | {
|
| 622: | return 'textInput';
|
| 623: | }
|
| 624: |
|
| 625: | |
| 626: | |
| 627: | |
| 628: |
|
| 629: | public function handleBeginElement($parser, &$attributes)
|
| 630: | {
|
| 631: | $parser->resetTempArr();
|
| 632: | }
|
| 633: |
|
| 634: | |
| 635: | |
| 636: |
|
| 637: | public function handleEndElement($parser)
|
| 638: | {
|
| 639: | $parser->setChannelData('textinput', $parser->getTempArr());
|
| 640: | }
|
| 641: | }
|
| 642: |
|
| 643: | |
| 644: | |
| 645: |
|
| 646: | class RssLastBuildDateHandler extends XmlTagHandler
|
| 647: | {
|
| 648: | |
| 649: | |
| 650: |
|
| 651: | public function __construct()
|
| 652: | {
|
| 653: | }
|
| 654: |
|
| 655: | |
| 656: | |
| 657: |
|
| 658: | public function getName()
|
| 659: | {
|
| 660: | return 'lastBuildDate';
|
| 661: | }
|
| 662: |
|
| 663: | |
| 664: | |
| 665: | |
| 666: |
|
| 667: | public function handleCharacterData($parser, &$data)
|
| 668: | {
|
| 669: | switch ($parser->getParentTag()) {
|
| 670: | case 'channel':
|
| 671: | $parser->setChannelData('lastbuilddate', $data);
|
| 672: | break;
|
| 673: | default:
|
| 674: | break;
|
| 675: | }
|
| 676: | }
|
| 677: | }
|
| 678: |
|
| 679: | |
| 680: | |
| 681: |
|
| 682: | class RssImageHandler extends XmlTagHandler
|
| 683: | {
|
| 684: | |
| 685: | |
| 686: |
|
| 687: | public function __construct()
|
| 688: | {
|
| 689: | }
|
| 690: |
|
| 691: | |
| 692: | |
| 693: |
|
| 694: | public function getName()
|
| 695: | {
|
| 696: | return 'image';
|
| 697: | }
|
| 698: | }
|
| 699: |
|
| 700: | |
| 701: | |
| 702: |
|
| 703: | class RssUrlHandler extends XmlTagHandler
|
| 704: | {
|
| 705: | |
| 706: | |
| 707: |
|
| 708: | public function __construct()
|
| 709: | {
|
| 710: | }
|
| 711: |
|
| 712: | |
| 713: | |
| 714: |
|
| 715: | public function getName()
|
| 716: | {
|
| 717: | return 'url';
|
| 718: | }
|
| 719: |
|
| 720: | |
| 721: | |
| 722: | |
| 723: |
|
| 724: | public function handleCharacterData($parser, &$data)
|
| 725: | {
|
| 726: | if ($parser->getParentTag() === 'image') {
|
| 727: | $parser->setImageData('url', $data);
|
| 728: | }
|
| 729: | }
|
| 730: | }
|
| 731: |
|
| 732: | |
| 733: | |
| 734: |
|
| 735: | class RssWidthHandler extends XmlTagHandler
|
| 736: | {
|
| 737: | |
| 738: | |
| 739: |
|
| 740: | public function __construct()
|
| 741: | {
|
| 742: | }
|
| 743: |
|
| 744: | |
| 745: | |
| 746: |
|
| 747: | public function getName()
|
| 748: | {
|
| 749: | return 'width';
|
| 750: | }
|
| 751: |
|
| 752: | |
| 753: | |
| 754: | |
| 755: |
|
| 756: | public function handleCharacterData($parser, &$data)
|
| 757: | {
|
| 758: | if ($parser->getParentTag() === 'image') {
|
| 759: | $parser->setImageData('width', $data);
|
| 760: | }
|
| 761: | }
|
| 762: | }
|
| 763: |
|
| 764: | |
| 765: | |
| 766: |
|
| 767: | class RssHeightHandler extends XmlTagHandler
|
| 768: | {
|
| 769: | |
| 770: | |
| 771: |
|
| 772: | public function __construct()
|
| 773: | {
|
| 774: | }
|
| 775: |
|
| 776: | |
| 777: | |
| 778: |
|
| 779: | public function getName()
|
| 780: | {
|
| 781: | return 'height';
|
| 782: | }
|
| 783: |
|
| 784: | |
| 785: | |
| 786: | |
| 787: |
|
| 788: | public function handleCharacterData($parser, &$data)
|
| 789: | {
|
| 790: | if ($parser->getParentTag() === 'image') {
|
| 791: | $parser->setImageData('height', $data);
|
| 792: | }
|
| 793: | }
|
| 794: | }
|
| 795: |
|
| 796: | |
| 797: | |
| 798: |
|
| 799: | class RssItemHandler extends XmlTagHandler
|
| 800: | {
|
| 801: | |
| 802: | |
| 803: |
|
| 804: | public function __construct()
|
| 805: | {
|
| 806: | }
|
| 807: |
|
| 808: | |
| 809: | |
| 810: |
|
| 811: | public function getName()
|
| 812: | {
|
| 813: | return 'item';
|
| 814: | }
|
| 815: |
|
| 816: | |
| 817: | |
| 818: | |
| 819: |
|
| 820: | public function handleBeginElement($parser, &$attributes)
|
| 821: | {
|
| 822: | $parser->resetTempArr();
|
| 823: | }
|
| 824: |
|
| 825: | |
| 826: | |
| 827: |
|
| 828: | public function handleEndElement($parser)
|
| 829: | {
|
| 830: | $items = $parser->getTempArr();
|
| 831: | $parser->setItems($items);
|
| 832: | }
|
| 833: | }
|
| 834: |
|
| 835: | |
| 836: | |
| 837: |
|
| 838: | class RssCategoryHandler extends XmlTagHandler
|
| 839: | {
|
| 840: | |
| 841: | |
| 842: |
|
| 843: | public function __construct()
|
| 844: | {
|
| 845: | }
|
| 846: |
|
| 847: | |
| 848: | |
| 849: |
|
| 850: | public function getName()
|
| 851: | {
|
| 852: | return 'category';
|
| 853: | }
|
| 854: |
|
| 855: | |
| 856: | |
| 857: | |
| 858: |
|
| 859: | public function handleCharacterData($parser, &$data)
|
| 860: | {
|
| 861: | switch ($parser->getParentTag()) {
|
| 862: | case 'channel':
|
| 863: | $parser->setChannelData('category', $data);
|
| 864: | break;
|
| 865: | case 'item':
|
| 866: | $parser->setTempArr('category', $data, ', ');
|
| 867: | break;
|
| 868: | default:
|
| 869: | break;
|
| 870: | }
|
| 871: | }
|
| 872: | }
|
| 873: |
|
| 874: | |
| 875: | |
| 876: |
|
| 877: | class RssCommentsHandler extends XmlTagHandler
|
| 878: | {
|
| 879: | |
| 880: | |
| 881: |
|
| 882: | public function __construct()
|
| 883: | {
|
| 884: | }
|
| 885: |
|
| 886: | |
| 887: | |
| 888: |
|
| 889: | public function getName()
|
| 890: | {
|
| 891: | return 'comments';
|
| 892: | }
|
| 893: |
|
| 894: | |
| 895: | |
| 896: | |
| 897: |
|
| 898: | public function handleCharacterData($parser, &$data)
|
| 899: | {
|
| 900: | if ($parser->getParentTag() === 'item') {
|
| 901: | $parser->setTempArr('comments', $data);
|
| 902: | }
|
| 903: | }
|
| 904: | }
|
| 905: |
|
| 906: | |
| 907: | |
| 908: |
|
| 909: | class RssPubDateHandler extends XmlTagHandler
|
| 910: | {
|
| 911: | |
| 912: | |
| 913: |
|
| 914: | public function __construct()
|
| 915: | {
|
| 916: | }
|
| 917: |
|
| 918: | |
| 919: | |
| 920: |
|
| 921: | public function getName()
|
| 922: | {
|
| 923: | return 'pubDate';
|
| 924: | }
|
| 925: |
|
| 926: | |
| 927: | |
| 928: | |
| 929: |
|
| 930: | public function handleCharacterData($parser, &$data)
|
| 931: | {
|
| 932: | switch ($parser->getParentTag()) {
|
| 933: | case 'channel':
|
| 934: | $parser->setChannelData('pubdate', $data);
|
| 935: | break;
|
| 936: | case 'item':
|
| 937: | $parser->setTempArr('pubdate', $data);
|
| 938: | break;
|
| 939: | default:
|
| 940: | break;
|
| 941: | }
|
| 942: | }
|
| 943: | }
|
| 944: |
|
| 945: | |
| 946: | |
| 947: |
|
| 948: | class RssGuidHandler extends XmlTagHandler
|
| 949: | {
|
| 950: | |
| 951: | |
| 952: |
|
| 953: | public function __construct()
|
| 954: | {
|
| 955: | }
|
| 956: |
|
| 957: | |
| 958: | |
| 959: |
|
| 960: | public function getName()
|
| 961: | {
|
| 962: | return 'guid';
|
| 963: | }
|
| 964: |
|
| 965: | |
| 966: | |
| 967: | |
| 968: |
|
| 969: | public function handleCharacterData($parser, &$data)
|
| 970: | {
|
| 971: | if ($parser->getParentTag() === 'item') {
|
| 972: | $parser->setTempArr('guid', $data);
|
| 973: | }
|
| 974: | }
|
| 975: | }
|
| 976: |
|
| 977: | |
| 978: | |
| 979: |
|
| 980: | class RssAuthorHandler extends XmlTagHandler
|
| 981: | {
|
| 982: | public function RssGuidHandler()
|
| 983: | {
|
| 984: | }
|
| 985: |
|
| 986: | |
| 987: | |
| 988: |
|
| 989: | public function getName()
|
| 990: | {
|
| 991: | return 'author';
|
| 992: | }
|
| 993: |
|
| 994: | |
| 995: | |
| 996: | |
| 997: |
|
| 998: | public function handleCharacterData($parser, &$data)
|
| 999: | {
|
| 1000: | if ($parser->getParentTag() === 'item') {
|
| 1001: | $parser->setTempArr('author', $data);
|
| 1002: | }
|
| 1003: | }
|
| 1004: | }
|
| 1005: |
|
| 1006: | |
| 1007: | |
| 1008: |
|
| 1009: | class RssSourceHandler extends XmlTagHandler
|
| 1010: | {
|
| 1011: | |
| 1012: | |
| 1013: |
|
| 1014: | public function __construct()
|
| 1015: | {
|
| 1016: | }
|
| 1017: |
|
| 1018: | |
| 1019: | |
| 1020: |
|
| 1021: | public function getName()
|
| 1022: | {
|
| 1023: | return 'source';
|
| 1024: | }
|
| 1025: |
|
| 1026: | |
| 1027: | |
| 1028: | |
| 1029: |
|
| 1030: | public function handleBeginElement($parser, &$attributes)
|
| 1031: | {
|
| 1032: | if ($parser->getParentTag() === 'item') {
|
| 1033: | $parser->setTempArr('source_url', $attributes['url']);
|
| 1034: | }
|
| 1035: | }
|
| 1036: |
|
| 1037: | |
| 1038: | |
| 1039: | |
| 1040: |
|
| 1041: | public function handleCharacterData($parser, &$data)
|
| 1042: | {
|
| 1043: | if ($parser->getParentTag() === 'item') {
|
| 1044: | $parser->setTempArr('source', $data);
|
| 1045: | }
|
| 1046: | }
|
| 1047: | }
|
| 1048: | |