1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-20 12:41:51 +02:00

Bugtracker #4578 and more - add caching, plugin.xml, admin logging

This commit is contained in:
e107steved 2008-12-20 10:39:29 +00:00
parent ca71a7742d
commit 64b31b2abf
15 changed files with 625 additions and 490 deletions

View File

@ -12,9 +12,9 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/cache_handler.php,v $
| $Revision: 1.9 $
| $Date: 2008-12-03 00:43:00 $
| $Author: mcfly_e107 $
| $Revision: 1.10 $
| $Date: 2008-12-20 10:39:23 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
@ -24,13 +24,22 @@ if (!defined('e107_INIT')) { exit; }
* Class to cache data as files, improving site speed and throughput.
*
* @package e107
* @version $Revision: 1.9 $
* @author $Author: mcfly_e107 $
* @version $Revision: 1.10 $
* @author $Author: e107steved $
*/
class ecache {
var $CachePageMD5;
var $CachenqMD5;
var $UserCacheActive; // Checkable flag - TRUE if user cache enabled
var $SystemCacheActive; // Checkable flag - TRUE if system cache enabled
function ecache()
{
global $pref;
$this->UserCacheActive = varsettrue($pref['cachestatus']);
$this->SystemCacheActive = varsettrue($pref['syscachestatus']);
}
/**
* @return string
@ -46,28 +55,39 @@ class ecache {
// Add 'nomd5' to indicate we are not calculating an md5
$CheckTag = '_nomd5';
}
elseif (isset($this)) {
if (defined("THEME")) {
if (strpos($CacheTag, "nq_") === 0) {
elseif (isset($this))
{
if (defined("THEME"))
{
if (strpos($CacheTag, "nq_") === 0)
{
// We do not care about e_QUERY, so don't use it in the md5 calculation
if (!$this->CachenqMD5) {
if (!$this->CachenqMD5)
{
$this->CachenqMD5 = md5(e_BASE.(defined("ADMIN") && ADMIN == true ? "admin" : "").e_LANGUAGE.THEME.USERCLASS_LIST.filemtime(THEME.'theme.php'));
}
// Add 'nq' to indicate we are not using e_QUERY
$CheckTag = '_nq_'.$this->CachenqMD5;
} else {
}
else
{
// It's a page - need the query in the hash
if (!$this->CachePageMD5) {
if (!$this->CachePageMD5)
{
$this->CachePageMD5 = md5(e_BASE.e_LANGUAGE.THEME.USERCLASS_LIST.e_QUERY.filemtime(THEME.'theme.php'));
}
$CheckTag = '_'.$this->CachePageMD5;
}
} else {
}
else
{
// Check if a custom CachePageMD5 is in use in e_module.php.
$CheckTag = ($this->CachePageMD5) ? "_".$this->CachePageMD5 : "";
}
} else {
}
else
{
$CheckTag = '';
}
$q = ($syscache ? "S_" : "C_").preg_replace("#\W#", "_", $CacheTag);

View File

@ -1,32 +1,34 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/admin_config.php,v $
| $Revision: 1.3 $
| $Date: 2008-06-27 19:40:54 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin administration - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/admin_config.php,v $
* $Revision: 1.4 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
require_once("../../class2.php");
if (!getperms("P"))
if (!getperms("P") || !plugInstalled('newsfeed'))
{
header("location:".e_BASE."index.php");
exit;
header("location:".e_BASE."index.php");
exit;
}
require_once(e_ADMIN."auth.php");
if (e_QUERY) {
define('NEWSFEED_LIST_CACHE_TAG', 'nomd5_newsfeeds');
if (e_QUERY)
{
list($action, $id) = explode(".", e_QUERY);
$id = intval($id);
}
else
{
@ -34,34 +36,60 @@ else
$id = FALSE;
}
if(isset($_POST['createFeed']))
if (isset($_POST['createFeed']) || isset($_POST['updateFeed']))
{
if ($_POST['newsfeed_url'] && $_POST['newsfeed_name']) {
$name = $tp -> toDB($_POST['newsfeed_name']);
$description = $tp -> toDB($_POST['newsfeed_description']);
$imgfield = $_POST['newsfeed_image']."::".$_POST['newsfeed_showmenu']."::".$_POST['newsfeed_showmain'];
$sql->db_Insert("newsfeed", "0, '$name', '".$_POST['newsfeed_url']."', '', '0', '{$description}', '{$imgfield}', ".$_POST['newsfeed_active'].", ".$_POST['newsfeed_updateint']." ");
$message = NFLAN_23;
} else {
if ($_POST['newsfeed_url'] && $_POST['newsfeed_name'])
{
$feed['newsfeed_name'] = $tp -> toDB($_POST['newsfeed_name']);
$feed['newsfeed_description'] = $tp -> toDB($_POST['newsfeed_description']);
$feed['newsfeed_image'] = $tp->toDB($_POST['newsfeed_image'])."::".intval($_POST['newsfeed_showmenu'])."::".intval($_POST['newsfeed_showmain']);
$feed['newsfeed_url'] = $tp->toDB($_POST['newsfeed_url']);
$feed['newsfeed_active'] = intval($_POST['newsfeed_active']);
$feed['newsfeed_updateint'] = intval($_POST['newsfeed_updateint']);
$feed['newsfeed_data'] = ''; // Start with blank data feed
$feed['newsfeed_timestamp'] = 0; // This should force an immediate update
if (isset($_POST['createFeed']))
{
if ($sql->db_Insert('newsfeed',$feed))
{
$admin_log->logArrayAll('NEWSFD_01', $feed);
$message = NFLAN_23;
}
else
{
$message = NFLAN_50.$sql->mySQLerror;
}
}
elseif (isset($_POST['updateFeed']))
{
if ($sql->db_UpdateArray('newsfeed',$feed, " WHERE newsfeed_id=".intval($_POST['newsfeed_id'])))
{
$admin_log->logArrayAll('NEWSFD_02', $feed);
$message = NFLAN_25;
}
else
{
$message = NFLAN_50.$sql->mySQLerror;
}
}
$e107->ecache->clear(NEWSFEED_LIST_CACHE_TAG); // This should actually clear all the newsfeed data in one go
}
else
{
$message = NFLAN_24;
}
}
if(isset($_POST['updateFeed']))
{
$name = $tp -> toDB($_POST['newsfeed_name']);
$description = $tp -> toDB($_POST['newsfeed_description']);
$imgfield = $_POST['newsfeed_image']."::".$_POST['newsfeed_showmenu']."::".$_POST['newsfeed_showmain'];
$sql->db_Update("newsfeed", "newsfeed_name='{$name}', newsfeed_url='".$_POST['newsfeed_url']."', newsfeed_timestamp='0', newsfeed_image='{$imgfield}', newsfeed_description='{$description}', newsfeed_active=".$_POST['newsfeed_active'].", newsfeed_updateint=".$_POST['newsfeed_updateint']." WHERE newsfeed_id=".$_POST['newsfeed_id']);
$message = NFLAN_25;
}
if($action == "delete") {
$sql->db_Delete("newsfeed", "newsfeed_id=$id");
if($action == "delete")
{
$sql->db_Delete('newsfeed', 'newsfeed_id='.$id);
$admin_log->log_event('NEWSFD_03','ID: '.$id,E_LOG_INFORMATIVE,'');
$message = NFLAN_40;
}
if (isset($message)) {
if (isset($message))
{
$ns->tablerender("", "<div style='text-align:center'><b>".$message."</b></div>");
}

View File

@ -1,6 +1,25 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/e_frontpage.php,v $
* $Revision: 1.2 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
if (!defined('e107_INIT')) { exit; }
if (!plugInstalled('newsfeed'))
{
return;
}
@include_once(e_PLUGIN.'newsfeed/languages/'.e_LANGUAGE.'_frontpage.php');
@include_once(e_PLUGIN.'newsfeed/languages/English_frontpage.php');

View File

@ -0,0 +1,25 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/e_help.php,v $
* $Revision: 1.1 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
if (!defined('e107_INIT')) { exit; }
if (!plugInstalled('newsfeed'))
{
return;
}
@include_lan(e_PLUGIN.'newsfeed/languages/'.e_LANGUAGE.'_admin_newsfeed.php');
$ns->tablerender(NFLAN_43, NFLAN_42);
?>

View File

@ -1,24 +0,0 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/help.php,v $
| $Revision: 1.1.1.1 $
| $Date: 2006-12-02 04:35:31 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
*/
if (!defined('e107_INIT')) { exit; }
@include_once(e_PLUGIN."newsfeed/languages/".e_LANGUAGE.".php");
@include_once(e_PLUGIN."newsfeed/languages/English.php");
$ns->tablerender(NFLAN_43, NFLAN_42);
?>

View File

@ -1,20 +1,18 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/languages/English.php,v $
| $Revision: 1.1.1.1 $
| $Date: 2006-12-02 04:35:31 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/languages/English_admin_newsfeed.php,v $
* $Revision: 1.1 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
@ -36,7 +34,7 @@ define("NFLAN_15", "Create Newsfeed");
define("NFLAN_16", "Update Newsfeed");
define("NFLAN_17", "enter 'default' in box to use the image defined in the feed, to use your own image enter full path, leave blank for no image.");
define("NFLAN_18", "Update interval in seconds");
define("NFLAN_19", "ie, 3600: newsfeed will update every hour");
define("NFLAN_19", "e.g. 3600: newsfeed will update every hour");
define("NFLAN_20", "On newsfeed main page only");
define("NFLAN_21", "In both menu and newsfeed page");
define("NFLAN_22", "choose where you want the newsfeed displayed");
@ -46,17 +44,17 @@ define("NFLAN_25", "Newsfeed updated in database.");
define("NFLAN_26", "Update Interval");
define("NFLAN_27", "Options");
define("NFLAN_28", "URL");
define("NFLAN_29", "Available newsfeeds");
//define("NFLAN_29", "Available newsfeeds");
define("NFLAN_30", "Feed name");
define("NFLAN_31", "Back to newsfeed list");
//define("NFLAN_31", "Back to newsfeed list");
define("NFLAN_32", "No feed with that identification number can be found.");
define("NFLAN_33", "Date published: ");
define("NFLAN_34", "not known");
//define("NFLAN_33", "Date published: ");
//define("NFLAN_34", "not known");
define("NFLAN_35", "posted by ");
define("NFLAN_36", "Description");
define("NFLAN_37", "short description of feed, enter 'default' to use the description defined in the feed");
define("NFLAN_38", "Headlines");
define("NFLAN_39", "Details");
//define("NFLAN_38", "Headlines");
//define("NFLAN_39", "Details");
define("NFLAN_40", "Newsfeed deleted");
define("NFLAN_41", "No newsfeeds defined yet");
@ -85,7 +83,17 @@ define("NFLAN_45", "Number of items to show in menu");
define("NFLAN_46", "Number of items to show on main page");
define("NFLAN_47", "0 or blank to show all");
define("NFLAN_48", "Unable to save raw data in database.");
//define("NFLAN_48", "Unable to save raw data in database.");
define("NFLAN_49", "Unable to unserialize rss data - uses non-standard syntax");
define('NFLAN_50', 'Write to database failed: ');
// Admin log messages
//===================
define('LAN_AL_NEWSFD_01','News Feed created');
define('LAN_AL_NEWSFD_02','News Feed updated');
define('LAN_AL_NEWSFD_03','News Feed deleted');
define('LAN_AL_NEWSFD_04','');
define('LAN_AL_NEWSFD_05','');
?>

View File

@ -1,13 +1,18 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system - Language File.
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/languages/English_frontpage.php,v $
| $Revision: 1.1.1.1 $
| $Date: 2006-12-02 04:35:31 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/languages/English_frontpage.php,v $
* $Revision: 1.2 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
define("NWSF_FP_1", "News Feeds");

View File

@ -0,0 +1,27 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/languages/English_newsfeed.php,v $
* $Revision: 1.1 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
define("NFLAN_29", "Available newsfeeds");
define("NFLAN_31", "Back to newsfeed list");
define("NFLAN_33", "Date published: ");
define("NFLAN_34", "not known");
define("NFLAN_38", "Headlines");
define("NFLAN_39", "Details");
define("NFLAN_48", "Unable to save raw data in database.");
?>

View File

@ -1,28 +1,35 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed.php,v $
| $Revision: 1.2 $
| $Date: 2008-05-30 20:36:38 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed.php,v $
* $Revision: 1.3 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
require_once("../../class2.php");
@include_once(e_PLUGIN."newsfeed/languages/".e_LANGUAGE.".php");
@include_once(e_PLUGIN."newsfeed/languages/English.php");
if(!function_exists("checkUpdate"))
require_once('../../class2.php');
if (!plugInstalled('newsfeed'))
{
require(e_PLUGIN."newsfeed/newsfeed_functions.php");
header("location:".e_BASE."index.php");
exit;
}
@include_lan(e_PLUGIN.'newsfeed/languages/'.e_LANGUAGE.'_newsfeed.php');
if(!class_exists('newsfeedClass'))
{
require(e_PLUGIN.'newsfeed/newsfeed_functions.php');
}
global $newsFeed;
if (!is_object($newsFeed))
{
$newsFeed = new newsfeedClass;
}
require_once(HEADERF);
@ -31,7 +38,7 @@ if (file_exists(THEME."newsfeed_template.php"))
{
require_once(THEME."newsfeed_template.php");
}
else if(!$NEWSFEED_LIST_START)
else if(!varset($NEWSFEED_LIST_START, FALSE))
{
require_once(e_PLUGIN."newsfeed/templates/newsfeed_template.php");
}
@ -39,126 +46,36 @@ else if(!$NEWSFEED_LIST_START)
$action = FALSE;
if(e_QUERY)
{
list($action, $id) = explode(".", e_QUERY);
$id = intval($id);
$qs = explode(".", e_QUERY);
$action = $qs[0];
$id = intval(varset($qs[1], 0));
}
if($action == "show")
{
/* 'show' action - show feed */
checkUpdate();
if ($feeds = $sql -> db_Select("newsfeed", "*", "(newsfeed_active=2 OR newsfeed_active=3) AND newsfeed_id=$id"))
{
$row = $sql->db_Fetch();
extract ($row);
list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $newsfeed_image);
$numtoshow = $newsfeed_showmain;
$numtoshow = (intval($numtoshow) > 0 ? $numtoshow : 999);
$rss = unserialize($newsfeed_data);
if(!is_object($rss))
{
$text = NFLAN_49;
$ns->tablerender(NFLAN_01, $text);
require_once(FOOTERF);
exit;
}
$FEEDNAME = "<a href='".e_SELF."?show.$newsfeed_id'>$newsfeed_name</a>";
$FEEDDESCRIPTION = $newsfeed_description;
if($newsfeed_image == "default")
{
if($file = fopen ($rss -> image['url'], "r"))
{
/* remote image exists - use it! */
$FEEDIMAGE = "<a href='".$rss -> image['link']."' rel='external'><img src='".$rss -> image['url']."' alt='".$rss -> image['title']."' style='border: 0; vertical-align: middle;' /></a>";
}
else
{
/* remote image doesn't exist - ghah! */
$FEEDIMAGE = "";
}
}else if ($newsfeed_image)
{
$FEEDIMAGE = "<img src='".$newsfeed_image."' alt='' />";
}
else
{
$FEEDIMAGE = "";
}
$FEEDLANGUAGE = $rss -> channel['language'];
if($rss -> channel['lastbuilddate'])
{
$pubbed = $rss -> channel['lastbuilddate'];
}
else if($rss -> channel['dc']['date'])
{
$pubbed = $rss -> channel['dc']['date'];
}
else
{
$pubbed = NFLAN_34;
}
$FEEDLASTBUILDDATE = NFLAN_33.$pubbed;
$FEEDCOPYRIGHT = $tp -> toHTML($rss -> channel['copyright'], TRUE);
$FEEDDOCS = $rss -> channel['docs'];
$FEEDTITLE = "<a href='".$rss -> channel['link']."' rel='external'>".$rss -> channel['title']."</a>";
$FEEDLINK = $rss -> channel['link'];
$data = "";
$i = 0;
while($i < $numtoshow && $rss->items[$i])
{
$item = $rss->items[$i];
// foreach ($rss -> items as $item)
// {
if($NEWSFEED_COLLAPSE)
{
$FEEDITEMLINK = "<a href='#' onclick='expandit(this)'>".$tp -> toHTML($item['title'], TRUE)."</a>
<div style='display:none' >
";
$FEEDITEMTEXT = preg_replace("/&#091;.*]/", "", $tp -> toHTML($item['description'], TRUE))."
<br /><br /><a href='".$item['link']."' rel='external'>".NFLAN_44."</a><br /><br />
</div>";
}
else
{
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], TRUE)."</a>\n";
$FEEDITEMLINK = str_replace('&', '&amp;', $FEEDITEMLINK);
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", $item['description']);
$FEEDITEMTEXT = $tp -> toHTML($feeditemtext, TRUE)."\n";
}
$FEEDITEMCREATOR = $tp -> toHTML($item['author'], TRUE);
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN);
$i++;
}
$BACKLINK = "<a href='".e_SELF."'>".NFLAN_31."</a>";
$text = preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_START) . $data . preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_END);
$ns->tablerender(NFLAN_01, $text);
require_once(FOOTERF);
exit;
}
$data = $newsFeed->newsfeedInfo($id == 0 ? 'all' : $id, 'main');
$ns->tablerender($data['title'], $data['text']);
require_once(FOOTERF);
exit;
}
/* no action - display feed list ... */
if ($feeds = $sql -> db_Select("newsfeed", "*", "newsfeed_active=2 OR newsfeed_active=3"))
$newsFeed->readFeedList();
if (count($newsFeed->feedList))
{
$data = "";
while ($row = $sql->db_Fetch())
foreach ($newsFeed->feedList as $feed)
{
extract($row);
$FEEDNAME = "<a href='".e_SELF."?show.$newsfeed_id'>$newsfeed_name</a>";
$FEEDDESCRIPTION = ((!$newsfeed_description || $newsfeed_description == "default") ? "&nbsp;" : $newsfeed_description);
$FEEDIMAGE = $newsfeed_image;
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_LIST);
if (($feed['newsfeed_active'] == 2) || ($feed['newsfeed_active'] == 3))
{
$FEEDNAME = "<a href='".e_SELF."?show.{$feed['newsfeed_id']}'>{$feed['newsfeed_name']}</a>";
$FEEDDESCRIPTION = ((!$feed['newsfeed_description'] || $feed['newsfeed_description'] == "default") ? "&nbsp;" : $feed['newsfeed_description']);
// $FEEDIMAGE = $feed['newsfeed_image']; // This needs splitting up. Not used ATM anyway, so disable for now
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_LIST);
}
}
}

