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

Source for file wiki_rss.php

Documentation is available at wiki_rss.php

  1. <?php
  2. /**
  3.  * @package wiki
  4.  * @subpackage functions
  5.  */
  6.  
  7. /**
  8.  * Initialization
  9.  */
  10. require_once( "../kernel/setup_inc.php" );
  11.  
  12. $gBitSystem->verifyPackage( 'wiki' );
  13. $gBitSystem->verifyPackage( 'rss' );
  14. $gBitSystem->verifyFeature( 'wiki_rss' );
  15.  
  16. require_once( WIKI_PKG_PATH."BitPage.php" );
  17. require_once( RSS_PKG_PATH."rss_inc.php" );
  18.  
  19. $rss->title = $gBitSystem->getConfig( 'wiki_rss_title', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'Wiki' ) );
  20. $rss->description = $gBitSystem->getConfig( 'wiki_rss_description', $gBitSystem->getConfig( 'site_title' ).' - '.tra( 'RSS Feed' ) );
  21.  
  22. // check permission to view wiki pages
  23. if( !$gBitUser->hasPermission( 'p_wiki_view_page' ) ) {
  24.     require_once( RSS_PKG_PATH."rss_error.php" );
  25. } else {
  26.     // check if we want to use the cache file
  27.     $cacheFile = TEMP_PKG_PATH.RSS_PKG_NAME.'/'.WIKI_PKG_NAME.'/'.$cacheFileTail;
  28.     $rss->useCached( $rss_version_name, $cacheFile, $gBitSystem->getConfig( 'rssfeed_cache_time' ));
  29.  
  30.     $wiki = new BitPage();
  31.     $listHash = array(
  32.         'max_records' => $gBitSystem->getConfig( 'wiki_rss_max_records', 10 ),
  33.         'sort_mode' => 'last_modified_desc',
  34.         'get_data' => TRUE,
  35.     );
  36.     $feeds = $wiki->getList( $listHash );
  37.  
  38.     // set the rss link
  39.     $rss->link = 'http://'.$_SERVER['HTTP_HOST'].WIKI_PKG_URL;
  40.  
  41.     // get all the data ready for the feed creator
  42.     foreach( $feeds as $feed ) {
  43.         $item = new FeedItem();
  44.         $item->title = $feed['title'];
  45.         $item->link = BIT_BASE_URI.$wiki->getDisplayUrl( $feed['title'] );
  46.         $item->description = $wiki->parseData( $feed );
  47.  
  48.         $item->date = ( int )$feed['last_modified'];
  49.         $item->source = 'http://'.$_SERVER['HTTP_HOST'].BIT_ROOT_URL;
  50.         $item->author = $gBitUser->getDisplayName( FALSE, array( 'real_name' => $feed['modifier_real_name'], 'login' => $feed['modifier_user'] ) );
  51.  
  52.         $item->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 5000 );
  53.         $item->descriptionHtmlSyndicated = FALSE;
  54.  
  55.         // pass the item on to the rss feed creator
  56.         $rss->addItem( $item );
  57.     }
  58.  
  59.     // finally we are ready to serve the data
  60.     echo $rss->saveFeed( $rss_version_name, $cacheFile );
  61. }
  62. ?>

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