summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlsces <lester@lsces.co.uk>2026-03-25 10:29:42 +0000
committerlsces <lester@lsces.co.uk>2026-03-25 10:29:42 +0000
commitc58edcbd7534ea1b7dfff7e140842d5221f5e046 (patch)
tree62706033864a845c4064a4970fe15f86f53a2b42
parent9749c3588bdd8bc8520f7ebf23c7095c1c5be28e (diff)
downloadrss-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.php112
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