⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 summaryrssaction.class.php

📁 一个用PHP编写的
💻 PHP
字号:
<?php	lt_include( PLOG_CLASS_PATH."class/summary/action/summaryaction.class.php" );    lt_include( PLOG_CLASS_PATH."class/summary/dao/summarystats.class.php" );    lt_include( PLOG_CLASS_PATH."class/data/timestamp.class.php" );    lt_include( PLOG_CLASS_PATH."class/dao/blogs.class.php" );	lt_include( PLOG_CLASS_PATH."class/summary/view/summaryrssview.class.php" );	lt_include( PLOG_CLASS_PATH."class/net/rawrequestgenerator.class.php" );    lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );		define( "SUMMARY_RSS_TYPE_DEFAULT", "default" );	define( "SUMMARY_RSS_TYPE_MOST_COMMENTED", "mostcommented" );	define( "SUMMARY_RSS_TYPE_MOST_READ", "mostread" );	define( "SUMMARY_RSS_TYPE_MOST_ACTIVE_BLOGS", "mostactiveblogs" );	define( "SUMMARY_RSS_TYPE_NEWEST_BLOGS", "newestblogs" );	define( "SUMMARY_RSS_TYPE_POSTS_LIST", "postslist" );	define( "SUMMARY_RSS_TYPE_BLOGS_LIST", "blogslist" );	     /**      * This is the one and only default action. It simply fetches all the most recent      * posts from the database and shows them. The default locale is the one specified      * in the configuration file and the amount of posts shown in this page is also      * configurable through the config file.      */     class SummaryRssAction extends SummaryAction     {        function SummaryRssAction( $actionInfo, $request )        {            $this->SummaryAction( $actionInfo, $request );        }				function validate()		{			// make sure that the mode is set to something meaningful...			$this->_mode = $this->_request->getValue( "type" );			if( $this->_mode != SUMMARY_RSS_TYPE_DEFAULT &&			    $this->_mode != SUMMARY_RSS_TYPE_MOST_COMMENTED &&				$this->_mode != SUMMARY_RSS_TYPE_MOST_READ &&				$this->_mode != SUMMARY_RSS_TYPE_MOST_ACTIVE_BLOGS &&				$this->_mode != SUMMARY_RSS_TYPE_NEWEST_BLOGS &&				$this->_mode != SUMMARY_RSS_TYPE_POSTS_LIST &&				$this->_mode != SUMMARY_RSS_TYPE_BLOGS_LIST ) {								// in case the parameter looks weird, let's use a default one...				$this->_mode = SUMMARY_RSS_TYPE_DEFAULT;			}						$this->_profile = $this->_request->getValue( "profile" );						return true;		}        /**         * Loads the posts and shows them.         */        function perform()        {            if( $this->_mode == SUMMARY_RSS_TYPE_MOST_COMMENTED ||                $this->_mode == SUMMARY_RSS_TYPE_MOST_READ ||                $this->_mode == SUMMARY_RSS_TYPE_DEFAULT ||                $this->_mode == SUMMARY_RSS_TYPE_POSTS_LIST ) {	                	                            	// get the globalArticleCategoryId from request				$globalArticleCategoryId = $this->_request->getValue( "globalArticleCategoryId" );				$val = new IntegerValidator();				if( !$val->validate( $globalArticleCategoryId ))					$globalArticleCategoryId = ALL_GLOBAL_ARTICLE_CATEGORIES;				    				            // RSS feeds for posts stuff	            $this->_view = new SummaryRssView( $this->_profile, Array( "summary" => "rss", 			                                       "globalArticleCategoryId" => $globalArticleCategoryId,			                                       "mode" => $this->_mode,												   "profile" => $this->_profile ));				if( $this->_view->isCached()) {					$this->setCommonData();					return true;				}		            	$blogs       = new Blogs();            	$stats       = new SummaryStats();	                				if( $this->_mode == SUMMARY_RSS_TYPE_MOST_COMMENTED ) {					$postslist = $stats->getMostCommentedArticles();				}				elseif( $this->_mode == SUMMARY_RSS_TYPE_MOST_READ ) {					$postslist = $stats->getMostReadArticles();							}				elseif( $this->_mode == SUMMARY_RSS_TYPE_POSTS_LIST ) {     				lt_include( PLOG_CLASS_PATH."class/dao/globalarticlecategories.class.php" );            		lt_include( PLOG_CLASS_PATH."class/config/config.class.php" );            		            		// get the summary_items_per_page from config            		$config =& Config::getConfig();            		$summaryItemsPerPage = $config->getValue( "summary_items_per_page", SUMMARY_DEFAULT_ITEMS_PER_PAGE );										$categories = new GlobalArticleCategories();					$currentGlobalArticleCategory = $categories->getGlobalArticleCategory( $globalArticleCategoryId );										if( empty($currentGlobalArticleCategory) )						$globalArticleCategoryId = ALL_GLOBAL_ARTICLE_CATEGORIES;											$postslist = $stats->getPostsByGlobalCategory( $globalArticleCategoryId,        										 					 $page = 1,         										 					 $summaryItemsPerPage );				}								else {					lt_include( PLOG_CLASS_PATH."class/dao/globalarticlecategories.class.php" );					$categories = new GlobalArticleCategories();					$currentGlobalArticleCategory = $categories->getGlobalArticleCategory( $globalArticleCategoryId );										if( empty($currentGlobalArticleCategory) )						$globalArticleCategoryId = ALL_GLOBAL_ARTICLE_CATEGORIES;										$postslist = $stats->getRecentArticles( $globalArticleCategoryId );				}		            if( !$postslist ) {					$postslist = Array();	            }					$this->_view->setValue( "posts", $postslist );			}			elseif( $this->_mode == SUMMARY_RSS_TYPE_MOST_ACTIVE_BLOGS ||			        $this->_mode == SUMMARY_RSS_TYPE_NEWEST_BLOGS ||			        $this->_mode == SUMMARY_RSS_TYPE_BLOGS_LIST ) {				            	// get the globalArticleCategoryId from request				$blogCategoryId = $this->_request->getValue( "blogCategoryId" );				$val = new IntegerValidator();				if( !$val->validate( $blogCategoryId ))					$blogCategoryId = ALL_BLOG_CATEGORIES;				// RSS feeds for blogs, need different template sets...	            $this->_view = new SummaryRssView( "blogs_".$this->_profile, Array( "summary" => "rss",	            								   "blogCategoryId" => $blogCategoryId, 			                                       "mode" => $this->_mode,												   "profile" => $this->_profile ));				if( $this->_view->isCached()) {					$this->setCommonData();					return true;				}								// load the stuff				$blogs = new Blogs();				$stats = new SummaryStats();								if( $this->_mode == SUMMARY_RSS_TYPE_MOST_ACTIVE_BLOGS ) {					$blogslist = $stats->getMostActiveBlogs();					}				elseif( $this->_mode == SUMMARY_RSS_TYPE_BLOGS_LIST ) {     				lt_include( PLOG_CLASS_PATH."class/dao/blogcategories.class.php" );            		lt_include( PLOG_CLASS_PATH."class/config/config.class.php" );            		            		// get the summary_items_per_page from config            		$config =& Config::getConfig();            		$summaryItemsPerPage = $config->getValue( "summary_items_per_page", SUMMARY_DEFAULT_ITEMS_PER_PAGE );										$categories = new BlogCategories();					$currentBlogCategory = $categories->getBlogCategory( $blogCategoryId );										if( empty($currentBlogCategory) )						$blogCategoryId = ALL_BLOG_CATEGORIES;											$blogslist = $blogs->getAllBlogs( BLOG_STATUS_ACTIVE, 													  $blogCategoryId, 													  "", 													  1, 													  $summaryItemsPerPage );				}				else {					$blogslist = $stats->getRecentBlogs();				}								// in case there is really no data to fetch...				if( !$blogslist )					$blogslist = Array();									$this->_view->setValue( "blogs", $blogslist );											}						$this->_view->setValue( "type", $this->_mode );			$this->_view->setValue( "summary", true );			// this 'url' object is just a dummy one... But we cannot get it from the list			// of blogs that we fetched because it could potentially be null! Besides, we only			// need it to generate the base url to rss.css and to summary.php, so no need to			// have a fully-featured object			$this->_view->setValue( "url", new RawRequestGenerator( null ));						$this->setCommonData();		            return true;        }     }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -