diff --git a/plugins/rssplugin/KTrss.inc.php b/plugins/rssplugin/KTrss.inc.php
index dddea9d..d8ca6a3 100644
--- a/plugins/rssplugin/KTrss.inc.php
+++ b/plugins/rssplugin/KTrss.inc.php
@@ -84,6 +84,27 @@ class KTrss{
return $response;
}
+ // Get the data for the document or folder
+ function getExternalInternalFeed($sFeed, $iUserId){
+ $aRss = array();
+ $pos = strpos($sFeed, 'docId');
+
+ if($pos === false){
+ $pos = strpos($sFeed, 'folderId');
+ $folderId = substr($sFeed, $pos+9);
+ $aRss[] = KTrss::getOneFolder($folderId, $iUserId);
+ }else{
+ $docId = substr($sFeed, $pos+6);
+ $aRss[] = KTrss::getOneDocument($docId, $iUserId);
+ }
+
+ if($aRss){
+ $internalFeed = KTrss::arrayToXML($aRss);
+ $response = rss2arrayBlock($internalFeed);
+ }
+ return $response;
+ }
+
// Get list of document subscriptions
function getDocumentList($iUserId){
$sQuery = "SELECT document_id as id FROM document_subscriptions WHERE user_id = ?";
diff --git a/plugins/rssplugin/loadFeed.inc.php b/plugins/rssplugin/loadFeed.inc.php
index 0153137..ec20e6d 100644
--- a/plugins/rssplugin/loadFeed.inc.php
+++ b/plugins/rssplugin/loadFeed.inc.php
@@ -5,49 +5,69 @@
* KnowledgeTree Open Source Edition
* Document Management Made Simple
* Copyright (C) 2004 - 2007 The Jam Warehouse Software (Pty) Limited
- *
+ *
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 3 as published by the
* Free Software Foundation.
- *
+ *
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
- *
+ *
* You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place,
* Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com.
- *
+ *
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU General Public License version 3.
- *
+ *
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
- * KnowledgeTree" logo and retain the original copyright notice. If the display of the
+ * KnowledgeTree" logo and retain the original copyright notice. If the display of the
* logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices
- * must display the words "Powered by KnowledgeTree" and retain the original
- * copyright notice.
+ * must display the words "Powered by KnowledgeTree" and retain the original
+ * copyright notice.
* Contributor( s): ______________________________________
*
*/
require_once('../../config/dmsDefaults.php');
require_once(KT_DIR. '/plugins/rssplugin/rss2array.inc.php');
require_once(KT_DIR. '/plugins/rssplugin/KTrss.inc.php');
-
+
$feed = $_GET["feed"];
$user = $_GET["user"];
-
+
+ // URL must start with http:// - change it if it starts with feed://
+ if(preg_match("/^feed:\/\/([^\/]+)(.*)$/", $feed, $matches)){
+ $feed = preg_replace("/^feed:\/\//", "http://", $feed);
+ }
+
// Check if the feed matches a url
if(!preg_match("/^http:\/\/([^\/]+)(.*)$/", $feed, $matches)){
// If not, it is an internal feed
$aRSSArray = KTrss::getInternalFeed($user);
}else{
// If it is a url, it is an external feed
- $aRSSArray = rss2array($feed);
+ // However, sometimes internal documents get added as external feeds
+ // Check that the url isn't an internal one.
+ global $default;
+ $rootUrl = $default->rootUrl;
+ $bSSL = $default->sslEnabled;
+
+ $sProtocol = ($bSSL) ? 'https' : 'http';
+ $sBaseUrl = $sProtocol.'://'.$_SERVER['HTTP_HOST'].$rootUrl;
+
+ $sInternal = $sBaseUrl.'/rss.php';
+ if(!(strpos($feed, $sInternal) === FALSE)){
+ // Feed is internal
+ $aRSSArray = KTrss::getExternalInternalFeed($feed, $user);
+ }else{
+ $aRSSArray = rss2array($feed);
+ }
}
if(count($aRSSArray[errors]) > 0){
for($i=0;$i
| ";
}
$response .= "
";
-
+
echo $response;
-?>
+?>
\ No newline at end of file