From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- framework/Web/Services/TFeedService.php | 374 ++++++++++++++++---------------- 1 file changed, 187 insertions(+), 187 deletions(-) (limited to 'framework/Web/Services/TFeedService.php') diff --git a/framework/Web/Services/TFeedService.php b/framework/Web/Services/TFeedService.php index ab1b9c35..4f757d8f 100644 --- a/framework/Web/Services/TFeedService.php +++ b/framework/Web/Services/TFeedService.php @@ -1,187 +1,187 @@ - - * @author Knut Urdalen - * @link http://www.pradosoft.com - * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Web.Services - */ - -/** - * TFeedService class - * - * TFeedService provides to end-users feed content. - * - * TFeedService manages a set of feeds. The service parameter, referring - * to the ID of the feed, specifies which feed content to be provided to end-users. - * - * To use TFeedService, configure it in application configuration as follows, - * - * - * - * - * - * - * - * where each <feed> element specifies a feed identified by its "id" value (case-sensitive). - * - * PHP configuration style: - * - * array( - * 'feed' => array( - * 'ch1' => array( - * 'class' => 'Path.To.FeedClass1', - * 'properties' => array( - * ... - * ), - * ), - * ) - * - * - * The class attribute indicates which PHP class will provide the actual feed - * content. Note, the class must implement {@link IFeedContentProvider} interface. - * Other initial properties for the feed class may also be specified in the - * corresponding <feed> element. - * - * To retrieve the feed content identified by "ch2", use the URL - * /path/to/index.php?feed=ch2 - * - * @author Qiang Xue - * @author Knut Urdalen - * @author Carl G. Mathisen - * @package System.Web.Services - * @since 3.1 - */ -class TFeedService extends TService -{ - private $_feeds=array(); - - /** - * Initializes this module. - * This method is required by the IModule interface. - * @param mixed configuration for this module, can be null - */ - public function init($config) - { - if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) - { - if(is_array($config)) - { - foreach($config as $id => $feed) - $this->_feeds[$id] = $feed; - } - } - else - { - foreach($config->getElementsByTagName('feed') as $feed) - { - if(($id=$feed->getAttributes()->remove('id'))!==null) - $this->_feeds[$id]=$feed; - else - throw new TConfigurationException('feedservice_id_required'); - } - } - } - - /** - * @return string the requested feed path - */ - protected function determineRequestedFeedPath() - { - return $this->getRequest()->getServiceParameter(); - } - - /** - * Runs the service. - * This method is invoked by application automatically. - */ - public function run() - { - $id=$this->getRequest()->getServiceParameter(); - if(isset($this->_feeds[$id])) - { - $feedConfig=$this->_feeds[$id]; - $properties = array(); - $feed = null; - if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) - { - if(isset($feedConfig['class'])) - { - $feed=Prado::createComponent($feedConfig['class']); - if($service instanceof IFeedContentProvider) - $properties=isset($feedConfig['properties'])?$feedConfig['properties']:array(); - else - throw new TConfigurationException('jsonservice_response_type_invalid',$id); - } - else - throw new TConfigurationException('jsonservice_class_required',$id); - } - else - { - $properties=$feedConfig->getAttributes(); - if(($class=$properties->remove('class'))!==null) - { - $feed=Prado::createComponent($class); - if(!($feed instanceof IFeedContentProvider)) - throw new TConfigurationException('feedservice_feedtype_invalid',$id); - } - else - throw new TConfigurationException('feedservice_class_required',$id); - } - - // init feed properties - foreach($properties as $name=>$value) - $feed->setSubproperty($name,$value); - $feed->init($feedConfig); - - $content=$feed->getFeedContent(); - //$this->getResponse()->setContentType('application/rss+xml'); - $this->getResponse()->setContentType($feed->getContentType()); - $this->getResponse()->write($content); - } - else - throw new THttpException(404,'feedservice_feed_unknown',$id); - } -} - -/** - * IFeedContentProvider interface. - * - * IFeedContentProvider interface must be implemented by a feed class who - * provides feed content. - * - * @author Qiang Xue - * @author Knut Urdalen - * @package System.Web.Services - * @since 3.1 - */ -interface IFeedContentProvider -{ - /** - * Initializes the feed content provider. - * This method is invoked (before {@link getFeedContent}) - * when the feed provider is requested by a user. - * @param TXmlElement configurations specified within the <feed> element - * corresponding to this feed provider when configuring {@link TFeedService}. - */ - public function init($config); - /** - * @return string feed content in proper XML format - */ - public function getFeedContent(); - /** - * Sets the content type of the feed content to be sent. - * Some examples are: - * RSS 1.0 feed: application/rdf+xml - * RSS 2.0 feed: application/rss+xml or application/xml or text/xml - * ATOM feed: application/atom+xml - * @return string the content type for the feed content. - * @since 3.1.1 - */ - public function getContentType(); -} - + + * @author Knut Urdalen + * @link http://www.pradosoft.com + * @copyright Copyright © 2005-2012 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Web.Services + */ + +/** + * TFeedService class + * + * TFeedService provides to end-users feed content. + * + * TFeedService manages a set of feeds. The service parameter, referring + * to the ID of the feed, specifies which feed content to be provided to end-users. + * + * To use TFeedService, configure it in application configuration as follows, + * + * + * + * + * + * + * + * where each <feed> element specifies a feed identified by its "id" value (case-sensitive). + * + * PHP configuration style: + * + * array( + * 'feed' => array( + * 'ch1' => array( + * 'class' => 'Path.To.FeedClass1', + * 'properties' => array( + * ... + * ), + * ), + * ) + * + * + * The class attribute indicates which PHP class will provide the actual feed + * content. Note, the class must implement {@link IFeedContentProvider} interface. + * Other initial properties for the feed class may also be specified in the + * corresponding <feed> element. + * + * To retrieve the feed content identified by "ch2", use the URL + * /path/to/index.php?feed=ch2 + * + * @author Qiang Xue + * @author Knut Urdalen + * @author Carl G. Mathisen + * @package System.Web.Services + * @since 3.1 + */ +class TFeedService extends TService +{ + private $_feeds=array(); + + /** + * Initializes this module. + * This method is required by the IModule interface. + * @param mixed configuration for this module, can be null + */ + public function init($config) + { + if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) + { + if(is_array($config)) + { + foreach($config as $id => $feed) + $this->_feeds[$id] = $feed; + } + } + else + { + foreach($config->getElementsByTagName('feed') as $feed) + { + if(($id=$feed->getAttributes()->remove('id'))!==null) + $this->_feeds[$id]=$feed; + else + throw new TConfigurationException('feedservice_id_required'); + } + } + } + + /** + * @return string the requested feed path + */ + protected function determineRequestedFeedPath() + { + return $this->getRequest()->getServiceParameter(); + } + + /** + * Runs the service. + * This method is invoked by application automatically. + */ + public function run() + { + $id=$this->getRequest()->getServiceParameter(); + if(isset($this->_feeds[$id])) + { + $feedConfig=$this->_feeds[$id]; + $properties = array(); + $feed = null; + if($this->getApplication()->getConfigurationType()==TApplication::CONFIG_TYPE_PHP) + { + if(isset($feedConfig['class'])) + { + $feed=Prado::createComponent($feedConfig['class']); + if($service instanceof IFeedContentProvider) + $properties=isset($feedConfig['properties'])?$feedConfig['properties']:array(); + else + throw new TConfigurationException('jsonservice_response_type_invalid',$id); + } + else + throw new TConfigurationException('jsonservice_class_required',$id); + } + else + { + $properties=$feedConfig->getAttributes(); + if(($class=$properties->remove('class'))!==null) + { + $feed=Prado::createComponent($class); + if(!($feed instanceof IFeedContentProvider)) + throw new TConfigurationException('feedservice_feedtype_invalid',$id); + } + else + throw new TConfigurationException('feedservice_class_required',$id); + } + + // init feed properties + foreach($properties as $name=>$value) + $feed->setSubproperty($name,$value); + $feed->init($feedConfig); + + $content=$feed->getFeedContent(); + //$this->getResponse()->setContentType('application/rss+xml'); + $this->getResponse()->setContentType($feed->getContentType()); + $this->getResponse()->write($content); + } + else + throw new THttpException(404,'feedservice_feed_unknown',$id); + } +} + +/** + * IFeedContentProvider interface. + * + * IFeedContentProvider interface must be implemented by a feed class who + * provides feed content. + * + * @author Qiang Xue + * @author Knut Urdalen + * @package System.Web.Services + * @since 3.1 + */ +interface IFeedContentProvider +{ + /** + * Initializes the feed content provider. + * This method is invoked (before {@link getFeedContent}) + * when the feed provider is requested by a user. + * @param TXmlElement configurations specified within the <feed> element + * corresponding to this feed provider when configuring {@link TFeedService}. + */ + public function init($config); + /** + * @return string feed content in proper XML format + */ + public function getFeedContent(); + /** + * Sets the content type of the feed content to be sent. + * Some examples are: + * RSS 1.0 feed: application/rdf+xml + * RSS 2.0 feed: application/rss+xml or application/xml or text/xml + * ATOM feed: application/atom+xml + * @return string the content type for the feed content. + * @since 3.1.1 + */ + public function getContentType(); +} + -- cgit v1.2.3