blogs
[ class tree: blogs ] [ index: blogs ] [ all elements ]

Source for file blogs_rss.php

Documentation is available at blogs_rss.php

  1. <?php
  2. /**
  3.  * @version $Header$
  4.  * @package blogs
  5.  * @subpackage functions
  6.  */
  7.  
  8. /**
  9.  * Initialization
  10.  */
  11. require_once( "../kernel/setup_inc.php" );
  12.  
  13. $gBitSystem->verifyPackage( 'rss' );
  14. $gBitSystem->verifyPackage( 'blogs' );
  15. $gBitSystem->verifyFeature( 'blogs_rss' );
  16.  
  17. require_once( BLOGS_PKG_PATH.'BitBlogPost.php' );
  18. require_once( RSS_PKG_PATH."rss_inc.php" );
  19.  
  20. // default feed info
  21. $rss->title = $gBitSystem->getConfig( 'blogs_rss_title', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'Blog Posts' ) );
  22. $rss->description = $gBitSystem->getConfig( 'blogs_rss_description', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'RSS Feed' ) );
  23.  
  24. // check permission to view wiki pages
  25. if( !$gBitUser->hasPermission( 'p_blogs_view' ) ) {
  26.     require_once( RSS_PKG_PATH."rss_error.php" );
  27. } else {
  28.     // check if we want to use the cache file
  29.     $cacheFile = TEMP_PKG_PATH.RSS_PKG_NAME.'/'.BLOGS_PKG_NAME.( !empty( $_REQUEST['user_id'] ) ? "_".$_REQUEST['user_id'] : "" ).( !empty( $_REQUEST['group_id'] ) ? "_".$_REQUEST['group_id'] : "" ).( !empty( $_REQUEST['role_id'] ) ? "_".$_REQUEST['role_id'] : "" ).( !empty( $_REQUEST['blog_id'] ) ? "_".$_REQUEST['blog_id'] : "" ).'_'.$cacheFileTail;
  30.     $rss->useCached( $rss_version_name, $cacheFile, $gBitSystem->getConfig( 'rssfeed_cache_time' ));
  31.  
  32.     $blogPost = new BitBlogPost();
  33.     $listHash['sort_mode'] = 'last_modified_desc';
  34.     $listHash['max_records'] = $gBitSystem->getConfig( 'blogs_rss_max_records', 10 );
  35.     $listHash['parse_data'] = TRUE;
  36.     $listHash['full_data'] = TRUE;
  37.     if( !empty( $_REQUEST['user_id'] ) ) {
  38.         if ( $gBitSystem->getConfig( 'user_class', 'BitPermUser' ) == 'RolePermUser' ) {
  39.             require_once( USERS_PKG_PATH.'RoleUser.php' );
  40.         } else {
  41.             require_once( USERS_PKG_PATH.'BitUser.php' );
  42.         }
  43.         $blogUser = new BitUser();
  44.         $userData = $blogUser->getUserInfo( array('user_id' => $_REQUEST['user_id']) );
  45.         // dont try and fool me
  46.         if (!empty($userData)){
  47.             $userName = $userData['real_name']?$userData['real_name']:$userData['login'];
  48.             $rss->title = $userName." at ".$gBitSystem->getConfig( 'site_title' );
  49.             $listHash['user_id'] = $_REQUEST['user_id'];
  50.         }
  51.     } else if( !empty( $_REQUEST['group_id'] ) ) {
  52.         require_once( USERS_PKG_PATH . 'BitPermUser.php' );
  53.         $permUser = new BitPermUser();
  54.         $groupData = $permUser->getGroupInfo( $_REQUEST['group_id'] );
  55.         // dont try and fool me
  56.         if (!empty($groupData)){
  57.             $groupName = $groupData['group_name'];
  58.             $rss->title = $groupName." Group at ".$gBitSystem->getConfig( 'site_title' );
  59.             $listHash['group_id'] = $_REQUEST['group_id'];
  60.         }
  61.     } else if( !empty( $_REQUEST['role_id'] ) ) {
  62.         require_once( USERS_PKG_PATH . 'RolePermUser.php' );
  63.         $permUser = new BitPermUser();
  64.         $roleData = $permUser->getRoleInfo( $_REQUEST['role_id'] );
  65.         // dont try and fool me
  66.         if (!empty($roleData)){
  67.             $roleName = $roleData['role_name'];
  68.             $rss->title = $roleName." Role at ".$gBitSystem->getConfig( 'site_title' );
  69.             $listHash['role_id'] = $_REQUEST['role_id'];
  70.         }
  71.     }
  72.  
  73.     if( !empty( $_REQUEST['blog_id'] ) ) {
  74.         $listHash['blog_id'] = $_REQUEST['blog_id'];
  75.         $gBlog = new BitBlog( $_REQUEST['blog_id'] );
  76.         $gBlog->load();
  77.         if( isset($gBlog->mContentId) ) {
  78.             // adjust feed title to blog title
  79.             $rss->title = $gBlog->getTitle()." at ".$gBitSystem->getConfig( 'site_title' );
  80.             if (isset($userName)){
  81.                 $rss->title = $userName."'s Posts in ".$rss->title;
  82.             }
  83.             $rss->description = $gBlog->parseData();
  84.         }
  85.     }
  86.     $feeds = $blogPost->getList( $listHash );
  87.  
  88.     // set the rss link
  89.     $rss->link = 'http://'.$_SERVER['HTTP_HOST'].BLOGS_PKG_URL.( !empty( $_REQUEST['blog_id'] ) ? "?blog_id=".$_REQUEST['blog_id'] : "" );
  90.     // get all the data ready for the feed creator
  91.     foreach( $feeds['data'] as $feed ) {
  92.         $item = new FeedItem();
  93.         $item->title = BitBlogPost::getTitleFromHash( $feed );
  94.         $item->link = BIT_BASE_URI.BitBlogPost::getDisplayUrlFromHash( NULL, $feed );
  95.         $item->description = $feed['parsed'];
  96.  
  97.         $item->date = ( int )$feed['last_modified'];
  98.         $item->source = 'http://'.$_SERVER['HTTP_HOST'].BIT_ROOT_URL;
  99.         $item->author = $gBitUser->getDisplayName( FALSE, $feed );
  100.  
  101.         $item->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 50000 );
  102.         $item->descriptionHtmlSyndicated = TRUE;
  103.  
  104.         // pass the item on to the rss feed creator
  105.         $rss->addItem( $item );
  106.     }
  107.  
  108.     // finally we are ready to serve the data
  109.     echo $rss->saveFeed( $rss_version_name, $cacheFile );
  110. }
  111. ?>

Documentation generated on Wed, 29 Jul 2015 13:56:12 +0000 by phpDocumentor 1.5.0-lsces