View File

@ -1,90 +1,234 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ?Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed_functions.php,v $
| $Revision: 1.4 $
| $Date: 2008-05-30 20:36:38 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed_functions.php,v $
* $Revision: 1.5 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
/*
If cache is disabled, first call to this object reads the complete database of active feeds, including the actual news feed. So all data is available for
the rest of the page.
If cache is enabled, only the feed list (excluding the news feed data) is loaded. Individual news feeds are stored in separate cache files, and loaded on demand. If the
feed refresh time has expired, the cache is updated.
*/
if (!defined('e107_INIT')) { exit; }
if(!function_exists("checkUpdate"))
if (!plugInstalled('newsfeed'))
{
function checkUpdate($query = "newsfeed_active=2 OR newsfeed_active=3")
return;
}
define('NEWSFEED_LIST_CACHE_TAG', 'nomd5_newsfeeds');
define('NEWSFEED_NEWS_CACHE_TAG', 'nomd5_newsfeeds_news_');
define('NEWSFEED_DEBUG', FALSE);
class newsfeedClass
{
var $validFeedList; // True once feeds read
var $feedList = array(); // List of available feeds read from DB - everything from DB apart from the actual news
var $feedIcon = array(); // Pre-calculated link to each feed's icon
var $newsList = array(); // Actual news element for each feed
var $lastProcessed; // Note time when processFeeds() last run
var $truncateCount; // Number of characters to show in feeds in menus
var $truncateMore; // '...more' string
var $useCache; // Set if cache is available
// Constructor
function newsfeedClass()
{
global $sql, $tp;
require_once(e_HANDLER."xml_class.php");
$xml = new xmlClass;
require_once(e_HANDLER."magpie_rss.php");
global $e107;
$this->validFeedList = FALSE;
$this->newsList = array();
$this->feedList = array();
$this->feedIcon = array();
$this->lastProcessed = 0;
$this->truncateCount = 150; // Set a pref for these two later
$this->truncateMore = '...';
$this->useCache = $e107->ecache->UserCacheActive; // Have our own local copy - should be faster to access
}
if ($sql -> db_Select("newsfeed", "*", $tp -> toDB($query, true)))
// Ensures the feed list is loaded - uses cache if available
function readFeedList($force=FALSE)
{
global $sql;
if ($this->validFeedList && !$force)
{
$feedArray = $sql -> db_getList();
foreach($feedArray as $feed)
return; // Already got list
}
if ($this->useCache)
{ // Cache enabled - try to read from that first
global $e107, $eArrayStorage;
if (!$force && $temp = $e107->ecache->retrieve(NEWSFEED_LIST_CACHE_TAG))
{
extract ($feed);
if($newsfeed_timestamp + $newsfeed_updateint < time())
$this->feedList = $eArrayStorage->ReadArray($temp);
return;
}
}
$fieldList = '*';
if ($this->useCache)
{ // Get all fields except the actual news
$fieldList = 'newsfeed_id, newsfeed_name, newsfeed_url, newsfeed_timestamp, newsfeed_description, newsfeed_image, newsfeed_active, newsfeed_updateint';
}
if ($sql -> db_Select("newsfeed", $fieldList, '`newsfeed_active` > 0')) // Read in all the newsfeed info on the first go
{
while ($row = $sql->db_Fetch(MYSQL_ASSOC))
{
$nfID = $row['newsfeed_id'];
if (isset($row['newsfeed_data']))
{
if($rawData = $xml->getRemoteFile($newsfeed_url))
$this->newsList[$nfID]['newsfeed_data'] = $row['newsfeed_data']; // Pull out the actual news - might as well since we're here
$this->newsList[$nfID]['newsfeed_timestamp'] = $row['newsfeed_timestamp'];
unset($row['newsfeed_data']); // Don't keep this in memory twice!
}
$this->feedList[$nfID] = $row; // Put the rest into the feed data
}
$this->validFeedList = TRUE;
}
if ($this->useCache)
{ // Cache enabled - we need to save some updated info
$temp = $eArrayStorage->WriteArray($this->feedList, FALSE);
$e107->ecache->set(NEWSFEED_LIST_CACHE_TAG,$temp);
}
}
// Returns the info for a single feed - from cache or memory as appropriate. If time expired, updates the feed.
function getFeed($feedID, $force = FALSE)
{
global $tp, $e107, $sql, $eArrayStorage, $admin_log;
$this->readFeedList(); // Make sure we've got the feed data.
if (!isset($this->feedList[$feedID]))
{
if (NEWSFEED_DEBUG) echo "Invalid feed number: {$feedID}<br />";
return FALSE;
}
if ($force || !isset($this->newsList[$feedID]['newsfeed_data']) || !$this->newsList[$feedID]['newsfeed_data'])
{ // No data already in memory
if ($force || !($this->newsList[$feedID]['newsfeed_data'] = $e107->ecache->retrieve(NEWSFEED_NEWS_CACHE_TAG.$feedID, $this->feedList[$feedID]['newsfeed_updateint']/60)))
{ // Need to re-read from source - either no cached data yet, or cache expired
if (NEWSFEED_DEBUG) $admin_log->e_log_event(10,debug_backtrace(),"DEBUG","Newsfeed update","Refresh item: ".$feedID,FALSE,LOG_TO_ROLLING);
require_once(e_HANDLER.'xml_class.php');
$xml = new xmlClass;
require_once(e_HANDLER.'magpie_rss.php');
$dbData = array(); // In case we need to update DB
if($rawData = $xml->getRemoteFile($this->feedList[$feedID]['newsfeed_url']))
{ // Need to update feed
$rss = new MagpieRSS( $rawData );
list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $this->feedList[$feedID]['newsfeed_image']);
$temp['channel'] = $rss->channel;
if (($newsfeed_showmenu == 0) || ($newsfeed_showmain == 0))
{
$rss = new MagpieRSS( $rawData );
$serializedArray = addslashes(serialize($rss));
$newsfeed_des = FALSE;
if($newsfeed_description == "default")
{
if($rss -> channel['description'])
{
$newsfeed_des = $tp -> toDB($rss -> channel['description']);
}
else if($rss -> channel['tagline'])
{
$newsfeed_des = $tp -> toDB($rss -> channel['tagline']);
}
}
if(!$sql->db_Update('newsfeed', "newsfeed_data='{$serializedArray}', newsfeed_timestamp=".time().($newsfeed_des ? ", newsfeed_description='{$newsfeed_des}'": "")." WHERE newsfeed_id=".intval($newsfeed_id)))
{
echo NFLAN_48."<br /><br />".$serializedArray;
}
$temp['items'] = $rss->items; // Unlimited items
}
else
{
echo $xml -> error;
$temp['items'] = array_slice($rss->items, 0, max($newsfeed_showmenu, $newsfeed_showmain)); // Limited items
}
$newsfeed_des = FALSE;
if($this->feedList[$feedID]['newsfeed_description'] == 'default')
{
$temp['newsfeed_description'] = 'default'; // This prevents db writes if no better data found
if($rss->channel['description'])
{
$newsfeed_des = $tp -> toDB($rss->channel['description']);
$temp['newsfeed_description'] = $newsfeed_des;
}
else if($rss->channel['tagline'])
{
$newsfeed_des = $tp -> toDB($rss -> channel['tagline']);
$temp['newsfeed_description'] = $newsfeed_des;
}
if ($temp['newsfeed_description'] != $this->feedList[$feedID]['newsfeed_description'])
{ // Need to write updated feed name to DB
$this->feedList[$feedID]['newsfeed_description'] = $temp['newsfeed_description'];
$dbData['newsfeed_description'] = $temp['newsfeed_description'];
if ($this->useCache)
{
$e107->ecache->clear(NEWSFEED_LIST_CACHE_TAG); // Clear the newsfeed cache so its re-read next time
}
}
}
if ($newsfeed_image == 'default')
{
$temp['newsfeed_image_link'] = "<a href='".$rss->image['link']."' rel='external'><img src='".$rss->image['url']."' alt='".$rss->image['title']."' style='border: 0; vertical-align: middle;' /></a>";
}
else
{
$temp['newsfeed_image_link'] = "<img src='".$this->feedList[$feedID]['newsfeed_image']."' alt='' />";
}
$serializedArray = $eArrayStorage->WriteArray($temp, FALSE);
$now = time();
$this->newsList[$feedID]['newsfeed_data'] = $serializedArray;
$this->newsList[$feedID]['newsfeed_timestamp'] = $now;
if ($this->useCache)
{
$e107->ecache->set(NEWSFEED_NEWS_CACHE_TAG.$feedID,$serializedArray);
}
else
{
$dbData['newsfeed_data'] =addslashes($serializedArray);
$dbData['newsfeed_timestamp'] = $now;
}
if (count($dbData))
{ // Only write the feed data to DB if not using cache. Write description if changed
if(FALSE === $sql->db_UpdateArray('newsfeed', $dbData, " WHERE newsfeed_id=".$feedID))
{
if (NEWSFEED_DEBUG) echo NFLAN_48."<br /><br />".var_dump($dbData);
}
}
unset($rss);
}
else
{
if (NEWSFEED_DEBUG) echo $xml -> error;
return FALSE;
}
}
}
return $eArrayStorage->ReadArray($this->newsList[$feedID]['newsfeed_data']);
}
}
if(!function_exists("newsfeed_info"))
{
function newsfeed_info($which, $where = 'main')
// Return text for the required news feeds (loads info as necessary)
// Uses different templates for main and menu areas
function newsfeedInfo($which, $where = 'main')
{
global $tp, $sql;
global $NEWSFEED_MAIN_START, $NEWSFEED_MAIN, $NEWSFEED_MAIN_END;
global $NEWSFEED_MENU_START, $NEWSFEED_MENU, $NEWSFEED_MENU_END;
if($which == 'all')
{
$qry = "newsfeed_active=1 OR newsfeed_active=3";
$filter = 0;
}
else
{
$qry = "newsfeed_id = ".intval($which);
$filter = intval($which);
}
$text = "";
checkUpdate($qry);
$this->readFeedList(); // Make sure we've got all the news feeds loaded
/* get template */
if (file_exists(THEME."newsfeed_menu_template.php"))
@ -96,89 +240,102 @@ if(!function_exists("newsfeed_info"))
include(e_PLUGIN."newsfeed/templates/newsfeed_menu_template.php");
}
if ($feeds = $sql -> db_Select("newsfeed", "*", $qry))
foreach($this->feedList as $nfID => $feed)
{
while($row = $sql->db_Fetch())
if (($filter == 0) || ($filter == $feed['newsfeed_id']))
{
extract ($row);
list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $newsfeed_image);
$numtoshow = ($where == 'main' ? $newsfeed_showmain : $newsfeed_showmenu);
$numtoshow = (intval($numtoshow) > 0 ? $numtoshow : 999);
$rss = unserialize($newsfeed_data);
$FEEDNAME = "<a href='".e_SELF."?show.$newsfeed_id'>$newsfeed_name</a>";
$FEEDDESCRIPTION = $newsfeed_description;
if($newsfeed_image == "default")
if (($rss = $this->getFeed($nfID))) // Call ensures that feed is updated if necessary
{
if($file = fopen ($rss -> image['url'], "r"))
list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $feed['newsfeed_image']);
$numtoshow = intval($where == 'main' ? $newsfeed_showmain : $newsfeed_showmenu);
$numtoshow = ($numtoshow > 0 ? $numtoshow : 999);
$FEEDNAME = "<a href='".e_SELF."?show.{$feed['newsfeed_id']}'>{$feed['newsfeed_name']}</a>";
$FEEDDESCRIPTION = $feed['newsfeed_description'];
$FEEDIMAGE = $rss['newsfeed_image_link'];
$FEEDLANGUAGE = $rss['channel']['language'];
if($rss['channel']['lastbuilddate'])
{
/* remote image exists - use it! */
$FEEDIMAGE = "<a href='".$rss -> image['link']."' rel='external'><img src='".$rss -> image['url']."' alt='".$rss -> image['title']."' style='border: 0; vertical-align: middle;' /></a>";
$pubbed = $rss['channel']['lastbuilddate'];
}
else if($rss['channel']['dc']['date'])
{
$pubbed = $rss['channel']['dc']['date'];
}
else
{
/* remote image doesn't exist - ghah! */
$FEEDIMAGE = "";
$pubbed = NFLAN_34;
}
$FEEDLASTBUILDDATE = NFLAN_33.$pubbed;
$FEEDCOPYRIGHT = $tp -> toHTML($rss['channel']['copyright'], FALSE);
$FEEDTITLE = "<a href='".$rss['channel']['link']."' rel='external'>".$rss['channel']['title']."</a>";
$FEEDLINK = $rss['channel']['link'];
if($newsfeed_active == 2 or $newsfeed_active == 3)
{
$LINKTOMAIN = "<a href='".e_PLUGIN."newsfeed/newsfeed.php?show.{$newsfeed_id}'>".NFLAN_39."</a>";
}
else
{
$LINKTOMAIN = "";
}
$data = "";
$numtoshow = min($numtoshow, count($rss['items']));
$i = 0;
while($i < $numtoshow)
{
$item = $rss['items'][$i];
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
$FEEDITEMLINK = str_replace('&', '&amp;', $FEEDITEMLINK);
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", strip_tags($item['description']));
$FEEDITEMCREATOR = $tp -> toHTML($item['author'], FALSE);
if ($where == 'main')
{
if($NEWSFEED_COLLAPSE)
{
$FEEDITEMLINK = "<a href='#' onclick='expandit(this)'>".$tp -> toHTML($item['title'], FALSE)."</a>
<div style='display:none' >
";
$FEEDITEMTEXT = preg_replace("/&#091;.*]/", "", $tp -> toHTML($item['description'], FALSE))."
<br /><br /><a href='".$item['link']."' rel='external'>".NFLAN_44."</a><br /><br />
</div>";
}
else
{
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
$FEEDITEMLINK = str_replace('&', '&amp;', $FEEDITEMLINK);
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", $item['description']);
$FEEDITEMTEXT = $tp -> toHTML($feeditemtext, FALSE)."\n";
}
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN);
}
else
{
if ($this->truncateCount)
{
$FEEDITEMTEXT = $tp->text_truncate($feeditemtext, $this->truncateCount, $this->truncateMore);
}
else
{
$FEEDITEMTEXT = ''; // Might just want title
}
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU);
}
$i++;
}
}
else if ($newsfeed_image)
{
$FEEDIMAGE = "<img src='".$newsfeed_image."' alt='' />";
}
else
{
$FEEDIMAGE = "";
}
$FEEDLANGUAGE = $rss -> channel['language'];
if($rss -> channel['lastbuilddate'])
{
$pubbed = $rss -> channel['lastbuilddate'];
}
else if($rss -> channel['dc']['date'])
{
$pubbed = $rss -> channel['dc']['date'];
}
else
{
$pubbed = NFLAN_34;
}
$FEEDLASTBUILDDATE = NFLAN_33.$pubbed;
$FEEDCOPYRIGHT = $tp -> toHTML($rss -> channel['copyright'], TRUE);
$FEEDTITLE = "<a href='".$rss -> channel['link']."' rel='external'>".$rss -> channel['title']."</a>";
$FEEDLINK = $rss -> channel['link'];
if($newsfeed_active == 2 or $newsfeed_active == 3)
{
$LINKTOMAIN = "<a href='".e_PLUGIN."newsfeed/newsfeed.php?show.$newsfeed_id'>".NFLAN_39."</a>";
}
else
{
$LINKTOMAIN = "";
}
$data = "";
$amount = ($items) ? $items : $numtoshow;
$item_total = array_slice($rss->items, 0, $amount);
$i = 0;
while($i < $numtoshow && $item_total[$i])
{
$item = $item_total[$i];
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], TRUE)."</a>\n";
$FEEDITEMLINK = str_replace('&', '&amp;', $FEEDITEMLINK);
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", strip_tags($item['description']));
$FEEDITEMTEXT = $tp->text_truncate($feeditemtext, $truncate, $truncate_string);
$FEEDITEMCREATOR = $tp -> toHTML($item['author'], TRUE);
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU);
$i++;
}
}
if ($where == 'main')
{
$BACKLINK = "<a href='".e_SELF."'>".NFLAN_31."</a>";
$text = preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_START).$data.preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_END);
}
else
{
$text .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU_START) . $data . preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU_END);
}
}

