Server : Apache System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/saimikebio.com/mobile/include/ |
<?php /** * ECSHOP RSS 类 * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。 * 网站地址: http://www.ecshop.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * $Author: liubo $ * $Id: cls_rss.php 17217 2011-01-19 06:29:08Z liubo $ */ if (!defined('IN_ECTOUCH')) { die('Hacking attempt'); } /*-----------------------------------------------------------------------*/ // @package RSSBuilder // @category FLP /*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ // Abstract class for getting ini preferences //------------------------------------------------- // Tested with WAMP (XP-SP1/1.3.24/4.0.12/4.3.0) // Last change: 2003-05-30 //------------------------------------------------- // @desc Abstract class for the RSS classes // @access protected // @author Michael Wimmer <flaimo@gmx.net> // @copyright Michael Wimmer // @link http://www.flaimo.com/ // @global array $GLOBALS['_TICKER_ini_settings'] // @abstract // @package RSSBuilder // @category FLP // @version 1.001 /*-----------------------------------------------------------------------*/ class RSSBase { /*-----------------------*/ /* C O N S T R U C T O R */ /*-----------------------*/ //------------------------------------------------- // Constructor //------------------------------------------------- // @desc Constructor // @return (void) // @access private //------------------------------------------------- function RSSBase() { } // end constructor } // end class RSSBase //--------------------------------------------------------------------------- /*-----------------------------------------------------------------------*/ // Class for creating a RSS file //------------------------------------------------- // Tested with WAMP (XP-SP1/1.3.24/4.0.12/4.3.0) // Last change: 2003-05-30 //------------------------------------------------- // @desc Class for creating a RSS file // @access public // @author Michael Wimmer <flaimo@gmx.net> // @copyright Michael Wimmer // @link http://www.flaimo.com/ // @example rss_sample_script.php Sample script // @package RSSBuilder // @category FLP // @version 1.001 /*-----------------------------------------------------------------------*/ class RSSBuilder extends RSSBase { /*-----------------------------------------------------------------------*/ /* V A R I A B L E S /*-----------------------------------------------------------------------*/ //------------------------------------------------- // encoding of the XML file //------------------------------------------------- // @desc encoding of the XML file // @var string // @access private //------------------------------------------------- var $encoding; //------------------------------------------------- // URL where the RSS document will be made available //------------------------------------------------- // @desc URL where the RSS document will be made available // @var string // @access private //------------------------------------------------- var $about; //------------------------------------------------- // title of the rss stream //------------------------------------------------- // @desc title of the rss stream // @var string // @access private //------------------------------------------------- var $title; //------------------------------------------------- // description of the rss stream //------------------------------------------------- // @desc description of the rss stream // @var string // @access private //------------------------------------------------- var $description; //------------------------------------------------- // publisher of the rss stream (person, an organization, or a service) //------------------------------------------------- // @desc publisher of the rss stream // @var string // @access private //------------------------------------------------- var $publisher; //------------------------------------------------- // creator of the rss stream (person, an organization, or a service) //------------------------------------------------- // @desc creator of the rss stream // @var string // @access private //------------------------------------------------- var $creator; //------------------------------------------------- // creation date of the file (format: 2003-05-29T00:03:07+0200) //------------------------------------------------- // @desc creation date of the file (format: 2003-05-29T00:03:07+0200) // @var string // @access private //------------------------------------------------- var $date; //------------------------------------------------- // iso format language //------------------------------------------------- // @desc iso format language // @var string // @access private //------------------------------------------------- var $language; //------------------------------------------------- // copyrights for the rss stream //------------------------------------------------- // @desc copyrights for the rss stream // @var string // @access private //------------------------------------------------- var $rights; //------------------------------------------------- // URL to an small image //------------------------------------------------- // @desc URL to an small image // @var string // @access private //------------------------------------------------- var $image_link; //------------------------------------------------- // spatial location (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity) //------------------------------------------------- // @desc spatial location (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity) // @var string // @access private //------------------------------------------------- var $coverage; //------------------------------------------------- // person, an organization, or a service //------------------------------------------------- // @desc person, an organization, or a service // @var string // @access private //------------------------------------------------- var $contributor; //------------------------------------------------- // 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' //------------------------------------------------- // @desc 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' // @var string // @access private //------------------------------------------------- var $period; //------------------------------------------------- // every X hours/days/weeks/... //------------------------------------------------- // @desc every X hours/days/weeks/... // @var int // @access private //------------------------------------------------- var $frequency; //------------------------------------------------- // date (format: 2003-05-29T00:03:07+0200) //------------------------------------------------- // Defines a base date to be used in concert with updatePeriod and // updateFrequency to calculate the publishing schedule. //------------------------------------------------- // @desc base date to calculate from (format: 2003-05-29T00:03:07+0200) // @var string // @access private //------------------------------------------------- var $base; //------------------------------------------------- // category (rss 2.0) //------------------------------------------------- // @desc category (rss 2.0) // @var string // @access private // @since 1.001 - 2003/05/30 //------------------------------------------------- var $category; //------------------------------------------------- // caching time in minutes (rss 2.0) //------------------------------------------------- // @desc caching time in minutes (rss 2.0) // @var int // @access private // @since 1.001 - 2003/05/30 //------------------------------------------------- var $cache; //------------------------------------------------- // array wich all the rss items //------------------------------------------------- // @desc array wich all the rss items // @var array // @access private //------------------------------------------------- var $items = array(); //------------------------------------------------- // compiled outputstring //------------------------------------------------- // @desc compiled outputstring // @var string // @access private //------------------------------------------------- var $output; //------------------------------------------------- // use DC data //------------------------------------------------- // @desc use DC data // @var boolean // @access private //------------------------------------------------- var $use_dc_data = false; //------------------------------------------------- // use SY data //------------------------------------------------- // @desc use SY data // @var boolean // @access private //------------------------------------------------- var $use_sy_data = false; /*-----------------------*/ /* C O N S T R U C T O R */ /*-----------------------*/ //------------------------------------------------- // Constructor //------------------------------------------------- // @desc Constructor // @param (string) $encoding encoding of the xml file // @param (string) $about URL where the RSS document will be made available // @param (string) $title // @param (string) $description // @param (string) $image_link URL // @return (void) // @uses setEncoding(), setAbout(), setTitle(), setDescription(), setImageLink(), setCategory(), setCache() // @access private //------------------------------------------------- function RSSBuilder($encoding = '', $about = '', $title = '', $description = '', $image_link = '', $category = '', $cache = '') { $this->setEncoding($encoding); $this->setAbout($about); $this->setTitle($title); $this->setDescription($description); $this->setImageLink($image_link); $this->setCategory($category); $this->setCache($cache); } // end constructor /*-----------------------------------------------------------------------*/ /* F U N C T I O N S */ /*-----------------------------------------------------------------------*/ //------------------------------------------------- // add additional DC data //------------------------------------------------- // @desc add additional DC data // @param (string) $publisher person, an organization, or a service // @param (string) $creator person, an organization, or a service // @param (string) $date format: 2003-05-29T00:03:07+0200 // @param (string) $language iso-format // @param (string) $rights copyright information // @param (string) $coverage spatial location (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity) // @param (string) $contributor person, an organization, or a service // @return (void) // @uses setPublisher(), setCreator(), setDate(), setLanguage(), setRights(), setCoverage(), setContributor() // @access public //------------------------------------------------- function addDCdata($publisher = '', $creator = '', $date = '', $language = '', $rights = '', $coverage = '', $contributor = '') { $this->setPublisher($publisher); $this->setCreator($creator); $this->setDate($date); $this->setLanguage($language); $this->setRights($rights); $this->setCoverage($coverage); $this->setContributor($contributor); $this->use_dc_data = (boolean) true; } // end function //------------------------------------------------- // add additional SY data //------------------------------------------------- // @desc add additional DC data // @param (string) $period 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' // @param (int) $frequency every x hours/days/weeks/... // @param (string) $base format: 2003-05-29T00:03:07+0200 // @return (void) // @uses setPeriod(), setFrequency(), setBase() // @access public //------------------------------------------------- function addSYdata($period = '', $frequency = '', $base = '') { $this->setPeriod($period); $this->setFrequency($frequency); $this->setBase($base); $this->use_sy_data = (boolean) true; } // end function //------------------------------------------------- // Checks if a given string is a valid iso-language-code //------------------------------------------------- // @desc Checks if a given string is a valid iso-language-code // @param (string) $code String that should validated // @return (boolean) $isvalid If string is valid or not // @access public // @static //------------------------------------------------- function isValidLanguageCode($code = '') { return (boolean) ((preg_match('(^([a-zA-Z]{2})$)',$code) > 0) ? true : false); } // end function //------------------------------------------------- // Sets $encoding variable //------------------------------------------------- // @desc Sets $encoding variable // @param (string) $encoding encoding of the xml file // @return (void) // @access private // @see $encoding //------------------------------------------------- function setEncoding($encoding = '') { if (!isset($this->encoding)) { $this->encoding = (string) ((strlen(trim($encoding)) > 0) ? trim($encoding) : 'UTF-8'); } // end if } // end function //------------------------------------------------- // Sets $about variable //------------------------------------------------- // @desc Sets $about variable // @param (string) $about // @return (void) // @access private // @see $about //------------------------------------------------- function setAbout($about = '') { if (!isset($this->about) && strlen(trim($about)) > 0) { $this->about = (string) trim($about); } // end if } // end function //------------------------------------------------- // Sets $title variable //------------------------------------------------- // @desc Sets $title variable // @param (string) $title // @return (void) // @access private // @see $title //------------------------------------------------- function setTitle($title = '') { if (!isset($this->title) && strlen(trim($title)) > 0) { $this->title = (string) trim($title); } // end if } // end function //------------------------------------------------- // Sets $description variable //------------------------------------------------- // @desc Sets $description variable // @param (string) $description // @return (void) // @access private // @see $description //------------------------------------------------- function setDescription($description = '') { if (!isset($this->description) && strlen(trim($description)) > 0) { $this->description = (string) trim($description); } // end if } // end function //------------------------------------------------- // Sets $publisher variable //------------------------------------------------- // @desc Sets $publisher variable // @param (string) $publisher // @return (void) // @access private // @see $publisher //------------------------------------------------- function setPublisher($publisher = '') { if (!isset($this->publisher) && strlen(trim($publisher)) > 0) { $this->publisher = (string) trim($publisher); } // end if } // end function //------------------------------------------------- // Sets $creator variable //------------------------------------------------- // @desc Sets $creator variable // @param (string) $creator // @return (void) // @access private // @see $creator //------------------------------------------------- function setCreator($creator = '') { if (!isset($this->creator) && strlen(trim($creator)) > 0) { $this->creator = (string) trim($creator); } // end if } // end function //------------------------------------------------- // Sets $date variable //------------------------------------------------- // @desc Sets $date variable // @param (string) $date format: 2003-05-29T00:03:07+0200 // @return (void) // @access private // @see $date //------------------------------------------------- function setDate($date = '') { if (!isset($this->date) && strlen(trim($date)) > 0) { $this->date = (string) trim($date); } // end if } // end function //------------------------------------------------- // Sets $language variable //------------------------------------------------- // @desc Sets $language variable // @param (string) $language // @return (void) // @access private // @see $language // @uses isValidLanguageCode() //------------------------------------------------- function setLanguage($language = '') { if (!isset($this->language) && $this->isValidLanguageCode($language) === true) { $this->language = (string) trim($language); } // end if } // end function //------------------------------------------------- // Sets $rights variable //------------------------------------------------- // @desc Sets $rights variable // @param (string) $rights // @return (void) // @access private // @see $rights //------------------------------------------------- function setRights($rights = '') { if (!isset($this->rights) && strlen(trim($rights)) > 0) { $this->rights = (string) trim($rights); } // end if } // end function //------------------------------------------------- // Sets $coverage variable //------------------------------------------------- // @desc Sets $coverage variable // @param (string) $coverage // @return (void) // @access private // @see $coverage //------------------------------------------------- function setCoverage($coverage = '') { if (!isset($this->coverage) && strlen(trim($coverage)) > 0) { $this->coverage = (string) trim($coverage); } // end if } // end function //------------------------------------------------- // Sets $contributor variable //------------------------------------------------- // @desc Sets $contributor variable // @param (string) $contributor // @return (void) // @access private // @see $contributor //------------------------------------------------- function setContributor($contributor = '') { if (!isset($this->contributor) && strlen(trim($contributor)) > 0) { $this->contributor = (string) trim($contributor); } // end if } // end function //------------------------------------------------- // Sets $image_link variable //------------------------------------------------- // @desc Sets $image_link variable // @param (string) $image_link // @return (void) // @access private // @see $image_link //------------------------------------------------- function setImageLink($image_link = '') { if (!isset($this->image_link) && strlen(trim($image_link)) > 0) { $this->image_link = (string) trim($image_link); } // end if } // end function //------------------------------------------------- // Sets $period variable //------------------------------------------------- // @desc Sets $period variable // @param (string) $period 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' // @return (void) // @access private // @see $period //------------------------------------------------- function setPeriod($period = '') { if (!isset($this->period) && strlen(trim($period)) > 0) { switch ($period) { case 'hourly': case 'daily': case 'weekly': case 'monthly': case 'yearly': $this->period = (string) trim($period); break; default: $this->period = (string) ''; break; } // end switch } // end if } // end function //------------------------------------------------- // Sets $frequency variable //------------------------------------------------- // @desc Sets $frequency variable // @param (int) $frequency // @return (void) // @access private // @see $frequency //------------------------------------------------- function setFrequency($frequency = '') { if (!isset($this->frequency) && strlen(trim($frequency)) > 0) { $this->frequency = (int) $frequency; } // end if } // end function //------------------------------------------------- // Sets $base variable //------------------------------------------------- // @desc Sets $base variable // @param (string) $base // @return (void) // @access private // @see $base //------------------------------------------------- function setBase($base = '') { if (!isset($this->base) && strlen(trim($base)) > 0) { $this->base = (string) trim($base); } // end if } // end function //------------------------------------------------- // Sets $category variable //------------------------------------------------- // @desc Sets $category variable // @param (string) $category // @return (void) // @access private // @see $category // @since 1.001 - 2003/05/30 //------------------------------------------------- function setCategory($category = '') { if (strlen(trim($category)) > 0) { $this->category = (string) trim($category); } // end if } // end function //------------------------------------------------- // Sets $cache variable //------------------------------------------------- // @desc Sets $cache variable // @param (int) $cache // @return (void) // @access private // @see $cache // @since 1.001 - 2003/05/30 //------------------------------------------------- function setCache($cache = '') { if (strlen(trim($cache)) > 0) { $this->cache = (int) $cache; } // end if } // end function //------------------------------------------------- // Returns $encoding variable //------------------------------------------------- // @desc Returns $encoding variable // @return (string) $encoding // @access public // @see $image_link //------------------------------------------------- function getEncoding() { return (string) $this->encoding; } // end function //------------------------------------------------- // Returns $about variable //------------------------------------------------- // @desc Returns $about variable // @return (string) $about // @access public // @see $about //------------------------------------------------- function getAbout() { return (string) $this->about; } // end function //------------------------------------------------- // Returns $title variable //------------------------------------------------- // @desc Returns $title variable // @return (string) $title // @access public // @see $title //------------------------------------------------- function getTitle() { return (string) $this->title; } // end function //------------------------------------------------- // Returns $description variable //------------------------------------------------- // @desc Returns $description variable // @return (string) $description // @access public // @see $description //------------------------------------------------- function getDescription() { return (string) $this->description; } // end function //------------------------------------------------- // Returns $publisher variable //------------------------------------------------- // @desc Returns $publisher variable // @return (string) $publisher // @access public // @see $publisher //------------------------------------------------- function getPublisher() { return (string) $this->publisher; } // end function //------------------------------------------------- // Returns $creator variable //------------------------------------------------- // @desc Returns $creator variable // @return (string) $creator // @access public // @see $creator //------------------------------------------------- function getCreator() { return (string) $this->creator; } // end function //------------------------------------------------- // Returns $date variable //------------------------------------------------- // @desc Returns $date variable // @return (string) $date // @access public // @see $date //------------------------------------------------- function getDate() { return (string) $this->date; } // end function //------------------------------------------------- // Returns $language variable //------------------------------------------------- // @desc Returns $language variable // @return (string) $language // @access public // @see $language //------------------------------------------------- function getLanguage() { return (string) $this->language; } // end function //------------------------------------------------- // Returns $rights variable //------------------------------------------------- // @desc Returns $rights variable // @return (string) $rights // @access public // @see $rights //------------------------------------------------- function getRights() { return (string) $this->rights; } // end function //------------------------------------------------- // Returns $coverage variable //------------------------------------------------- // @desc Returns $coverage variable // @return (string) $coverage // @access public // @see $coverage //------------------------------------------------- function getCoverage() { return (string) $this->coverage; } // end function //------------------------------------------------- // Returns $contributor variable //------------------------------------------------- // @desc Returns $contributor variable // @return (string) $contributor // @access public // @see $contributor //------------------------------------------------- function getContributor() { return (string) $this->contributor; } // end function //------------------------------------------------- // Returns $image_link variable //------------------------------------------------- // @desc Returns $image_link variable // @return (string) $image_link // @access public // @see $image_link //------------------------------------------------- function getImageLink() { return (string) $this->image_link; } // end function //------------------------------------------------- // Returns $period variable //------------------------------------------------- // @desc Returns $period variable // @return (string) $period // @access public // @see $period //------------------------------------------------- function getPeriod() { return (string) $this->period; } // end function //------------------------------------------------- // Returns $frequency variable //------------------------------------------------- // @desc Returns $frequency variable // @return (string) $frequency // @access public // @see $frequency //------------------------------------------------- function getFrequency() { return (int) $this->frequency; } // end function //------------------------------------------------- // Returns $base variable //------------------------------------------------- // @desc Returns $base variable // @return (string) $base // @access public // @see $base //------------------------------------------------- function getBase() { return (string) $this->base; } // end function //------------------------------------------------- // Returns $category variable //------------------------------------------------- // @desc Returns $category variable // @return (string) $category // @access public // @see $category // @since 1.001 - 2003/05/30 //------------------------------------------------- function getCategory() { return (string) $this->category; } // end function //------------------------------------------------- // Returns $cache variable //------------------------------------------------- // @desc Returns $cache variable // @return (int) $cache // @access public // @see $cache // @since 1.001 - 2003/05/30 //------------------------------------------------- function getCache() { return (int) $this->cache; } // end function //------------------------------------------------- // Adds another rss item to the object //------------------------------------------------- // @desc Adds another rss item to the object // @param (string) $about URL // @param (string) $title // @param (string) $link URL // @param (string) $description (optional) // @param (string) $subject some sort of category (optional dc value - only shows up if DC data has been set before) // @param (string) $date format: 2003-05-29T00:03:07+0200 (optional dc value - only shows up if DC data has been set before) // @return (void) // @access public // @see $items // @uses RSSItem //------------------------------------------------- function addItem($about = '', $title = '', $link = '', $description = '', $subject = '', $date = '', $author = '', $comments = '') { $item = new RSSItem($about, $title, $link, $description, $subject, $date, $author = '', $comments = ''); $this->items[] = $item; } // end function //------------------------------------------------- // Deletes a rss item from the array //------------------------------------------------- // @desc Deletes a rss item from the array // @param (int) $id id of the element in the $items array // @return (boolean) true if item was deleted // @access public // @see $items //------------------------------------------------- function deleteItem($id = -1) { if (array_key_exists($id, $this->items)) { unset($this->items[$id]); return (boolean) true; } else { return (boolean) false; } // end if } // end function //------------------------------------------------- // Returns an array with all the keys of the $items array //------------------------------------------------- // @desc Returns an array with all the keys of the $items array // @return (array) array with all the keys of the $items array // @access public // @see $items //------------------------------------------------- function getItemList() { return (array) array_keys($this->items); } // end function //------------------------------------------------- // Returns the $items array //------------------------------------------------- // @desc Returns the $items array // @return (array) $items // @access public //------------------------------------------------- function getItems() { return (array) $this->items; } // end function //------------------------------------------------- // Returns a single rss item by ID //------------------------------------------------- // @desc Returns a single rss item by ID // @param (int) $id id of the element in the $items array // @return (mixed) RSSItem or false // @access public // @see RSSItem //------------------------------------------------- function getItem($id = -1) { if (array_key_exists($id, $this->items)) { return (object) $this->items[$id]; } else { return (boolean) false; } // end if } // end function //------------------------------------------------- // creates the output based on the 0.91 rss version //------------------------------------------------- // @desc creates the output based on the 0.91 rss version // @return (void) // @access private // @see $output //------------------------------------------------- function createOutputV090() { // not implemented $this->createOutputV100(); } // end function //------------------------------------------------- // creates the output based on the 0.91 rss version //------------------------------------------------- // @desc creates the output based on the 0.91 rss version // @return (void) // @access private // @see $output // @since 1.001 - 2003/05/30 //------------------------------------------------- function createOutputV091() { $this->output = (string) '<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">' . "\n"; $this->output .= (string) '<rss version="0.91">' . "\n"; $this->output .= (string) '<channel>' . "\n"; if (strlen($this->rights) > 0) { $this->output .= (string) '<copyright>' . $this->rights . '</copyright>' . "\n"; } // end if if (strlen($this->date) > 0) { $this->output .= (string) '<pubDate>' .$this->date . '</pubDate>' . "\n"; $this->output .= (string) '<lastBuildDate>' .$this->date . '</lastBuildDate>' . "\n"; } // end if if (strlen($this->about) > 0) { $this->output .= (string) '<docs>' . $this->about . '</docs>' . "\n"; } // end if if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if if (strlen($this->about) > 0) { $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; } // end if if (strlen($this->title) > 0) { $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; } // end if if (strlen($this->image_link) > 0) { $this->output .= (string) '<image>' . "\n"; $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; $this->output .= (string) '<url>' . $this->image_link . '</url>' . "\n"; $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if $this->output .= (string) '</image>' . "\n"; } // end if if (strlen($this->publisher) > 0) { $this->output .= (string) '<managingEditor>' . $this->publisher . '</managingEditor>' . "\n"; } // end if if (strlen($this->creator) > 0) { $this->output .= (string) '<webMaster>' . $this->creator . '</webMaster>' . "\n"; } // end if if (strlen($this->language) > 0) { $this->output .= (string) '<language>' . $this->language . '</language>' . "\n"; } // end if if (count($this->getItemList()) > 0) { foreach ($this->getItemList() AS $id) { $item =& $this->items[$id]; if (strlen($item->getTitle()) > 0 && strlen($item->getLink()) > 0) { $this->output .= (string) '<item>' . "\n"; $this->output .= (string) '<title>' . $item->getTitle() . '</title>' . "\n"; $this->output .= (string) '<link>' . $item->getLink() . '</link>' . "\n"; if (strlen($item->getDescription()) > 0) { $this->output .= (string) '<description>' . $item->getDescription() . '</description>' . "\n"; } // end if $this->output .= (string) '</item>' . "\n"; } // end if } // end foreach } // end if $this->output .= (string) '</channel>' . "\n"; $this->output .= (string) '</rss>' . "\n"; } // end function //------------------------------------------------- // creates the output based on the 1.0 rss version //------------------------------------------------- // @desc creates the output based on the 1.0 rss version // @return (void) // @access private // @see $output //------------------------------------------------- function createOutputV100() { $this->output = (string) '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" '; if ($this->use_dc_data === true) { $this->output .= (string) 'xmlns:dc="http://purl.org/dc/elements/1.1/" '; } // end if if ($this->use_sy_data === true) { $this->output .= (string) 'xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" '; } // end if $this->output .= (string) 'xmlns="http://purl.org/rss/1.0/">' . "\n"; if (strlen($this->about) > 0) { $this->output .= (string) '<channel rdf:about="' . $this->about . '">' . "\n"; } else { $this->output .= (string) '<channel>' . "\n"; } // end if if (strlen($this->title) > 0) { $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; } // end if if (strlen($this->about) > 0) { $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; } // end if if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if // additional dc data if (strlen($this->publisher) > 0) { $this->output .= (string) '<dc:publisher>' . $this->publisher . '</dc:publisher>' . "\n"; } // end if if (strlen($this->creator) > 0) { $this->output .= (string) '<dc:creator>' . $this->creator . '</dc:creator>' . "\n"; } // end if if (strlen($this->date) > 0) { $this->output .= (string) '<dc:date>' .$this->date . '</dc:date>' . "\n"; } // end if if (strlen($this->language) > 0) { $this->output .= (string) '<dc:language>' . $this->language . '</dc:language>' . "\n"; } // end if if (strlen($this->rights) > 0) { $this->output .= (string) '<dc:rights>' . $this->rights . '</dc:rights>' . "\n"; } // end if if (strlen($this->coverage) > 0) { $this->output .= (string) '<dc:coverage>' . $this->coverage . '</dc:coverage>' . "\n"; } // end if if (strlen($this->contributor) > 0) { $this->output .= (string) '<dc:contributor>' . $this->contributor . '</dc:contributor>' . "\n"; } // end if // additional SY data if (strlen($this->period) > 0) { $this->output .= (string) '<sy:updatePeriod>' . $this->period . '</sy:updatePeriod>' . "\n"; } // end if if (strlen($this->frequency) > 0) { $this->output .= (string) '<sy:updateFrequency>' . $this->frequency . '</sy:updateFrequency>' . "\n"; } // end if if (strlen($this->base) > 0) { $this->output .= (string) '<sy:updateBase>' . $this->base . '</sy:updateBase>' . "\n"; } // end if if (strlen($this->image_link) > 0) { $this->output .= (string) '<image rdf:resource="' . $this->image_link . '" />' . "\n"; } // end if if (strlen($this->image_link) > 0) { $this->output .= (string) '<image rdf:about="' . $this->image_link . '">' . "\n"; $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; $this->output .= (string) '<url>' . $this->image_link . '</url>' . "\n"; $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if $this->output .= (string) '</image>' . "\n"; } // end if if (count($this->getItemList()) > 0) { $this->output .= (string) '<items><rdf:Seq>' . "\n"; foreach ($this->getItemList() as $id) { $item =& $this->items[$id]; if (strlen($item->getAbout()) > 0) { $this->output .= (string) ' <rdf:li resource="' . $item->getAbout() . '" />' . "\n"; } // end if } // end foreach $this->output .= (string) '</rdf:Seq></items>' . "\n"; } // end if $this->output .= (string) '</channel>' . "\n"; if (count($this->getItemList()) > 0) { foreach ($this->getItemList() as $id) { $item =& $this->items[$id]; if (strlen($item->getTitle()) > 0 && strlen($item->getLink()) > 0) { if (strlen($item->getAbout()) > 0) { $this->output .= (string) '<item rdf:about="' . $item->getAbout() . '">' . "\n"; } else { $this->output .= (string) '<item>' . "\n"; } // end if $this->output .= (string) '<title>' . $item->getTitle() . '</title>' . "\n"; $this->output .= (string) '<link>' . $item->getLink() . '</link>' . "\n"; if (strlen($item->getDescription()) > 0) { $this->output .= (string) '<description>' . $item->getDescription() . '</description>' . "\n"; } // end if if ($this->use_dc_data === true && strlen($item->getSubject()) > 0) { $this->output .= (string) '<dc:subject>' . $item->getSubject() . '</dc:subject>' . "\n"; } // end if if ($this->use_dc_data === true && strlen($item->getDate()) > 0) { $this->output .= (string) '<dc:date>' . $item->getDate() . '</dc:date>' . "\n"; } // end if $this->output .= (string) '</item>' . "\n"; } // end if } // end foreach } // end if $this->output .= (string) '</rdf:RDF>'; } // end function //------------------------------------------------- // creates the output based on the 2.0 rss draft //------------------------------------------------- // @desc creates the output based on the 0.91 rss draft // @return (void) // @access private // @see $output // @since 1.001 - 2003/05/30 //------------------------------------------------- function createOutputV200() { // not implemented $this->createOutputV100(); //--------------------- $this->output = (string) '<rss version="2.0">' . "\n"; $this->output .= (string) '<channel>' . "\n"; if (strlen($this->rights) > 0) { $this->output .= (string) '<copyright>' . $this->rights . '</copyright>' . "\n"; } // end if if (strlen($this->date) > 0) { $this->output .= (string) '<pubDate>' .$this->date . '</pubDate>' . "\n"; //xuanyan 2007.5.8 edit //$this->output .= (string) '<lastBuildDate>' .$this->date . '</lastBuildDate>' . "\n"; } // end if if (strlen($this->about) > 0) { $this->output .= (string) '<docs>' . $this->about . '</docs>' . "\n"; } // end if if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if if (strlen($this->about) > 0) { $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; } // end if if (strlen($this->title) > 0) { $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; } // end if if (strlen($this->image_link) > 0) { $this->output .= (string) '<image>' . "\n"; $this->output .= (string) '<title>' . $this->title . '</title>' . "\n"; $this->output .= (string) '<url>' . $this->image_link . '</url>' . "\n"; $this->output .= (string) '<link>' . $this->about . '</link>' . "\n"; if (strlen($this->description) > 0) { $this->output .= (string) '<description>' . $this->description . '</description>' . "\n"; } // end if $this->output .= (string) '</image>' . "\n"; } // end if if (strlen($this->publisher) > 0) { $this->output .= (string) '<managingEditor>' . $this->publisher . '</managingEditor>' . "\n"; } // end if if (strlen($this->creator) > 0) { //xuanyan 2007.5.8 edit //$this->output .= (string) '<webMaster>' . $this->creator . '</webMaster>' . "\n"; $this->output .= (string) '<generator>' . $this->creator . '</generator>' . "\n"; } // end if if (strlen($this->language) > 0) { $this->output .= (string) '<language>' . $this->language . '</language>' . "\n"; } // end if if (strlen($this->category) > 0) { $this->output .= (string) '<category>' . $this->category . '</category>' . "\n"; } // end if if (strlen($this->cache) > 0) { $this->output .= (string) '<ttl>' . $this->cache . '</ttl>' . "\n"; } // end if if (count($this->getItemList()) > 0) { foreach ($this->getItemList() as $id) { $item =& $this->items[$id]; if (strlen($item->getTitle()) > 0 && strlen($item->getLink()) > 0) { $this->output .= (string) '<item>' . "\n"; $this->output .= (string) '<title>' . $item->getTitle() . '</title>' . "\n"; $this->output .= (string) '<link>' . $item->getLink() . '</link>' . "\n"; if (strlen($item->getDescription()) > 0) { $this->output .= (string) '<description>' . $item->getDescription() . '</description>' . "\n"; } // end if if ($this->use_dc_data === true && strlen($item->getSubject()) > 0) { $this->output .= (string) '<category>' . $item->getSubject() . '</category>' . "\n"; } // end if if ($this->use_dc_data === true && strlen($item->getDate()) > 0) { $this->output .= (string) '<pubDate>' . $item->getDate() . '</pubDate>' . "\n"; } // end if if (strlen($item->getAbout()) > 0) { $this->output .= (string) '<guid>' . $item->getAbout() . '</guid>' . "\n"; } // end if if (strlen($item->getAuthor()) > 0) { $this->output .= (string) '<author>' . $item->getAuthor() . '</author>' . "\n"; } // end if if (strlen($item->getComments()) > 0) { $this->output .= (string) '<comments>' . $item->getComments() . '</comments>' . "\n"; } // end if $this->output .= (string) '</item>' . "\n"; } // end if } // end foreach } // end if $this->output .= (string) '</channel>' . "\n"; $this->output .= (string) '</rss>' . "\n"; } // end function //------------------------------------------------- // creates the output //------------------------------------------------- // @desc creates the output // @return (void) // @access private // @uses createOutputV100() //------------------------------------------------- function createOutput($version = '') { if (strlen(trim($version)) === 0) { $version = (string) '1.0'; } // end if switch ($version) { case '0.9': $this->createOutputV090(); break; case '0.91': $this->createOutputV091(); break; case '2.00': $this->createOutputV200(); break; case '1.0': default: $this->createOutputV100(); break; } // end switch } // end function //------------------------------------------------- // echos the output //------------------------------------------------- // use this function if you want to directly output the rss stream //------------------------------------------------- // @desc echos the output // @return (void) // @access public // @uses createOutput() //------------------------------------------------- function outputRSS($version = '') { if (!isset($this->output)) { $this->createOutput($version); } // end if // header('Content-Disposition: inline; filename=rss_' . str_replace(' ', '', $this->title) . '.xml'); $this->output = '<' . '?xml version="1.0" encoding="' . $this->encoding . '"?' .'>' . "\n" . '<!-- RSS generated by ECSHOP (http://www.ecshop.com) [' . date('Y-m-d H:i:s') .'] -->' . "\n" . $this->output; echo $this->output; } // end function //------------------------------------------------- // returns the output //------------------------------------------------- // use this function if you want to have the output stream as a string (for example to write it in a cache file) //------------------------------------------------- // @desc returns the output // @return (void) // @access public // @uses createOutput() //------------------------------------------------- function getRSSOutput($version = '') { if (!isset($this->output)) { $this->createOutput($version); } // end if return (string) '<' . '?xml version="1.0" encoding="' . $this->encoding . '"?' . '>' . "\n" . '<!-- RSS generated by ' .APP_NAME. ' ' .APP_VERSION. ' [' . date('Y-m-d H:i:s') .'] --> ' . "\n" . $this->output; } // end function } // end class RSSBuilder //--------------------------------------------------------------------------- /*-----------------------------------------------------------------------*/ // single rss item object //------------------------------------------------- // Tested with WAMP (XP-SP1/1.3.24/4.0.12/4.3.0) // Last change: 2003-05-30 //------------------------------------------------- // @desc single rss item object // @access private // @author Michael Wimmer <flaimo@gmx.net> // @copyright Michael Wimmer // @link http://www.flaimo.com/ // @package RSSBuilder // @category FLP // @version 1.001 /*-----------------------------------------------------------------------*/ class RSSItem extends RSSBase { /*-----------------------------------------------------------------------*/ /* V A R I A B L E S */ /*-----------------------------------------------------------------------*/ //------------------------------------------------- // URL //------------------------------------------------- // @desc URL // @var string // @access private //------------------------------------------------- var $about; //------------------------------------------------- // headline //------------------------------------------------- // @desc headline // @var string // @access private //------------------------------------------------- var $title; //------------------------------------------------- // URL to the full item //------------------------------------------------- // @desc URL to the full item // @var string // @access private //------------------------------------------------- var $link; //------------------------------------------------- // optional description //------------------------------------------------- // @desc optional description // @var string // @access private //------------------------------------------------- var $description; //------------------------------------------------- // optional subject (category) //------------------------------------------------- // @desc optional subject (category) // @var string // @access private //------------------------------------------------- var $subject; //------------------------------------------------- // optional date //------------------------------------------------- // @desc optional date // @var string // @access private //------------------------------------------------- var $date; //------------------------------------------------- // author of item //------------------------------------------------- // @desc author of item // @var string // @access private // @since 1.001 - 2003/05/30 //------------------------------------------------- var $author; //------------------------------------------------- // url to comments page (rss 2.0) //------------------------------------------------- // @desc url to comments page (rss 2.0) // @var string // @access private // @since 1.001 - 2003/05/30 //------------------------------------------------- var $comments; /*-----------------------*/ /* C O N S T R U C T O R */ /*-----------------------*/ //------------------------------------------------- // Constructor //------------------------------------------------- // @desc Constructor // @param (string) $about URL // @param (string) $title // @param (string) $link URL // @param (string) $description (optional) // @param (string) $subject some sort of category (optional) // @param (string) $date format: 2003-05-29T00:03:07+0200 (optional) // @return (void) // @uses setAbout(), setTitle(), setLink(), setDescription(), setSubject(), setDate(), setAuthor(), setComments() // @access private //------------------------------------------------- function RSSItem($about = '', $title = '', $link = '', $description = '', $subject = '', $date = '', $author = '', $comments = '') { $this->setAbout($about); $this->setTitle($title); $this->setLink($link); $this->setDescription($description); $this->setSubject($subject); $this->setDate($date); $this->setAuthor($author); $this->setComments($comments); } // end constructor //------------------------------------------------- // Sets $about variable //------------------------------------------------- // @desc Sets $about variable // @param (string) $about // @return (void) // @access private // @see $about //------------------------------------------------- function setAbout($about = '') { if (!isset($this->about) && strlen(trim($about)) > 0) { $this->about = (string) trim($about); } // end if } // end function //------------------------------------------------- // Sets $title variable //------------------------------------------------- // @desc Sets $title variable // @param (string) $title // @return (void) // @access private // @see $title //------------------------------------------------- function setTitle($title = '') { if (!isset($this->title) && strlen(trim($title)) > 0) { $this->title = (string) trim($title); } // end if } // end function //------------------------------------------------- // Sets $link variable //------------------------------------------------- // @desc Sets $link variable // @param (string) $link // @return (void) // @access private // @see $link //------------------------------------------------- function setLink($link = '') { if (!isset($this->link) && strlen(trim($link)) > 0) { $this->link = (string) trim($link); } // end if } // end function //------------------------------------------------- // Sets $description variable //------------------------------------------------- // @desc Sets $description variable // @param (string) $description // @return (void) // @access private // @see $description //------------------------------------------------- function setDescription($description = '') { if (!isset($this->description) && strlen(trim($description)) > 0) { $this->description = (string) trim($description); } // end if } // end function //------------------------------------------------- // Sets $subject variable //------------------------------------------------- // @desc Sets $subject variable // @param (string) $subject // @return (void) // @access private // @see $subject //------------------------------------------------- function setSubject($subject = '') { if (!isset($this->subject) && strlen(trim($subject)) > 0) { $this->subject = (string) trim($subject); } // end if } // end function //------------------------------------------------- // Sets $date variable //------------------------------------------------- // @desc Sets $date variable // @param (string) $date // @return (void) // @access private // @see $date //------------------------------------------------- function setDate($date = '') { if (!isset($this->date) && strlen(trim($date)) > 0) { $this->date = (string) trim($date); } // end if } // end function //------------------------------------------------- // Sets $author variable //------------------------------------------------- // @desc Sets $author variable // @param (string) $author // @return (void) // @access private // @see $author // @since 1.001 - 2003/05/30 //------------------------------------------------- function setAuthor($author = '') { if (!isset($this->author) && strlen(trim($author)) > 0) { $this->author = (string) trim($author); } // end if } // end function //------------------------------------------------- // Sets $comments variable //------------------------------------------------- // @desc Sets $comments variable // @param (string) $comments // @return (void) // @access private // @see $comments // @since 1.001 - 2003/05/30 //------------------------------------------------- function setComments($comments = '') { if (!isset($this->comments) && strlen(trim($comments)) > 0) { $this->comments = (string) trim($comments); } // end if } // end function //------------------------------------------------- // Returns $about variable //------------------------------------------------- // @desc Returns $about variable // @return (string) $about // @access public // @see $about //------------------------------------------------- function getAbout() { return (string) $this->about; } // end function //------------------------------------------------- // Returns $title variable //------------------------------------------------- // @desc Returns $title variable // @return (string) $title // @access public // @see $title //------------------------------------------------- function getTitle() { return (string) $this->title; } // end function //------------------------------------------------- // Returns $link variable //------------------------------------------------- // @desc Returns $link variable // @return (string) $link // @access public // @see $link //------------------------------------------------- function getLink() { return (string) $this->link; } // end function //------------------------------------------------- // Returns $description variable //------------------------------------------------- // @desc Returns $description variable // @return (string) $description // @access public // @see $description //------------------------------------------------- function getDescription() { return (string) $this->description; } // end function //------------------------------------------------- // Returns $subject variable //------------------------------------------------- // @desc Returns $subject variable // @return (string) $subject // @access public // @see $subject //------------------------------------------------- function getSubject() { return (string) $this->subject; } // end function //------------------------------------------------- // Returns $date variable //------------------------------------------------- // @desc Returns $date variable // @return (string) $date // @access public // @see $date //------------------------------------------------- function getDate() { return (string) $this->date; } // end function //------------------------------------------------- // Returns $author variable //------------------------------------------------- // @desc Returns $author variable // @return (string) $author // @access public // @see $author // @since 1.001 - 2003/05/30 //------------------------------------------------- function getAuthor() { return (string) $this->author; } // end function //------------------------------------------------- // Returns $comments variable //------------------------------------------------- // @desc Returns $comments variable // @return (string) $comments // @access public // @see $comments // @since 1.001 - 2003/05/30 //------------------------------------------------- function getComments() { return (string) $this->comments; } // end function } // end class RSSItem ?>