1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 03:40:37 +02:00

Updated e_rss.php to v2.x spec.

This commit is contained in:
Cameron
2013-06-18 20:21:39 -07:00
parent dbf987298d
commit 34f0eeb409
5 changed files with 128 additions and 21 deletions

View File

@@ -1,8 +1,88 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2008-2013 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* RSS chatbox feed addon
*/
if (!defined('e107_INIT')) { exit; }
// v2.x Standard
class chatbox_menu_rss // plugin-folder + '_rss'
{
/**
* Admin RSS Configuration
*/
function config() // XXX TODO // Have admin read this.
{
$config = array();
$config[] = array(
'name' => 'Chatbox Posts',
'url' => 'chatbox',
'topic_id' => '',
'path' => 'chatbox_menu', // known
'description' => 'this is the rss feed for the chatbox entries', // that's 'description' not 'text'
'class' => '0',
'limit' => '9'
);
return $config;
}
/**
* Compile RSS Data
* @param $parms array url, limit, id
* @return array
*/
function data($parms='')
{
$sql = e107::getDb();
$rss = array();
$i=0;
if($items = $sql->select('chatbox', "*", "cb_blocked=0 ORDER BY cb_datestamp DESC LIMIT 0,".$parms['limit']))
{
while($row = $sql->fetch())
{
$tmp = explode(".", $row['cb_nick']);
$rss[$i]['author'] = $tmp[1];
$rss[$i]['author_email'] = '';
$rss[$i]['link'] = "chatbox_menu/chat.php?".$row['cb_id'];
$rss[$i]['linkid'] = $row['cb_id'];
$rss[$i]['title'] = '';
$rss[$i]['description'] = $row['cb_message'];
$rss[$i]['category_name'] = '';
$rss[$i]['category_link'] = '';
$rss[$i]['datestamp'] = $row['cb_datestamp'];
$rss[$i]['enc_url'] = "";
$rss[$i]['enc_leng'] = "";
$rss[$i]['enc_type'] = "";
$i++;
}
}
return $rss;
}
}
/*
* XXX Left here as an example of how to convert from v1.x to v2.x
*
//##### create feed for admin, return array $eplug_rss_feed --------------------------------
$feed['name'] = 'Chatbox';
$feed['url'] = 'chatbox'; //the identifier for the rss feed url
$feed['topic_id'] = ''; //the topic_id, empty on default (to select a certain category)
@@ -41,3 +121,5 @@ if($items = $sql -> db_Select('chatbox', "*", "cb_blocked=0 ORDER BY cb_datestam
$eplug_rss_data[] = $rss;
$eplug_rss_feed[] = $feed;
*/

View File