View File

@ -1,27 +1,41 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed_menu.php,v $
| $Revision: 1.1.1.1 $
| $Date: 2006-12-02 04:35:31 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/newsfeed_menu.php,v $
* $Revision: 1.2 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
if (!defined('e107_INIT')) { exit; }
if (!plugInstalled('newsfeed'))
{
return '';
}
include_once(e_PLUGIN."newsfeed/newsfeed_functions.php");
$info = newsfeed_info('all', 'menu');
@include_lan(e_PLUGIN.'newsfeed/languages/'.e_LANGUAGE.'_newsfeed.php');
if(!class_exists('newsfeedClass'))
{
require_once(e_PLUGIN.'newsfeed/newsfeed_functions.php');
}
global $newsFeed;
if (!is_object($newsFeed))
{
$newsFeed = new newsfeedClass;
}
$info = $newsFeed->newsfeedInfo('all', 'menu');
if($info['text'])
{
$ns->tablerender($info['title'], $info['text']);
}
?>

View File

@ -1,79 +0,0 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/plugin.php,v $
| $Revision: 1.2 $
| $Date: 2008-04-29 19:44:25 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
if (!defined('e107_INIT')) { exit; }
@include_once(e_PLUGIN."newsfeed/languages/".e_LANGUAGE.".php");
@include_once(e_PLUGIN."newsfeed/languages/English.php");
// Plugin info -------------------------------------------------------------------------------------------------------
$eplug_name = "NFLAN_01";
$eplug_version = "2.0";
$eplug_author = "Steve Dunstan (jalist)";
$eplug_url = "http://e107.org";
$eplug_email = "jalist@e107.org";
$eplug_description = NFLAN_02;
$eplug_compatible = "e107v0.7+";
$eplug_readme = "";
// Name of the plugin's folder -------------------------------------------------------------------------------------
$eplug_folder = "newsfeed";
// Name of menu item for plugin ----------------------------------------------------------------------------------
$eplug_menu_name = "newsfeed_menu";
// Name of the admin configuration file --------------------------------------------------------------------------
$eplug_conffile = "admin_config.php";
// Icon image and caption text ------------------------------------------------------------------------------------
$eplug_icon = $eplug_folder."/images/newsfeed_32.png";
$eplug_icon_small = $eplug_folder."/images/newsfeed_16.png";
$eplug_caption = NFLAN_03;
// List of preferences -----------------------------------------------------------------------------------------------
$eplug_prefs = array();
// List of table names -----------------------------------------------------------------------------------------------
$eplug_table_names = array("newsfeed");
// List of sql requests to create tables -----------------------------------------------------------------------------
$eplug_tables = array(
"CREATE TABLE ".MPREFIX."newsfeed (
newsfeed_id int(10) unsigned NOT NULL auto_increment,
newsfeed_name varchar(150) NOT NULL default '',
newsfeed_url varchar(250) NOT NULL default '',
newsfeed_data longtext NOT NULL,
newsfeed_timestamp int(10) unsigned NOT NULL default '0',
newsfeed_description text NOT NULL,
newsfeed_image varchar(100) NOT NULL default '',
newsfeed_active tinyint(1) unsigned NOT NULL default '0',
newsfeed_updateint int(10) unsigned NOT NULL default '0',
PRIMARY KEY (newsfeed_id)
) TYPE=MyISAM;");
// Create a link in main menu (yes=TRUE, no=FALSE) -------------------------------------------------------------
$eplug_link = TRUE;
$eplug_link_name = NFLAN_01;
$eplug_link_url = e_PLUGIN."newsfeed/newsfeed.php";
$eplug_link_perms = "Everyone"; // Guest, Member, Admin, Everyone
// Text to display after plugin successfully installed ------------------------------------------------------------------
$eplug_done = NFLAN_04; // "To activate please go to your menus screen and select the pm_menu into one of your menu areas.";
?>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt) -->
<!-- $Id: plugin.xml,v 1.1 2008-12-20 10:39:29 e107steved Exp $ -->
<e107Plugin name="NFLAN_01" version="2.0" compatibility="0.8" installRequired="true">
<author name="Steve Dunstan (jalist)" url="http://e107.org" email="jalist@e107.org" />
<description>NFLAN_02</description>
<folder>newsfeed</folder>
<copyright>Copyright e107 Inc e107.org, Licensed under GPL (http://www.gnu.org/licenses/gpl.txt)</copyright>
<logLanguageFile filename="languages/--LAN--_admin_newsfeed.php" />
<administration>
<configFile>admin_config.php</configFile>
<icon>images/newsfeed_32.png</icon>
<iconSmall>images/newsfeed_16.png</iconSmall>
<caption>Configure newsfeeds</caption>
<installDone>NFLAN_02</installDone>
</administration>
<menuLink name="Newsfeeds" url="newsfeed/newsfeed.php" />
<mainPrefs>
</mainPrefs>
</e107Plugin>

View File

@ -1,20 +1,18 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ?Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/templates/newsfeed_menu_template.php,v $
| $Revision: 1.1.1.1 $
| $Date: 2006-12-02 04:35:31 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/templates/newsfeed_menu_template.php,v $
* $Revision: 1.2 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
if (!defined('e107_INIT')) { exit; }

View File

@ -1,20 +1,18 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/templates/newsfeed_template.php,v $
| $Revision: 1.2 $
| $Date: 2008-05-30 20:36:39 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
* e107 website system
*
* Copyright (C) 2001-2008 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* Plugin - newsfeeds
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/newsfeed/templates/newsfeed_template.php,v $
* $Revision: 1.3 $
* $Date: 2008-12-20 10:39:29 $
* $Author: e107steved $
*
*/
if (!defined('e107_INIT')) { exit; }