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

Source for file events_rss.php

Documentation is available at events_rss.php

  1. <?php
  2. /**
  3.  * @version $Header$
  4.  * @package events
  5.  * @subpackage functions
  6.  */
  7.  
  8. /**
  9.  * Initialization
  10.  */
  11. require_once( "../kernel/setup_inc.php" );
  12.  
  13. $gBitSystem->verifyPackage( 'rss' );
  14. $gBitSystem->verifyPackage( 'events' );
  15. $gBitSystem->verifyFeature( 'events_rss' );
  16.  
  17. require_once( EVENTS_PKG_PATH.'BitEvents.php' );
  18. require_once( RSS_PKG_PATH."rss_inc.php" );
  19.  
  20. // default feed info
  21. $rss->title = $gBitSystem->getConfig( 'events_rss_title', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'Events' ) );
  22. $rss->description = $gBitSystem->getConfig( 'events_rss_description', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'RSS Feed' ) );
  23.  
  24. // check permission to view wiki pages
  25. if( !$gBitUser->hasPermission( 'p_events_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.'/'.EVENTS_PKG_NAME.'/'.( !empty( $_REQUEST['user_id'] ) ? "_".$_REQUEST['user_id'] : "" ).( !empty( $_REQUEST['event_id'] ) ? "_".$_REQUEST['event_id'] : "" ).$cacheFileTail;
  30.     $rss->useCached( $rss_version_name, $cacheFile, $gBitSystem->getConfig( 'rssfeed_cache_time' ));
  31.  
  32.     $event = new BitEvents();
  33.     $listHash['sort_mode'] = 'last_modified_desc';
  34.     $listHash['max_records'] = $gBitSystem->getConfig( 'events_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.         $eventUser = new BitUser();
  44.         $userData = $eventUser->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.     }
  52.  
  53.     if( !empty( $_REQUEST['event_id'] ) ) {
  54.         $listHash['event_id'] = $_REQUEST['event_id'];
  55.         $gEvent = new BitEvents( $_REQUEST['event_id'] );
  56.         $gEvent->load();
  57.         if( isset($gEvent->mContentId) ) {
  58.             // adjust feed title to event title
  59.             $rss->title = $gEvent->getTitle()." at ".$gBitSystem->getConfig( 'site_title' );
  60.             if (isset($userName)){
  61.                 $rss->title = $userName."'s Events in ".$rss->title;
  62.             }
  63.             $rss->description = $gEvent->parseData();
  64.         }
  65.     }
  66.     $feeds = $event->getList( $listHash );
  67.  
  68.     // set the rss link
  69.     $rss->link = 'http://'.$_SERVER['HTTP_HOST'].EVENTS_PKG_URL.( !empty( $_REQUEST['event_id'] ) ? "?event_id=".$_REQUEST['event_id'] : "" );
  70.     // get all the data ready for the feed creator
  71.     foreach( $feeds as $feed ) {
  72.         $item = new FeedItem();
  73.         $item->title = $event->getTitleFromHash( $feed );
  74.         $item->link = BIT_BASE_URI.$event->getDisplayUrl( $feed['content_id'] );
  75.         $item->description = $feed['parsed'];
  76.  
  77.         $item->date = ( int )$feed['last_modified'];
  78.         $item->source = 'http://'.$_SERVER['HTTP_HOST'].BIT_ROOT_URL;
  79.         $item->author = $gBitUser->getDisplayName( FALSE, $feed );
  80.  
  81.         $item->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 50000 );
  82.         $item->descriptionHtmlSyndicated = TRUE;
  83.  
  84.         // pass the item on to the rss feed creator
  85.         $rss->addItem( $item );
  86.     }
  87.  
  88.     // finally we are ready to serve the data
  89.     echo $rss->saveFeed( $rss_version_name, $cacheFile );
  90. }
  91. ?>

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