diff --git a/e107_admin/administrator.php b/e107_admin/administrator.php
index c3938426c..f84db111b 100644
--- a/e107_admin/administrator.php
+++ b/e107_admin/administrator.php
@@ -144,7 +144,7 @@ function show_admins()
";
- while ($row = $sql->db_Fetch())
+ while ($row = $sql->fetch())
{
//$permtxt = "";
$text .= "
@@ -196,6 +196,8 @@ require_once("footer.php");
*/
function headerjs()
{
+ return '';
+/*
require_once(e_HANDLER.'js_helper.php');
$ret = "
";
- return $ret;
+ return $ret;*/
}
?>
\ No newline at end of file
diff --git a/e107_handlers/e_parse_class.php b/e107_handlers/e_parse_class.php
index a7a1e14e6..9a39a0558 100644
--- a/e107_handlers/e_parse_class.php
+++ b/e107_handlers/e_parse_class.php
@@ -2961,9 +2961,92 @@ class e_parser
return "
";
- }
+ }
+ /**
+ * @param $file
+ * @param array $parm legacy|w|h
+ * @return string
+ * @example $tp->toImage('welcome.png', array('legacy'=>{e_IMAGE}newspost_images/','w'=>200));
+ */
+ public function toImage($file, $parm=array())
+ {
+
+ if(!vartrue($file))
+ {
+ return '';
+ }
+
+ $file = trim($file);
+
+ $ext = pathinfo($file, PATHINFO_EXTENSION);
+
+ if($ext != 'jpg' && $ext !='gif' && $ext != 'png') // Bootstrap or Font-Awesome.
+ {
+ return '';
+ }
+
+ $tp = e107::getParser();
+
+ if(!empty($parm['w']))
+ {
+ $tp->setThumbSize($parm['w']);
+ }
+
+ if(!empty($parm['h']))
+ {
+ $tp->setThumbSize(null, $parm['h']);
+ }
+
+
+ if(strpos($file,'e_MEDIA')!==false || strpos($file,'e_THEME')!==false) //v2.x path.
+ {
+ $path = $tp->thumbUrl($file,null,null,true);
+ }
+ elseif($file[0] == '{') // Legacy v1.x path. Example: {e_WHEREEVER}
+ {
+ $path = $tp->replaceConstants($file,'full');
+ }
+ elseif(!empty($parm['legacy'])) // Search legacy path for image.
+ {
+
+ $legacyPath = $parm['legacy'].$file;
+ $filePath = $tp->replaceConstants($legacyPath,'rel');
+
+ if(is_readable($filePath))
+ {
+ $path = $tp->replaceConstants($legacyPath,'full');
+ }
+ else
+ {
+ $log = e107::getAdminLog();
+ $log->addDebug('Broken Icon Path: '.$legacyPath."\n".print_r(debug_backtrace(null,2), true), false)->save('IMALAN_00');
+ }
+
+ }
+ else // usually http://....
+ {
+ $path = $file;
+ }
+
+
+ if(empty($style))
+ {
+ $insertStyle = '';
+ }
+ else
+ {
+ $insertStyle = "style='";
+
+ }
+
+
+ $alt = (!empty($parm['alt'])) ? $tp->toAttribute($parm['alt']) : basename($path);
+
+ return "
";
+
+ }
/**
* Check if a file is an video or not.
@@ -2978,6 +3061,18 @@ class e_parser
}
+ /**
+ * Check if a file is an image or not.
+ * @param $file string
+ * @return boolean
+ */
+ function isImage($file)
+ {
+ $ext = pathinfo($file,PATHINFO_EXTENSION);
+
+ return ($ext == 'jpg' || $ext == 'png' || $ext == 'gif' || $ext == 'jpeg') ? true : false;
+ }
+
/**
* Display a Video file.
@@ -3070,7 +3165,7 @@ class e_parser
return '
diff --git a/e107_plugins/news/e_rss.php b/e107_plugins/news/e_rss.php
new file mode 100644
index 000000000..a99415318
--- /dev/null
+++ b/e107_plugins/news/e_rss.php
@@ -0,0 +1,359 @@
+ ADLAN_0,
+ 'url' => 'news', // The identifier and plugin-path location for the rss feed url
+ 'topic_id' => '', // The topic_id, empty on default (to select a certain category)
+ 'description' => RSS_PLUGIN_LAN_7, // that's 'description' not 'text'
+ 'class' => '0',
+ 'limit' => '9'
+ );
+
+ // News categories
+ $sqli = e107::getDb();
+ if($sqli ->select("news_category", "*","category_id!='' ORDER BY category_name "))
+ {
+ while($rowi = $sqli ->fetch())
+ {
+
+ $config[] = array(
+ 'name' => ADLAN_0.' > '.$rowi['category_name'],
+ 'url' => 'news',
+ 'topic_id' => $rowi['category_id'],
+ 'description' => RSS_PLUGIN_LAN_10.' '.$rowi['category_name'], // that's 'description' not 'text'
+ 'class' => '0',
+ 'limit' => '9'
+ );
+
+ }
+ }
+
+ return $config;
+ }
+
+
+ /**
+ * Generate the Feed Data
+ * @param string $parms
+ * @return array
+ */
+ function data($parms='')
+ {
+
+ $pref = e107::getConfig()->getPref();
+ $tp = e107::getParser();
+
+ $this->showImages = vartrue($pref['rss_shownewsimage'],false);
+ $this->summaryDescription = vartrue($pref['rss_summarydiz'],false);
+
+ $render = ($pref['rss_othernews'] != 1) ? "AND (FIND_IN_SET('0', n.news_render_type) OR FIND_IN_SET(1, n.news_render_type))" : "";
+ $nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
+ $topic = (!empty($parms['id']) && is_numeric($parms['id'])) ? " AND news_category = ".intval($parms['id']) : '';
+ $limit = vartrue($parms['limit'],10);
+
+ $rssQuery = "SELECT n.*, u.user_id, u.user_name, u.user_email, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ LEFT JOIN #user AS u ON n.news_author = u.user_id
+ LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ WHERE n.news_class IN (".USERCLASS_LIST.") AND NOT (n.news_class REGEXP ".$nobody_regexp.") AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().") {$render} {$topic} ORDER BY n.news_datestamp DESC LIMIT 0,".$limit;
+
+ $sql = e107::getDb();
+
+
+ $sql->gen($rssQuery);
+ $tmp = $sql->db_getList();
+
+ $rss = array();
+ $i=0;
+
+ foreach($tmp as $value)
+ {
+ $rss[$i]['title'] = $value['news_title'];
+ $rss[$i]['link'] = e107::getUrl()->create('news/view/item', $value, 'full=1');
+ $rss[$i]['author'] = $value['user_name'];
+ $rss[$i]['author_email'] = $value['user_email'];
+ $rss[$i]['category_name'] = $tp->toHTML($value['category_name'],TRUE,'defs');
+ $rss[$i]['category_link'] = SITEURL."news.php?cat.".$value['news_category']; //TODO SEFURL.
+ $rss[$i]['pubdate'] = $value['news_datestamp'];
+ $rss[$i]['description'] = $this->getDescription($value);
+
+ if($value['news_allow_comments'] && $pref['comments_disabled'] != 1)
+ {
+ $rss[$i]['comment'] = "http://".$_SERVER['HTTP_HOST'].e_HTTP."comment.php?comment.news.".$value['news_id'];
+ }
+
+ $rss[$i]['media'] = $this->getMedia($value);
+
+ $i++;
+ }
+
+ return $rss;
+
+ }
+
+
+
+
+ function getDescription($row)
+ {
+
+ $tp = e107::getParser();
+
+ if($row['news_summary'] && $this->summaryDescription == true)
+ {
+ $text = $row['news_summary'];
+ }
+ else
+ {
+ $text= ($row['news_body']."
".$row['news_extended']);
+ }
+
+ if($this->showImages == true && !empty($row['news_thumbnail']))
+ {
+ $tmp = explode(",", $row['news_thumbnail']);
+
+ foreach($tmp as $img)
+ {
+
+ $text .= "
\n";
+ $text .= $tp->toImage($img, array('alt'=>basename($img), 'w'=>800,'h'=>600, 'legacy'=> "{e_IMAGE}newspost_images/"));
+ }
+
+ }
+
+ return $text;
+
+ }
+
+
+
+
+
+
+
+ function getMedia($row)
+ {
+ $tp = e107::getParser();
+
+ if(empty($this->showImages) || empty($row['news_thumbnail']))
+ {
+ return '';
+ }
+
+ $tmp = explode(",", $row['news_thumbnail']);
+
+ $ret = array();
+
+ foreach($tmp as $v)
+ {
+
+ if($tp->isImage($v))
+ {
+ $ret[] = array(
+ 'media:content' => array(
+ 'url'=>$tp->thumbUrl($v,array('w'=>800), true, true),
+ 'medium'=>'image',
+ 'value' => array('media:title'=> array('type'=>'html', 'value'=>basename($v)))
+
+ )
+ );
+ }
+ elseif($tp->isVideo($v))
+ {
+ list($code,$type) = explode(".",$v);
+
+ if($type == 'youtube')
+ {
+
+ //TODO Needs to be verified as working.
+ $ret[] = array(
+ 'media:player' => array('url'=>"http://www.youtube.com/embed/".$code, 'height'=>"560", 'width'=>"315" )
+ );
+
+ }
+ }
+ }
+
+ return $ret;
+
+
+
+ }
+
+
+
+
+ /**
+ * Compile RSS Data
+ * @param $parms array url, limit, id
+ * @return array
+ */
+ function dataChat($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;
+ }
+
+
+
+}
+
+
+
+/*
+ *
+ * if($topic_id && is_numeric($topic_id))
+ {
+ $topic = " AND news_category = ".intval($topic_id);
+ }
+ else
+ {
+ $topic = '';
+ }
+
+ $path='';
+ $render = ($pref['rss_othernews'] != 1) ? "AND (FIND_IN_SET('0', n.news_render_type) OR FIND_IN_SET(1, n.news_render_type))" : "";
+ $nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
+
+ $this -> rssQuery = "
+ SELECT n.*, u.user_id, u.user_name, u.user_email, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ LEFT JOIN #user AS u ON n.news_author = u.user_id
+ LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ WHERE n.news_class IN (".USERCLASS_LIST.") AND NOT (n.news_class REGEXP ".$nobody_regexp.") AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().") {$render} {$topic} ORDER BY n.news_datestamp DESC LIMIT 0,".$this -> limit;
+ $sql->gen($this->rssQuery);
+ $tmp = $sql->db_getList();
+ $rss = array();
+ $i=0;
+ foreach($tmp as $value)
+ {
+ $rss[$i]['title'] = $value['news_title'];
+ // $rss[$i]['link'] = "http://".$_SERVER['HTTP_HOST'].e_HTTP."news.php?item.".$value['news_id'].".".$value['news_category'];
+
+ $rss[$i]['link'] = e107::getUrl()->create('news/view/item', $value, 'full=1');
+
+ if($value['news_summary'] && $pref['rss_summarydiz'])
+ {
+ $rss[$i]['description'] = $value['news_summary'];
+ }
+ else
+ {
+ $rss[$i]['description'] = ($value['news_body']."
".$value['news_extended']);
+ }
+ $rss[$i]['author'] = $value['user_name'];
+ $rss[$i]['author_email'] = $value['user_email'];
+ // $rss[$i]['category'] = "
".$value['category_name']."";
+ $rss[$i]['category_name'] = $tp->toHTML($value['category_name'],TRUE,'defs');
+ $rss[$i]['category_link'] = SITEURL."news.php?cat.".$value['news_category']; //TODO SEFURL.
+
+ if($value['news_allow_comments'] && $pref['comments_disabled'] != 1)
+ {
+ $rss[$i]['comment'] = "http://".$_SERVER['HTTP_HOST'].e_HTTP."comment.php?comment.news.".$value['news_id'];
+ }
+ $rss[$i]['pubdate'] = $value['news_datestamp'];
+ if($pref['rss_shownewsimage'] == 1 && strlen(trim($value['news_thumbnail'])) > 0) {
+ $rss[$i]['news_thumbnail'] = $value['news_thumbnail'];
+ }
+
+ $i++;
+ }
+ *
+ *
+ *
+ *
+ * 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)
+$feed['path'] = 'chatbox_menu'; //this is the plugin path location
+$feed['text'] = 'this is the rss feed for the chatbox entries';
+$feed['class'] = '0';
+$feed['limit'] = '9';
+
+// ------------------------------------------------------------------------------------
+
+
+//##### create rss data, return as array $eplug_rss_data -----------------------------------
+$rss = array();
+if($items = $sql -> db_Select('chatbox', "*", "cb_blocked=0 ORDER BY cb_datestamp DESC LIMIT 0,".$this -> limit)){
+ $i=0;
+ while($rowrss = $sql -> db_Fetch()){
+ $tmp = explode(".", $rowrss['cb_nick']);
+ $rss[$i]['author'] = $tmp[1];
+ $rss[$i]['author_email'] = '';
+ $rss[$i]['link'] = $e107->base_path.$PLUGINS_DIRECTORY."chatbox_menu/chat.php?".$rowrss['cb_id'];
+ $rss[$i]['linkid'] = $rowrss['cb_id'];
+ $rss[$i]['title'] = '';
+ $rss[$i]['description'] = $rowrss['cb_message'];
+ $rss[$i]['category_name'] = '';
+ $rss[$i]['category_link'] = '';
+ $rss[$i]['datestamp'] = $rowrss['cb_datestamp'];
+ $rss[$i]['enc_url'] = "";
+ $rss[$i]['enc_leng'] = "";
+ $rss[$i]['enc_type'] = "";
+ $i++;
+ }
+}
+
+
+//##### ------------------------------------------------------------------------------------
+
+$eplug_rss_data[] = $rss;
+$eplug_rss_feed[] = $feed;
+*/
+
diff --git a/e107_plugins/rss_menu/admin_prefs.php b/e107_plugins/rss_menu/admin_prefs.php
index 4dff3b315..b36022fa5 100644
--- a/e107_plugins/rss_menu/admin_prefs.php
+++ b/e107_plugins/rss_menu/admin_prefs.php
@@ -218,6 +218,8 @@ class rss_ui extends e_admin_ui
$sqli = new db;
$feedlist = array();
+ // @see e107_plugins/news/e_rss.php
+ /*
// News
$feed['name'] = ADLAN_0;
$feed['url'] = 'news'; // The identifier for the rss feed url
@@ -243,7 +245,7 @@ class rss_ui extends e_admin_ui
// $feed['exclude_class'] = '';
$feedlist[] = $feed;
}
- }
+ }*/
/* // Download
$feed['name'] = ADLAN_24;
@@ -271,6 +273,9 @@ class rss_ui extends e_admin_ui
}
}
*/
+
+
+ //
// Comments
$feed['name'] = RSS_PLUGIN_LAN_14;
$feed['url'] = 'comments';
diff --git a/e107_plugins/rss_menu/rss.php b/e107_plugins/rss_menu/rss.php
index ad3175e8e..f1f98fb91 100644
--- a/e107_plugins/rss_menu/rss.php
+++ b/e107_plugins/rss_menu/rss.php
@@ -147,7 +147,19 @@ 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);
+
+ if(E107_DEBUG_LEVEL > 0)
+ {
+ define('e_IFRAME',true);
+ require_once(HEADERF);
+ $rss->debug();
+ require_once(FOOTERF);
+ exit;
+ }
+ else
+ {
+ $rss->buildRss($rss_title);
+ }
}
else
{
@@ -204,61 +216,8 @@ class rssCreate
{
case 'news' :
case 1:
- if($topic_id && is_numeric($topic_id))
- {
- $topic = " AND news_category = ".intval($topic_id);
- }
- else
- {
- $topic = '';
- }
-
- $path='';
- $render = ($pref['rss_othernews'] != 1) ? "AND (FIND_IN_SET('0', n.news_render_type) OR FIND_IN_SET(1, n.news_render_type))" : "";
- $nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
-
- $this -> rssQuery = "
- SELECT n.*, u.user_id, u.user_name, u.user_email, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
- LEFT JOIN #user AS u ON n.news_author = u.user_id
- LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
- WHERE n.news_class IN (".USERCLASS_LIST.") AND NOT (n.news_class REGEXP ".$nobody_regexp.") AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().") {$render} {$topic} ORDER BY n.news_datestamp DESC LIMIT 0,".$this -> limit;
- $sql->gen($this->rssQuery);
- $tmp = $sql->db_getList();
- $this -> rssItems = array();
- $loop=0;
- foreach($tmp as $value)
- {
- $this -> rssItems[$loop]['title'] = $value['news_title'];
- // $this -> rssItems[$loop]['link'] = "http://".$_SERVER['HTTP_HOST'].e_HTTP."news.php?item.".$value['news_id'].".".$value['news_category'];
-
- $this -> rssItems[$loop]['link'] = e107::getUrl()->create('news/view/item', $value, 'full=1');
-
- if($value['news_summary'] && $pref['rss_summarydiz'])
- {
- $this -> rssItems[$loop]['description'] = $value['news_summary'];
- }
- else
- {
- $this -> rssItems[$loop]['description'] = ($value['news_body']."
".$value['news_extended']);
- }
- $this -> rssItems[$loop]['author'] = $value['user_name'];
- $this -> rssItems[$loop]['author_email'] = $value['user_email'];
- // $this -> rssItems[$loop]['category'] = "
".$value['category_name']."";
- $this -> rssItems[$loop]['category_name'] = $tp->toHTML($value['category_name'],TRUE,'defs');
- $this -> rssItems[$loop]['category_link'] = SITEURL."news.php?cat.".$value['news_category']; //TODO SEFURL.
-
- if($value['news_allow_comments'] && $pref['comments_disabled'] != 1)
- {
- $this -> rssItems[$loop]['comment'] = "http://".$_SERVER['HTTP_HOST'].e_HTTP."comment.php?comment.news.".$value['news_id'];
- }
- $this -> rssItems[$loop]['pubdate'] = $value['news_datestamp'];
- if($pref['rss_shownewsimage'] == 1 && strlen(trim($value['news_thumbnail'])) > 0) {
- $this -> rssItems[$loop]['news_thumbnail'] = $value['news_thumbnail'];
- }
-
- $loop++;
- }
- break;
+ $path = e_PLUGIN."news/e_rss.php";
+ break;;
case 2:
$path='';
$this -> contentType = "articles";
@@ -271,7 +230,7 @@ class rssCreate
$path='';
$this -> contentType = "content";
break;
- case 'comments' :
+ case 'comments' : //TODO Eventually move to e107_plugins/comments
case 5:
$path='';
$this -> rssQuery = "SELECT * FROM `#comments` WHERE `comment_blocked` = 0 ORDER BY `comment_datestamp` DESC LIMIT 0,".$this -> limit;
@@ -377,7 +336,7 @@ class rssCreate
$this -> rssItems[$k]['enc_leng'] = $row['enc_leng'];
}
- if($eplug_rss['enc_type'])
+ if(!empty($eplug_rss['enc_type']))
{
$this -> rssItems[$k]['enc_type'] = $this->getmime($eplug_rss['enc_type']);
}
@@ -403,15 +362,27 @@ class rssCreate
$this -> rssItems[$k]['pubdate'] = $row['datestamp'];
}
- if($row['custom']){
+ if($row['custom'])
+ {
$this -> rssItems[$k]['custom'] = $row['custom'];
}
+
+ if($row['media'])
+ {
+ $this -> rssItems[$k]['media'] = $row['media'];
+ }
}
}
}
}
}
+ function debug()
+ {
+ print_a($this);
+ // print_a($this -> rssItems);
+ }
+
function buildRss($rss_title)
{
global $pref;
@@ -472,6 +443,7 @@ class rssCreate
xmlns:atom=\"http://www.w3.org/2005/Atom\"
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\"
+ xmlns:media=\"http://search.yahoo.com/mrss/\"
>
".$tp->toRss($rss_title)."
@@ -531,18 +503,11 @@ class rssCreate
echo "".$link."\n";
}
- echo "".$tp->toRss($value['description'],TRUE);
- if($pref['rss_shownewsimage'] == 1 && strlen(trim($value['news_thumbnail'])) > 0) //FIXME - Fixed path and height?
- {
- $news_thumbnail = SITEURLBASE.e_IMAGE_ABS."newspost_images/".$tp->toRss($value['news_thumbnail']);
- echo "<a href="".$link.""><img src="".$news_thumbnail."" height="50" border="0" hspace="10" vspace="10" align="right"></a>";
- unset($news_thumbail);
- }
- echo "\n";
+ echo "".$tp->toRss($value['description'],true). "\n";
if($value['content_encoded'])
{
- echo "".$tp->toRss($value['content_encoded'],TRUE)."\n";
+ echo "".$tp->toRss($value['content_encoded'],true)."\n";
}
if($value['category_name'] && $catlink)
@@ -581,6 +546,20 @@ class rssCreate
}
}
+ if(!empty($value['media']))
+ {
+
+ foreach($value['media'] as $cVal)
+ {
+ foreach($cVal as $k=>$v)
+ {
+ echo $this->buildTag($k,$v);
+ }
+ }
+
+ }
+
+
echo "\n\n";
}
// echo " contentType).".4.".$this -> topicId ."\" rel=\"self\" type=\"application/rss+xml\" />";
@@ -635,14 +614,7 @@ class rssCreate
".$this->get_iso_8601_date($time + $this -> offset)."
".$value['author']."
".$tp->toRss($value['category_name'])."
- ".$tp->toRss($value['description']);
- if($pref['rss_shownewsimage'] == 1 && strlen(trim($value['news_thumbnail'])) > 0)
- {
- $news_thumbnail = SITEURLBASE.e_IMAGE_ABS."newspost_images/".$tp->toRss($value['news_thumbnail']);
- echo "<a href="".$link.""><img src="".$news_thumbnail."" height="50" border="0" hspace="10" vspace="10" align="right"></a>";
- unset($news_thumbail);
- }
- echo "
+ ".$tp->toRss($value['description']). "
";
}
echo "
@@ -713,17 +685,11 @@ class rssCreate
//complete story here\n
echo "
\n
- ".$tp->toRss($value['description']);
- if($pref['rss_shownewsimage'] == 1 && strlen(trim($value['news_thumbnail'])) > 0)
- {
- $news_thumbnail = SITEURLBASE.e_IMAGE_ABS."newspost_images/".$tp->toRss($value['news_thumbnail']);
- echo "<a href="".$value['link'].""><img src="".$news_thumbnail."" height="50" border="0" hspace="10" vspace="10" align="right"></a>";
- unset($news_thumbail);
- }
- echo "\n";
+ ".$tp->toRss($value['description']). "\n";
// Optional
- if($value['category_name']){
+ if(!empty($value['category_name']))
+ {
echo "\n";
}
//
@@ -746,6 +712,64 @@ class rssCreate
}
}
+
+ /**
+ * Build an XML Tag
+ * @param string $name
+ * @param array $attributes
+ * @param bool $closing
+ * @return string
+ */
+ function buildTag($name='', $attributes=array())
+ {
+ $tp = e107::getParser();
+
+ if(empty($name))
+ {
+ return '';
+ }
+
+ if(isset($attributes['value']))
+ {
+ $value = $attributes['value'];
+ unset($attributes['value']);
+ }
+
+ $text = "\n<".$name;
+
+ foreach($attributes as $att=>$attVal)
+ {
+
+ $text .= " ".$att."=\"".$tp->toRss($attVal)."\"";
+ }
+
+ $text .= ">";
+
+ if(!empty($value))
+ {
+ if(is_array($value))
+ {
+ foreach($value as $t=>$r)
+ {
+ $text .= $this->buildTag($t,$r);
+ }
+
+ }
+ else
+ {
+ $text .= $tp->toRss($value);
+ }
+
+ }
+
+ $text .= "".$name.">\n";
+
+ return $text;
+ }
+
+
+
+
function getmime($file)
{
$ext = strtolower(str_replace(".","",strrchr(basename($file), ".")));