diff options
| author | Hash9 <hash9@users.sourceforge.net> | 2006-07-21 23:58:45 +0000 |
|---|---|---|
| committer | Hash9 <hash9@users.sourceforge.net> | 2006-07-21 23:58:45 +0000 |
| commit | 3ec6674d5552ede082e26634a73a2ef15dc7c8b1 (patch) | |
| tree | 966ef5f1e1684d546245bb819c1b67832ee81c0a /bitboards_rss.php | |
| parent | 58677f0ca02b26bfff031dd8152a90e1b0e2d28c (diff) | |
| download | boards-3ec6674d5552ede082e26634a73a2ef15dc7c8b1.tar.gz boards-3ec6674d5552ede082e26634a73a2ef15dc7c8b1.tar.bz2 boards-3ec6674d5552ede082e26634a73a2ef15dc7c8b1.zip | |
Add RSS feeds of boards, Topic reply display, Topic reply notification, Locked threads (the threads are now actually locked)
Diffstat (limited to 'bitboards_rss.php')
| -rw-r--r-- | bitboards_rss.php | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/bitboards_rss.php b/bitboards_rss.php new file mode 100644 index 0000000..1832923 --- /dev/null +++ b/bitboards_rss.php @@ -0,0 +1,99 @@ +<?php +/** + * @version $Header: /cvsroot/bitweaver/_bit_bitboards/bitboards_rss.php,v 1.3 2006/05/04 18:43:22 squareing Exp $ + * @package wiki + * @subpackage functions + */ + +/** + * Initialization + */ +require_once( "../bit_setup_inc.php" ); +require_once( RSS_PKG_PATH."rss_inc.php" ); +require_once( BITBOARDS_PKG_PATH."BitBoard.php" ); +require_once( BITBOARDS_PKG_PATH."BitBoardTopic.php" ); +require_once( BITBOARDS_PKG_PATH."BitBoardForum.php" ); + +$gBitSystem->verifyPackage( 'bitboards' ); +$gBitSystem->verifyPackage( 'rss' ); + +if(!empty($_REQUEST['u'])) { + $gBitUser->login($_REQUEST['u'],$_REQUEST['p']); +} + +$board = new BitBoard($_REQUEST['b']); +$board->load(); +$board->parseData(); + +$rss->title = $board->mInfo['title']." Feed"; +if ($gBitUser->isRegistered()) { + $rss->title = $rss->title. " (".$gBitUser->getDisplayName().")"; +} + +$rss->description = $board->mInfo['parsed_data']; +$rss->link = 'http://'.$_SERVER['HTTP_HOST'].$board->getDisplayUrl(); + +// check if we want to use the cache file +$cacheFile = TEMP_PKG_PATH.RSS_PKG_NAME.'/'.BITBOARDS_PKG_NAME.'_'.$version.'.xml'; +$rss->useCached( $cacheFile ); // use cached version if age < 1 hour + +$topic = new BitBoardTopic(); +$pParamHash = array(); +$pParamHash['b'] =$_REQUEST['b']; +$pParamHash['find'] =''; +//TODO allow proper sort order +$pParamHash['sort_mode'] = "llc_last_modified_desc"; +$max_records = $gBitSystem->getConfig( 'bitboards_rss_max_records', 10 ); +$pParamHash['offset'] = 0; +$feeds = $topic->getList( $pParamHash ); + +// get all the data ready for the feed creator +foreach( $feeds as $feed ) { + /* + echo "<pre>"; + var_dump($feed); + //*/ + $item = new FeedItem(); + $item->title = $feed['title']; + if ($gBitUser->isRegistered()) { + if (!empty($feed['track']['on'])&&$feed['track']['mod']) { + $item->title = "[NEW] " .$item->title; + } + } + if ($feed['th_sticky']) { + $item->title = "[!] " .$item->title; + } + if ($feed['th_locked']) { + $item->title = "[#] " .$item->title; + } + $item->link = 'http://'.$_SERVER['HTTP_HOST'].$feed['url']; + $data = BitBoardForum::loadContent($feed['llc_content_id']); + + $item->description = $data['data']; + + //TODO allow proper sort order + //$item->date = ( int )$feed['event_date']; + + $item->date = ( int )$feed['llc_last_modified']; + $item->source = 'http://'.$_SERVER['HTTP_HOST'].BIT_ROOT_URL; + + $user = new BitUser($feed['llc_user_id']); + $user->load(); + + $item->author = $user->getDisplayName();//$gBitUser->getDisplayName( FALSE, array( 'user_id' => $feed['modifier_user_id'] ) ); + $item->authorEmail = $user->mInfo['email']; + + $item->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 1000 ); + $item->descriptionHtmlSyndicated = FALSE; + /* + var_dump($item); + echo "</pre>"; + die(); + //*/ + // pass the item on to the rss feed creator + $rss->addItem( $item ); +} + +// finally we are ready to serve the data +echo $rss->saveFeed( $rss_version_name, $cacheFile ); +?> |
