diff options
| author | lsces <lester@lsces.co.uk> | 2026-03-25 10:29:42 +0000 |
|---|---|---|
| committer | lsces <lester@lsces.co.uk> | 2026-03-25 10:29:42 +0000 |
| commit | c58edcbd7534ea1b7dfff7e140842d5221f5e046 (patch) | |
| tree | 62706033864a845c4064a4970fe15f86f53a2b42 | |
| parent | 9749c3588bdd8bc8520f7ebf23c7095c1c5be28e (diff) | |
| download | rss-c58edcbd7534ea1b7dfff7e140842d5221f5e046.tar.gz rss-c58edcbd7534ea1b7dfff7e140842d5221f5e046.tar.bz2 rss-c58edcbd7534ea1b7dfff7e140842d5221f5e046.zip | |
This needs expanding to cover new formats and perhaps retire RSS0.91 now
| -rw-r--r-- | includes/rss_inc.php | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/includes/rss_inc.php b/includes/rss_inc.php new file mode 100644 index 0000000..3ec2151 --- /dev/null +++ b/includes/rss_inc.php @@ -0,0 +1,112 @@ +<?php +/** + * @version $Header$ + * @package rss + * @subpackage functions + */ + +/** + * Initialization + */ +use Bitweaver\KernelTools; +use Bitweaver\Rss\FeedImage; +use Bitweaver\Users\BaseAuth; +require_once( USERS_PKG_INCLUDE_PATH."users_lib.php" ); + +// make sure the feeds cache dir is available +if( !is_dir( TEMP_PKG_PATH.'rss' ) ) { + KernelTools::mkdir_p( TEMP_PKG_PATH.'rss' ); +} + +// if http auth is required run it before we start anything else +if( $gBitSystem->getConfig( 'rssfeed_httpauth' ) && + !empty($_REQUEST['httpauth']) && + !$gBitUser->isRegistered() ){ + Bitweaver\Users\users_httpauth(); +} + +// initiate feed creator class +$rss = new \Bitweaver\Rss\UniversalFeedCreator(); + +$rss->copyright = $gBitSystem->getConfig( 'rssfeed_copyright' ); +$rss->editor = $gBitSystem->getConfig( 'rssfeed_editor' ); +$rss->webmaster = $gBitSystem->getConfig( 'rssfeed_webmaster' ); +$rss->language = $gBitSystem->getConfig( 'rssfeed_language', 'en-us' ); +$rss->cssStyleSheet = $gBitSystem->getConfig( 'rssfeed_css_url' ); +$rss->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 500 ); +$rss->descriptionHtmlSyndicated = TRUE; + +$root = empty( $_REQUEST['uri_mode'] ) ? BIT_BASE_URI.BIT_ROOT_URL : BIT_ROOT_URI; +$rss->link = $root; +$rss->syndicationURL = trim( $root, "/" ).$_SERVER['SCRIPT_NAME']; + +// feed image +if( $gBitSystem->isFeatureActive( 'rssfeed_image_url' ) ) { + $image->descriptionTruncSize = $gBitSystem->getConfig( 'rssfeed_truncate', 5000 ); + $image->descriptionHtmlSyndicated = true; + + $image = new FeedImage(); + $image->title = $gBitSystem->getConfig( 'site_title' ); + $image->url = $gBitSystem->getConfig( 'rssfeed_image_url' ); + $image->link = $root; + $image->description = KernelTools::tra( 'Feed provided by' ).': '.$gBitSystem->getConfig( 'site_title' ).' '.KernelTools::tra( 'Click to visit.' ); + $rss->image = $image; +} + +// here we work out what type of feed were going to feed +$version = ( empty( $_REQUEST['version'] ) ) ? $gBitSystem->getConfig( "rssfeed_default_version", "RSS0.91" ) : $_REQUEST['version']; + +$rss_version_name = $version; +switch( $version ) { + case "0": + case "rss091": + $rss_version_name = "RSS0.91"; + break; + case "1": + case "rss10": + $rss_version_name = "RSS1.0"; + break; + case "2": + case "rss20": + $rss_version_name = "RSS2.0"; + break; + case "3": + case "pie01": + $rss_version_name = "PIE0.1"; + break; + case "4": + case "mbox": + $rss_version_name = "MBOX"; + break; + case "5": + case "atom": + $rss_version_name = "ATOM"; + break; + case "6": + case "atom03": + $rss_version_name = "ATOM0.3"; + break; + case "7": + case "opml": + $rss_version_name = "OPML"; + break; + case "8": + case "html": + $rss_version_name = "HTML"; + break; + case "9": + case "js": + $rss_version_name = "JS"; + break; + default: + $rss_version_name = "RSS0.91"; + break; +} + +if ( isset( $gBitUser->mGroups ) ) { + ksort( $gBitUser->mGroups ); + $cacheFileTail = 'p'.implode( '.', array_keys( $gBitUser->mGroups ) ).'_'.$rss_version_name.'.xml'; +} else { + ksort( $gBitUser->mRoles ); + $cacheFileTail = 'p'.implode( '.', array_keys( $gBitUser->mRoles ) ).'_'.$rss_version_name.'.xml'; +}
\ No newline at end of file |