@@ -17,7 +17,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / threads";
$feed['url'] = '6';
$feed['topic_id'] = '';
$feed['path'] = 'forum|threads';
$feed['path'] = 'forum|threads'; //FIXME
$feed['text'] = 'this is the rss feed for the forum_threads entries';
$feed['class'] = '1';
$feed['limit'] = '9';
@@ -27,7 +27,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / threads";
$feed['url'] = 'forumthreads';
$feed['topic_id'] = '';
$feed['path'] = 'forum|threads';
$feed['path'] = 'forum|threads';//FIXME
$feed['text'] = 'this is the rss feed for the forum_threads entries';
$feed['class'] = '0';
$feed['limit'] = '9';
@@ -37,7 +37,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / posts";
$feed['url'] = '7';
$feed['topic_id'] = '';
$feed['path'] = 'forum|posts';
$feed['path'] = 'forum|posts';//FIXME
$feed['text'] = 'this is the rss feed for the forum_posts entries';
$feed['class'] = '1';
$feed['limit'] = '9';
@@ -47,7 +47,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / posts";
$feed['url'] = 'forumposts';
$feed['topic_id'] = '';
$feed['path'] = 'forum|posts';
$feed['path'] = 'forum|posts';//FIXME
$feed['text'] = 'this is the rss feed for the forum_posts entries';
$feed['class'] = '0';
$feed['limit'] = '9';
@@ -57,7 +57,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / topic";
$feed['url'] = '8';
$feed['topic_id'] = '*';
$feed['path'] = 'forum|topic';
$feed['path'] = 'forum|topic';//FIXME
$feed['text'] = 'this is the rss feed for the forum_topic entries';
$feed['class'] = '1';
$feed['limit'] = '9';
@@ -67,7 +67,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / topic";
$feed['url'] = 'forumtopic';
$feed['topic_id'] = '*';
$feed['path'] = 'forum|topic';
$feed['path'] = 'forum|topic'; //FIXME
$feed['text'] = 'this is the rss feed for the forum_topic entries';
$feed['class'] = '0';
$feed['limit'] = '9';
@@ -77,7 +77,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / name";
$feed['url'] = '11';
$feed['topic_id'] = '*';
$feed['path'] = 'forum|name';
$feed['path'] = 'forum|name'; //FIXME
$feed['text'] = 'this is the rss feed for the forum_name entries';
$feed['class'] = '1';
$feed['limit'] = '9';
@@ -87,7 +87,7 @@ function get_forum_rss(){
$feed['name'] = "Forum / name";
$feed['url'] = 'forumname';
$feed['topic_id'] = '*';
$feed['path'] = 'forum|name';
$feed['path'] = 'forum|name'; //FIXME
$feed['text'] = 'this is the rss feed for the forum_name entries';
$feed['class'] = '0';
$feed['limit'] = '9';
@@ -101,7 +101,7 @@ function get_forum_rss(){
//##### create rss data, return as array $eplug_rss_data -----------------------------------
$sqlrss = new db;
switch($this->parm){
switch($this->parm){ //FIXME use v2.x standard and replace this with $parm['url'] check.
case threads:
case 6:

View File

@@ -74,7 +74,7 @@ class rss_admin extends e_admin_dispatcher
//TODO - Use this .. .
class rss_ui extends e_admin_ui
{
@@ -391,7 +391,7 @@ if(!isset($RSS_ADMIN_IMPORT_HEADER))
<tr>
<th>".RSS_LAN_ADMIN_16."</td>
<th>".RSS_LAN_ADMIN_3."</td>
<th>".RSS_LAN_ADMIN_4."</td>
<th>".LAN_NAME."</td>
<th>".RSS_LAN_ADMIN_5."</td>
<th>".RSS_LAN_ADMIN_12."</td>
</tr>";
@@ -636,14 +636,30 @@ class rss
$plugin_feedlist = array();
foreach($pref['e_rss_list'] as $val)
{
$eplug_rss_feed = array();
if (is_readable(e_PLUGIN.$val."/e_rss.php"))
{
require_once(e_PLUGIN.$val."/e_rss.php");
$plugin_feedlist = $eplug_rss_feed;
$className = $val."_rss";
$data = false;
if(!$data = e107::callMethod($className,'config'))
{
$data = $eplug_rss_feed;
}
foreach($data as $v)
{
array_push($plugin_feedlist,$v);
}
}
}
$feedlist = array_merge($feedlist, $plugin_feedlist);
// print_a($feedlist);
$render=FALSE;
$i=0;
@@ -654,7 +670,7 @@ class rss
$feed['url'] = $tp -> toDB($feed['url']);
// Check if feed is not yet present
if(!$sql -> db_Select("rss", "*", "rss_path='".$feed['path']."' AND rss_url='".$feed['url']."' AND rss_topicid='".$feed['topic_id']."' "))
if(!$sql->select("rss", "*", "rss_path='".$feed['path']."' AND rss_url='".$feed['url']."' AND rss_topicid='".$feed['topic_id']."' "))
{
$render=TRUE;
$text .= $tp -> parseTemplate($RSS_ADMIN_IMPORT_TABLE, FALSE, $rss_shortcodes);

View File

@@ -135,7 +135,7 @@ else
if($rss = new rssCreate($content_type, $rss_type, $topic_id, $row))
{
$rss_title = ($rss->contentType ? $rss->contentType : ucfirst($content_type));
$rss->buildRss ($rss_title);
$rss->buildRss($rss_title);
}
else
{
@@ -181,11 +181,11 @@ class rssCreate
{
$path = e_PLUGIN.$row['rss_path'].'/e_rss.php';
}
if(strpos($row['rss_path'],'|')!==FALSE)
if(strpos($row['rss_path'],'|')!==FALSE) //FIXME remove this check completely.
{
$tmp = explode("|", $row['rss_path']);
$path = e_PLUGIN.$tmp[0]."/e_rss.php";
$this -> parm = $tmp[1]; // Parm is used in e_rss.php to define which feed you need to prepare
$this->parm = $tmp[1]; // FIXME @Deprecated - use $parm['url'] instead in data() method within e_rss.php. Parm is used in e_rss.php to define which feed you need to prepare
}
switch ($content_type)
@@ -324,6 +324,16 @@ class rssCreate
if (is_readable($path))
{
require_once($path);
$className = basename(dirname($path)).'_rss';
// v2.x standard
if($data = e107::callMethod($className,'data', array('url' => $content_type, 'id' => $this->topicid, 'limit' => $this->limit)))
{
$eplug_rss_data = array(0 => $data);
unset($data);
}
foreach($eplug_rss_data as $key=>$rs)
{
foreach($rs as $k=>$row)
@@ -498,9 +508,8 @@ class rssCreate
$link = (e_LANQRY) ? str_replace("?","?".e_LANQRY,$value['link']) : $value['link'];
$catlink = (e_LANQRY) ? str_replace("?","?".e_LANQRY,$value['category_link']) : $value['category_link'];
echo "
<item>
<title>".$tp->toRss($value['title'])."</title>\n";
echo "<item>\n";
echo "<title>".$tp->toRss($value['title'])."</title>\n";
if($link)
{

View File

@@ -187,7 +187,7 @@ SC_END
SC_BEGIN RSS_ADMIN_IMPORT_TEXT
global $feed;
return $feed['text'];
return ($feed['description']) ? $feed['description'] : $feed['text'];
SC_END
SC_BEGIN RSS_ADMIN_IMPORT_URL