mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 05:37:32 +02:00
Merge branch 'master' of https://github.com/e107inc/e107
This commit is contained in:
@@ -18,6 +18,10 @@ if (!defined('e107_INIT'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
define('e_CAPTCHA_FONTCOLOR','#F9A533');
|
||||
|
||||
|
||||
// Required for a clean v1.x -> v2 upgrade.
|
||||
$core = e107::getConfig('core');
|
||||
if($core->get('admintheme') != 'bootstrap')
|
||||
@@ -215,7 +219,7 @@ else
|
||||
.submit { }
|
||||
|
||||
|
||||
.placeholder { color: #bbb; font-style:italic }
|
||||
.placeholder { color: #646667; font-style:italic }
|
||||
|
||||
::-webkit-input-placeholder { font-style:italic; color: #bbb; }
|
||||
|
||||
@@ -227,6 +231,8 @@ else
|
||||
|
||||
#userpass {background: url(".e_IMAGE."admin_images/lock_16.png) no-repeat scroll 7px 9px; padding:7px;padding-left:30px; width:218px; }
|
||||
|
||||
#code-verify { padding: 7px; width: 140px }
|
||||
|
||||
input[disabled] { color: silver; }
|
||||
button[disabled] span { color: silver; }
|
||||
.title_clean { display:none; }
|
||||
|
@@ -17,6 +17,8 @@ if (!defined('e107_INIT'))
|
||||
exit;
|
||||
}
|
||||
|
||||
define('ADMINFEED', 'http://e107.org/adminfeed');
|
||||
define('ADMINFEEDMORE', 'http://e107.org/blog');
|
||||
|
||||
class adminstyle_infopanel
|
||||
{
|
||||
@@ -25,33 +27,19 @@ class adminstyle_infopanel
|
||||
|
||||
function __construct()
|
||||
{
|
||||
e107::js('core','tweet/jquery.tweet.js');
|
||||
// e107::css('core','tweet/jquery.tweet.css');
|
||||
e107::js('core','zrssfeed/jquery.zrssfeed.min.js'); // http://www.zazar.net/developers/jquery/zrssfeed/
|
||||
|
||||
$code = "
|
||||
|
||||
|
||||
$code = <<<EOF
|
||||
jQuery(function($){
|
||||
$("#e-tweet").tweet({
|
||||
username: "e107",
|
||||
join_text: "auto",
|
||||
avatar_size: 16,
|
||||
retweets: false,
|
||||
count: 4,
|
||||
fetch: 5,
|
||||
template: "{text}<br />- {time} » {retweet_action}",
|
||||
filter: function(t){ return ! /^@\w+/.test(t.tweet_raw_text); },
|
||||
auto_join_text_default: "",
|
||||
auto_join_text_ed: "",
|
||||
auto_join_text_ing: "",
|
||||
auto_join_text_reply: "",
|
||||
auto_join_text_url: "",
|
||||
loading_text: " Loading news...",
|
||||
refresh_interval: 60
|
||||
});
|
||||
});
|
||||
EOF;
|
||||
|
||||
|
||||
|
||||
$('#e-adminfeed').rssfeed('".ADMINFEED."', {
|
||||
limit: 3,
|
||||
header: false,
|
||||
linktarget: '_blank'
|
||||
});
|
||||
});
|
||||
";
|
||||
|
||||
global $user_pref; // quick fix.
|
||||
$pref = e107::getPref();
|
||||
@@ -89,8 +77,9 @@ EOF;
|
||||
$pref = e107::getPref();
|
||||
$frm = e107::getForm();
|
||||
|
||||
/*
|
||||
XXX Check Bootstrap bug is fixed.
|
||||
|
||||
// XXX Check Bootstrap bug is fixed.
|
||||
/*
|
||||
echo '
|
||||
<ul class="thumbnails">
|
||||
<li class="span4">
|
||||
@@ -126,8 +115,7 @@ EOF;
|
||||
</ul>
|
||||
|
||||
';
|
||||
*/
|
||||
|
||||
*/
|
||||
//TODO LANs throughout.
|
||||
|
||||
global $style, $user_pref;
|
||||
@@ -213,7 +201,7 @@ EOF;
|
||||
|
||||
// ------------------------------- e107 News --------------------------------
|
||||
|
||||
$text2 = $ns->tablerender("e107 News","<div id='e-tweet'></div>","core-infopanel_news",true);
|
||||
$text2 = $ns->tablerender("e107 News","<div id='e-adminfeed'></div><div class='right'><a rel='external' href='".ADMINFEEDMORE."'>".LAN_MORE."</a></div>","core-infopanel_news",true);
|
||||
|
||||
|
||||
|
||||
@@ -354,7 +342,7 @@ EOF;
|
||||
$dashboard = '
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#tab1" data-toggle="tab"><i class="icon-signal"></i> Stats</a></li>
|
||||
<li ><a href="#tab2" data-toggle="tab"><i class="icon-user"></i> Online</a></li>
|
||||
<li ><a href="#tab2" data-toggle="tab"><i class="icon-user"></i> Online ('.$this->renderOnlineUsers('count').')</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content" style="min-height:300px">
|
||||
@@ -380,7 +368,7 @@ EOF;
|
||||
|
||||
|
||||
|
||||
function renderOnlineUsers()
|
||||
function renderOnlineUsers($data=false)
|
||||
{
|
||||
|
||||
$ol = e107::getOnline();
|
||||
@@ -408,6 +396,11 @@ EOF;
|
||||
<tbody>";
|
||||
|
||||
$online = $ol->userList() + $ol->guestList();
|
||||
|
||||
if($data == 'count')
|
||||
{
|
||||
return count($online);
|
||||
}
|
||||
|
||||
// echo "Users: ".print_a($online);
|
||||
|
||||
|
@@ -1856,18 +1856,34 @@ Inverse 10 <span class="badge badge-inverse">10</span>
|
||||
|
||||
if($type == 'language')
|
||||
{
|
||||
|
||||
$languages = e107::getLanguage()->installed();//array('English','French');
|
||||
$slng = e107::getLanguage();
|
||||
$languages = $slng->installed();//array('English','French');
|
||||
if(count($languages) > 1)
|
||||
{
|
||||
$c = 0;
|
||||
foreach($languages as $lng)
|
||||
{
|
||||
$checked = ($lng == e_LANGUAGE) ? "<i class='icon-ok'></i> " : "<i > </i> ";
|
||||
$checked = "<i > </i> ";
|
||||
$code = $slng->convert($lng);
|
||||
|
||||
if($lng == e_LANGUAGE)
|
||||
{
|
||||
$checked = "<i class='icon-ok'></i> ";
|
||||
$link = '#';
|
||||
}
|
||||
elseif(e107::getPref('multilanguage_subdomain'))
|
||||
{
|
||||
$code = ($lng == e107::getPref('sitelanguage')) ? 'www' : $code;
|
||||
$link = str_replace($_SERVER['HTTP_HOST'], $code.'.'.e_DOMAIN, e_REQUEST_URL); // includes query string
|
||||
}
|
||||
else
|
||||
{
|
||||
$link = e_REQUEST_URL.(e_QUERY ? '&elan='.$lng : '?elan='.$lng);
|
||||
}
|
||||
|
||||
$tmp[$c]['text'] = $lng;
|
||||
$tmp[$c]['description'] = '';
|
||||
$tmp[$c]['link'] = $lng == e_LANGUAGE ? '#' : e_SELF.'?elan='.$lng;
|
||||
$tmp[$c]['link'] = $link;
|
||||
$tmp[$c]['image'] = $checked;
|
||||
$tmp[$c]['image_large'] = '';
|
||||
$tmp[$c]['image_src'] = '';
|
||||
|
@@ -181,6 +181,12 @@ class news_shortcodes extends e_shortcode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function sc_newsavatar()
|
||||
{
|
||||
return vartrue($this->news_item['user_id']) ? e107::getParser()->parseTemplate("{USER_AVATAR=".$this->news_item['user_id']."}",true) : '';
|
||||
}
|
||||
|
||||
function sc_newscommentlink($parm)
|
||||
{
|
||||
return ($this->news_item['news_allow_comments'] ? $this->param['commentoffstring'] : " <a href='".e107::getUrl()->create('news/view/item', $this->news_item)."'>".$this->param['commentlink'].'</a>');
|
||||
@@ -400,8 +406,7 @@ class news_shortcodes extends e_shortcode
|
||||
$src = (is_readable(e_IMAGE_ABS."newspost_images/".$category_icon)) ? e_IMAGE_ABS."newspost_images/".$category_icon : e_IMAGE_ABS."icons/".$category_icon;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$alt_text = e107::getParser()->toHTML($this->news_item['category_name'], FALSE ,'defs');
|
||||
//TODO - remove inline styles
|
||||
if($this->param['caticon'] == ''){$this->param['caticon'] = 'border:0px';}
|
||||
|
||||
@@ -412,12 +417,12 @@ class news_shortcodes extends e_shortcode
|
||||
break;
|
||||
|
||||
case 'tag':
|
||||
return "<img class='news_image' src='{$src}' alt='' style='".$this->param['caticon']."' />";
|
||||
return "<img class='news_image' src='{$src}' alt='$alt_text' style='".$this->param['caticon']."' />";
|
||||
break;
|
||||
|
||||
case 'url':
|
||||
default:
|
||||
return "<a href='".e107::getUrl()->create('news/list/category', $this->news_item)."'><img class='img-rounded' style='".$this->param['caticon']."' src='".$src."' alt='' /></a>";
|
||||
return "<a href='".e107::getUrl()->create('news/list/category', $this->news_item)."'><img class='img-rounded' style='".$this->param['caticon']."' src='".$src."' alt='$alt_text' /></a>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -482,4 +487,4 @@ class news_shortcodes extends e_shortcode
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
@@ -198,6 +198,12 @@ class cpage_shortcodes extends e_shortcode
|
||||
$tp = e107::getParser();
|
||||
$title = $tp->toGlyph($this->page['menu_title']); // (preg_replace('/i_([\w]*)/',"<i class='i_$1'></i>",$this->page['menu_title']);
|
||||
|
||||
// make it work without glyph
|
||||
if(!$title)
|
||||
{
|
||||
$title = $this->page['menu_title'];
|
||||
}
|
||||
|
||||
return $tp->toHTML($title, true, 'TITLE');
|
||||
}
|
||||
|
||||
|
@@ -261,7 +261,7 @@ class comment
|
||||
$indent = ($action == 'reply') ? " class='offset1' " : "";
|
||||
$formid = ($action == 'reply') ? "e-comment-form-reply" : "e-comment-form";
|
||||
|
||||
$text = "\n<div id='{$formid}' {$indent}>\n".e107::getMessage()->render('postcomment', true, false, false);//temporary here
|
||||
$text = "\n<div{$indent}>\n".e107::getMessage()->render('postcomment', true, false, false);//temporary here
|
||||
|
||||
// $text .= "Indent = ".$indent;
|
||||
$text .= "<form id='{$formid}' method='post' action='".str_replace('http:', '', $_SERVER['REQUEST_URI'])."' >";
|
||||
|
@@ -2495,7 +2495,8 @@ class e_parser
|
||||
'default' => array('id', 'style', 'class'),
|
||||
'img' => array('id', 'src', 'style', 'class', 'alt', 'title', 'width', 'height'),
|
||||
'a' => array('id', 'href', 'style', 'class', 'title', 'target'),
|
||||
'script' => array('type', 'src', 'language')
|
||||
'script' => array('type', 'src', 'language'),
|
||||
'iframe' => array('id', 'src', 'frameborder', 'class', 'width', 'height', 'style')
|
||||
);
|
||||
private $badAttrValues = array("javascript[\s]*?:","alert\(","vbscript[\s]*?:","data:text\/html", "mhtml[\s]*?:", "data:[\s]*?image");
|
||||
private $allowedTags = array('html', 'body','div','a','img','table','tr', 'td', 'th', 'tbody', 'thead', 'colgroup', 'b',
|
||||
|
@@ -378,7 +378,14 @@ class e_media
|
||||
}
|
||||
if($cat)
|
||||
{
|
||||
$catArray[] = $cat;
|
||||
if(strpos($cat, "|") && !strpos($cat,"+") )
|
||||
{
|
||||
$catArray = explode("|",$cat);
|
||||
}
|
||||
else
|
||||
{
|
||||
$catArray[] = $cat;
|
||||
}
|
||||
// $inc[] = "media_category LIKE '%".$cat."%' "; // for multiple category field.
|
||||
// $inc[] = "media_category REGEXP '(^|,)(".$cat.")(,|$)' "; // for multiple category field.
|
||||
}
|
||||
|
@@ -24,6 +24,7 @@ class secure_image
|
||||
protected $MYSQL_INFO;
|
||||
protected $THIS_DIR;
|
||||
protected $BASE_DIR;
|
||||
public $FONT_COLOR = "90,90,90";
|
||||
|
||||
function secure_image()
|
||||
{
|
||||
@@ -135,25 +136,60 @@ class secure_image
|
||||
}
|
||||
|
||||
|
||||
|
||||
//XXX Discuss - Add more posibilities for themers? e_CAPTCHA_BGIMAGE, e_CAPTCH_WIDTH, e_CAPTCHA_HEIGHT?
|
||||
function r_image()
|
||||
{
|
||||
if ($user_func = e107::getOverride()->check($this,'r_image'))
|
||||
{
|
||||
return call_user_func($user_func);
|
||||
}
|
||||
|
||||
|
||||
if(defined('e_CAPTCHA_FONTCOLOR'))
|
||||
{
|
||||
$color = str_replace("#","", e_CAPTCHA_FONTCOLOR);
|
||||
}
|
||||
else
|
||||
{
|
||||
$color = 'cccccc';
|
||||
}
|
||||
|
||||
$code = $this->create_code();
|
||||
return "<img src='".e_HTTP.$this->IMAGES_DIRECTORY."secimg.php?{$code}' class='icon secure-image' alt='Missing Code' style='max-width:100%' />";
|
||||
return "<img src='".e_HTTP.$this->IMAGES_DIRECTORY."secimg.php?id={$code}&clr={$color}' class='icon secure-image' alt='Missing Code' style='max-width:100%' />";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function renderImage() // Alias of r_image
|
||||
{
|
||||
return $this->r_image();
|
||||
}
|
||||
|
||||
|
||||
function hex2rgb($hex)
|
||||
{
|
||||
$hex = str_replace("#", "", $hex);
|
||||
|
||||
if(strlen($hex) == 3)
|
||||
{
|
||||
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
|
||||
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
|
||||
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
|
||||
}
|
||||
else
|
||||
{
|
||||
$r = hexdec(substr($hex,0,2));
|
||||
$g = hexdec(substr($hex,2,2));
|
||||
$b = hexdec(substr($hex,4,2));
|
||||
}
|
||||
|
||||
$rgb = array($r, $g, $b);
|
||||
|
||||
return implode(",", $rgb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function renderInput()
|
||||
{
|
||||
@@ -163,7 +199,7 @@ class secure_image
|
||||
}
|
||||
|
||||
$frm = e107::getForm();
|
||||
return $frm->hidden("rand_num", $this->random_number).$frm->text("code_verify", "", 20, array("size"=>20,"title"=> LAN_ENTER_CODE,'required'=>1));
|
||||
return $frm->hidden("rand_num", $this->random_number).$frm->text("code_verify", "", 20, array("size"=>20,"title"=> LAN_ENTER_CODE,'required'=>1, 'placeholder'=>LAN_ENTER_CODE));
|
||||
}
|
||||
|
||||
function renderLabel()
|
||||
@@ -180,8 +216,14 @@ class secure_image
|
||||
/**
|
||||
* Render the generated Image. Called without class2 environment (standalone).
|
||||
*/
|
||||
function render($qcode)
|
||||
function render($qcode, $color='')
|
||||
{
|
||||
if($color)
|
||||
{
|
||||
$this->FONT_COLOR = $this->hex2rgb($color);
|
||||
}
|
||||
|
||||
// echo "COLOR: ".$this->FONT_COLOR;
|
||||
|
||||
require_once($this->BASE_DIR.$this->HANDLERS_DIRECTORY."override_class.php");
|
||||
$over = new override;
|
||||
@@ -262,7 +304,7 @@ class secure_image
|
||||
$fontpath = $this->BASE_DIR.$this->FONTS_DIRECTORY;
|
||||
$secureimg['image'] = "generic/code_bg";
|
||||
$secureimg['angle'] = "0";
|
||||
$secureimg['color'] = "90,90,90"; // red,green,blue
|
||||
$secureimg['color'] = $this->FONT_COLOR; // red,green,blue
|
||||
$secureimg['x'] = "1";
|
||||
$secureimg['y'] = "21";
|
||||
|
||||
@@ -323,18 +365,21 @@ class secure_image
|
||||
|
||||
|
||||
// removing the black from the placeholder
|
||||
|
||||
$image = $this->imageCreateTransparent(100,35); //imagecreatetruecolor(100, 35);
|
||||
|
||||
|
||||
|
||||
if(isset($secureimg['color']))
|
||||
{
|
||||
$tmp = explode(",",$secureimg['color']);
|
||||
$text_color = imagecolorallocate($image,$tmp[0],$tmp[1],$tmp[2]);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$text_color = imagecolorallocate($image, 90, 90, 90);
|
||||
}
|
||||
|
||||
|
||||
header("Content-type: image/{$type}");
|
||||
|
||||
if(isset($secureimg['font']) && is_readable($fontpath.$secureimg['font']))
|
||||
@@ -346,6 +391,8 @@ class secure_image
|
||||
imagestring ($image, 5, 12, 2, $code, $text_color);
|
||||
}
|
||||
|
||||
imagesavealpha($image, true);
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case "jpeg":
|
||||
@@ -363,7 +410,14 @@ class secure_image
|
||||
}
|
||||
|
||||
|
||||
|
||||
function imageCreateTransparent($x, $y)
|
||||
{
|
||||
$imageOut = imagecreatetruecolor($x, $y);
|
||||
$backgroundColor = imagecolorallocatealpha($imageOut, 0, 0, 0, 127);
|
||||
imagefill($imageOut, 0, 0, $backgroundColor);
|
||||
return $imageOut;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -40,7 +40,18 @@ require_once(realpath(e_BASE.$HANDLERS_DIRECTORY.DIRECTORY_SEPARATOR."secure_img
|
||||
|
||||
$sim = new secure_image();
|
||||
|
||||
$sim->render($_SERVER['QUERY_STRING']);
|
||||
$code = $_GET['id'];
|
||||
|
||||
if(preg_match('/^[a-f0-9]{6}$/i', $_GET['clr'])) //hex color is valid
|
||||
{
|
||||
$color = $_GET['clr'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$color = "cccccc";
|
||||
}
|
||||
|
||||
$sim->render($code,$color);
|
||||
|
||||
exit;
|
||||
|
||||
|
@@ -6,57 +6,50 @@
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Notify shim
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_notify.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Notify shim
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
if(defined('ADMIN_PAGE') && ADMIN_PAGE === true)
|
||||
{
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_class.php');
|
||||
$config_category = NT_LAN_EC_1;
|
||||
$config_events = array('ecalnew' => NT_LAN_EC_7, 'ecaledit' => NT_LAN_EC_2);
|
||||
}
|
||||
|
||||
if (!function_exists('notify_ecalnew'))
|
||||
{
|
||||
function notify_ecalnew($data)
|
||||
// v2.x Standard
|
||||
class calendar_menu_notify extends notify
|
||||
{
|
||||
function config()
|
||||
{
|
||||
|
||||
$config = array();
|
||||
|
||||
$config[] = array(
|
||||
'name' => NT_LAN_EC_7,
|
||||
'function' => "ecalnew",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => NT_LAN_EC_2,
|
||||
'function' => "ecaledit",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
function ecalnew($data)
|
||||
{
|
||||
global $nt;
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
$message = NT_LAN_EC_3.': '.USERNAME.' ('.NT_LAN_EC_4.': '.$data['ip'].' )<br />';
|
||||
$message .= NT_LAN_EC_5.':<br />'.$data['cmessage'].'<br /><br />';
|
||||
$nt -> send('ecaledit', NT_LAN_EC_6, $message);
|
||||
|
||||
$this->send('ecalnew', NT_LAN_EC_6, $message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notify_ecaledit'))
|
||||
{
|
||||
function notify_ecaledit($data)
|
||||
function ecaledit($data)
|
||||
{
|
||||
global $nt;
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
$message = NT_LAN_EC_3.': '.USERNAME.' ('.NT_LAN_EC_4.': '.$data['ip'].' )<br />';
|
||||
$message .= NT_LAN_EC_5.':<br />'.$data['cmessage'].'<br /><br />';
|
||||
$nt -> send('ecaledit', NT_LAN_EC_8, $message);
|
||||
}
|
||||
}
|
||||
|
||||
$this->send('ecaledit', NT_LAN_EC_8, $message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
@@ -6,77 +6,89 @@
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* RSS news feed shim
|
||||
* RSS calendar feed
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* RSS news feed shim
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
// TODO LAN
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
if (!e107::isInstalled('calendar_menu')) return;
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_admin_calendar_menu.php'); // RSS messages are in admin language file
|
||||
|
||||
|
||||
//##### create feed for admin, return array $eplug_rss_feed --------------------------------
|
||||
$feed['name'] = EC_ADLAN_A12;
|
||||
$feed['url'] = 'calendar'; //the identifier for the rss feed url
|
||||
$feed['topic_id'] = ''; //the topic_id, empty on default (to select a certain category)
|
||||
$feed['path'] = 'calendar_menu'; //this is the plugin path location
|
||||
$feed['text'] = EC_ADLAN_A157;
|
||||
$feed['class'] = '0';
|
||||
$feed['limit'] = '9';
|
||||
//##### ------------------------------------------------------------------------------------
|
||||
|
||||
require_once('ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
//##### create rss data, return as array $eplug_rss_data -----------------------------------
|
||||
$current_day = $ecal_class->cal_date['mday'];
|
||||
$current_month = $ecal_class->cal_date['mon'];
|
||||
$current_year = $ecal_class->cal_date['year'];
|
||||
$current = mktime(0,0,0,$current_month, $current_day, $current_year);
|
||||
|
||||
$qry = "
|
||||
SELECT e.*, c.event_cat_name
|
||||
FROM `#event` AS e
|
||||
LEFT JOIN `#event_cat` AS c ON c.event_cat_id = e.event_category
|
||||
WHERE e.event_start>='{$current}' AND c.event_cat_class REGEXP '".e_CLASS_REGEXP."'
|
||||
ORDER BY e.event_start ASC LIMIT 0,".$this->limit;
|
||||
|
||||
$rss = array();
|
||||
$sqlrss = new db;
|
||||
if($items = $sqlrss->db_Select_gen($qry))
|
||||
// v2.x Standard
|
||||
class calendar_menu_rss
|
||||
{
|
||||
$i=0;
|
||||
while($rowrss = $sqlrss -> db_Fetch())
|
||||
/**
|
||||
* Admin RSS Configuration
|
||||
*/
|
||||
function config()
|
||||
{
|
||||
$tmp = explode(".", $rowrss['event_author']);
|
||||
$rss[$i]['author'] = $tmp[1];
|
||||
$rss[$i]['author_email'] = '';
|
||||
$rss[$i]['link'] = $e107->base_path.$PLUGINS_DIRECTORY."calendar_menu/event.php?".$rowrss['event_start'].".event.".$rowrss['event_id'];
|
||||
$rss[$i]['linkid'] = $rowrss['event_id'];
|
||||
$rss[$i]['title'] = $rowrss['event_title'];
|
||||
$rss[$i]['description'] = '';
|
||||
$rss[$i]['category_name'] = $rowrss['event_cat_name'];
|
||||
$rss[$i]['category_link'] = '';
|
||||
$rss[$i]['datestamp'] = $rowrss['event_start'];
|
||||
$rss[$i]['enc_url'] = "";
|
||||
$rss[$i]['enc_leng'] = "";
|
||||
$rss[$i]['enc_type'] = "";
|
||||
$i++;
|
||||
$config = array();
|
||||
|
||||
$config[] = array(
|
||||
'name' => 'Calendar',
|
||||
'url' => 'calendar',
|
||||
'topic_id' => '',
|
||||
'description' => 'This is the rss feed for the calendar 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();
|
||||
|
||||
require_once('ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
$eplug_rss_feed[] = $feed;
|
||||
$eplug_rss_data[] = $rss;
|
||||
$current_day = $ecal_class->cal_date['mday'];
|
||||
$current_month = $ecal_class->cal_date['mon'];
|
||||
$current_year = $ecal_class->cal_date['year'];
|
||||
$current = mktime(0,0,0,$current_month, $current_day, $current_year);
|
||||
|
||||
$rss = array();
|
||||
$i=0;
|
||||
|
||||
$query = "
|
||||
SELECT e.*, c.event_cat_name
|
||||
FROM `#event` AS e
|
||||
LEFT JOIN `#event_cat` AS c ON c.event_cat_id = e.event_category
|
||||
WHERE e.event_start>='{$current}' AND c.event_cat_class REGEXP '".e_CLASS_REGEXP."'
|
||||
ORDER BY e.event_start ASC LIMIT 0,".$parms['limit'];
|
||||
|
||||
if($items = $sql->gen($query))
|
||||
{
|
||||
|
||||
while($row = $sql->fetch())
|
||||
{
|
||||
$tmp = explode(".", $row['event_author']);
|
||||
$rss[$i]['author'] = $tmp[1];
|
||||
$rss[$i]['author_email'] = '';
|
||||
$rss[$i]['link'] = "calendar_menu/event.php?".$row['event_start'].".event.".$row['event_id'];
|
||||
$rss[$i]['linkid'] = $row['event_id'];
|
||||
$rss[$i]['title'] = $row['event_title'];
|
||||
$rss[$i]['description'] = '';
|
||||
$rss[$i]['category_name'] = $row['event_cat_name'];
|
||||
$rss[$i]['category_link'] = '';
|
||||
$rss[$i]['datestamp'] = $row['event_start'];
|
||||
$rss[$i]['enc_url'] = "";
|
||||
$rss[$i]['enc_leng'] = "";
|
||||
$rss[$i]['enc_type'] = "";
|
||||
$i++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $rss;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
@@ -48,7 +48,8 @@ define('EC_LAN_RECUR_1300', 'Third');
|
||||
define('EC_LAN_RECUR_1400', 'Fourth');
|
||||
|
||||
|
||||
// Notify
|
||||
/*
|
||||
// Notify - moved to Global
|
||||
define('NT_LAN_EC_1', 'Event Calendar Events');
|
||||
define('NT_LAN_EC_2', 'Event Updated');
|
||||
define('NT_LAN_EC_3', 'Update by');
|
||||
@@ -56,7 +57,7 @@ define('NT_LAN_EC_4', 'IP Address');
|
||||
define('NT_LAN_EC_5', 'Message');
|
||||
define('NT_LAN_EC_6', 'Event Calendar - Event added');
|
||||
define('NT_LAN_EC_7', 'New event posted');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');*/
|
||||
|
||||
|
||||
?>
|
@@ -5,5 +5,14 @@ define("LAN_PLUGIN_CALENDAR_MENU_CONFIG", "Configure Event Calendar");
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_DESCRIPTION", "This plugin is a fully featured event calendar with calendar menu.");
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_LINK", "Calendar");
|
||||
|
||||
// Notify
|
||||
//define('NT_LAN_EC_1', 'Event Calendar Events');
|
||||
define('NT_LAN_EC_2', 'Event Updated');
|
||||
define('NT_LAN_EC_3', 'Update by');
|
||||
define('NT_LAN_EC_4', 'IP Address');
|
||||
define('NT_LAN_EC_5', 'Message');
|
||||
define('NT_LAN_EC_6', 'Event Calendar - Event added');
|
||||
define('NT_LAN_EC_7', 'New event posted');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');
|
||||
|
||||
?>
|
@@ -36,7 +36,7 @@ class chatbox_menu_notify extends notify // plugin-folder + '_notify'
|
||||
{
|
||||
function config()
|
||||
{
|
||||
// include_lan(e_PLUGIN."chatbox_menu/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); Use English_global.php instead.
|
||||
//include_lan(e_PLUGIN."chatbox_menu/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); Use English_global.php instead.
|
||||
|
||||
$config = array();
|
||||
|
||||
@@ -51,7 +51,7 @@ class chatbox_menu_notify extends notify // plugin-folder + '_notify'
|
||||
|
||||
function cboxpost($data)
|
||||
{
|
||||
include_lan(e_PLUGIN."chatbox_menu/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); // Use English_global.php instead.
|
||||
//include_lan(e_PLUGIN."chatbox_menu/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); // Use English_global.php instead.
|
||||
|
||||
$message = NT_LAN_CB_3.': '.USERNAME.' ('.NT_LAN_CB_4.': '.e107::getIPHandler()->ipDecode($data['ip']).' )<br />';
|
||||
$message .= NT_LAN_CB_5.':<br />'.$data['cmessage'].'<br /><br />';
|
||||
|
@@ -41,14 +41,5 @@ define("CHATBOX_L23", "Error!");
|
||||
define("CHATBOX_L24", "You do not have the correct permissions to view this page.");
|
||||
define("CHATBOX_L25", "[ this post has been blocked by admin ]");
|
||||
|
||||
// Notify
|
||||
define("NT_LAN_CB_1", "Chatbox Events");
|
||||
define("NT_LAN_CB_2", "Message posted");
|
||||
define("NT_LAN_CB_3", "Posted by");
|
||||
define("NT_LAN_CB_4", "IP Address");
|
||||
define("NT_LAN_CB_5", "Message");
|
||||
define("NT_LAN_CB_6", "Chatbox Message Posted");
|
||||
|
||||
|
||||
define("LAN_CHATBOX_100", "Type your message here.");
|
||||
?>
|
@@ -12,5 +12,12 @@ define("LAN_AL_CHBLAN_03","Chatbox posts recalculated");
|
||||
define("LAN_AL_CHBLAN_04","");
|
||||
define("LAN_AL_CHBLAN_05","");
|
||||
|
||||
// Notify
|
||||
define("NT_LAN_CB_1", "Chatbox Events");
|
||||
define("NT_LAN_CB_2", "Message posted");
|
||||
define("NT_LAN_CB_3", "Posted by");
|
||||
define("NT_LAN_CB_4", "IP Address");
|
||||
define("NT_LAN_CB_5", "Message");
|
||||
define("NT_LAN_CB_6", "Chatbox Message Posted");
|
||||
|
||||
?>
|
@@ -16,6 +16,8 @@
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
//FIXME TODO - Use v2 method. See chatbox_menu/e_rss.php
|
||||
|
||||
//##### create feed for admin, return array $eplug_rss_feed --------------------------------
|
||||
// Download
|
||||
$feed['name'] = ADLAN_24;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
|
||||
//FIXME TODO - Use v2 method. See chatbox_menu/e_rss.php
|
||||
|
||||
//##### create feed for admin, return array $eplug_rss_feed --------------------------------
|
||||
$feed['name'] = 'Featurebox';
|
||||
|
@@ -10,75 +10,94 @@
|
||||
*
|
||||
*/
|
||||
|
||||
// TODO - create notify messages + LAN
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
if(defined('ADMIN_PAGE') && ADMIN_PAGE === true)
|
||||
{
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php'); // FIXME needs changing after forum lan rewrite
|
||||
$config_category = FORUM_NT_1;
|
||||
$config_events = array(
|
||||
'forum_nt' => FORUM_NT_NEWTHREAD,
|
||||
'forum_ntp' => FORUM_NT_NEWTHREAD_PROB,
|
||||
'forum_thread_del' => FORUM_NT_THREAD_DELETED,
|
||||
'forum_thread_split' => FORUM_NT_THREAD_SPLIT,
|
||||
'forum_post_del' => FORUM_NT_POST_DELETED,
|
||||
'forum_post_rep' => FORUM_NT_POST_REPORTED
|
||||
);
|
||||
// v2.x Standard
|
||||
class forum_notify extends notify
|
||||
{
|
||||
function config()
|
||||
{
|
||||
|
||||
$config = array();
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_NEWTOPIC,
|
||||
'function' => "forum_nt",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_NEWTOPIC_PROB,
|
||||
'function' => "forum_ntp",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_TOPIC_DELETED,
|
||||
'function' => "forum_topic_del",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_TOPIC_SPLIT,
|
||||
'function' => "forum_topic_split",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_POST_DELETED,
|
||||
'function' => "forum_post_del",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => FORUM_NT_POST_REPORTED,
|
||||
'function' => "forum_post_rep",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
function forum_nt($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_nt', FORUM_NT_6, $message);
|
||||
}
|
||||
|
||||
function forum_ntp($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_nt', FORUM_NT_7, $message);
|
||||
}
|
||||
|
||||
function forum_topic_del($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_topic_del', FORUM_NT_8, $message);
|
||||
}
|
||||
|
||||
function forum_topic_split($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_topic_split', FORUM_NT_9, $message);
|
||||
}
|
||||
|
||||
function forum_post_del($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_post_del', FORUM_NT_10, $message);
|
||||
}
|
||||
|
||||
function forum_post_rep($data)
|
||||
{
|
||||
$message = 'todo';
|
||||
$this->send('forum_post_rep', FORUM_NT_11, $message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!function_exists('notify_forum_nt'))
|
||||
{
|
||||
function notify_forum_nt($data)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php');
|
||||
$message = 'todo';
|
||||
$e107->notify->send('forum_nt', FORUM_NT_6, $message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notify_forum_ntp'))
|
||||
{
|
||||
function notify_forum_ntp($data)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php');
|
||||
$message = 'todo';
|
||||
$e107->notify->send('forum_ntp', FORUM_NT_7, $message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('forum_thread_del'))
|
||||
{
|
||||
function forum_thread_del($data)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php');
|
||||
$message = 'todo';
|
||||
$e107->notify->send('forum_thread_del', FORUM_NT_8, $message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('forum_thread_split'))
|
||||
{
|
||||
function forum_thread_split($data)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php');
|
||||
$message = 'todo';
|
||||
$e107->notify->send('forum_thread_split', FORUM_NT_8, $message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('forum_post_rep'))
|
||||
{
|
||||
function forum_post_rep($data)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
include_lan(e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_notify.php');
|
||||
$message = 'todo';
|
||||
$e107->notify->send('forum_post_rep', FORUM_NT_9, $message);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@@ -2,7 +2,7 @@
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
|
||||
//FIXME TODO - Use v2 method. See chatbox_menu/e_rss.php
|
||||
|
||||
//##### create feed for admin, return array $eplug_rss_feed --------------------------------
|
||||
$feed = get_forum_rss();
|
||||
|
@@ -243,7 +243,7 @@ $newflag_list = $forum->forumGetUnreadForums();
|
||||
|
||||
if (!$forumList)
|
||||
{
|
||||
$ns->tablerender(PAGE_NAME, "<div style='text-align:center'>".LAN_FORUM_0067.'</div>', array('forum', '51'));
|
||||
$ns->tablerender(LAN_FORUM_0001, "<div style='text-align:center'>".LAN_FORUM_0067.'</div>', array('forum', '51'));
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
28
e107_plugins/forum/languages/English/English_global.php
Normal file
28
e107_plugins/forum/languages/English/English_global.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
define("LAN_PLUGIN_FORUM_NAME", "Forum");
|
||||
define("LAN_PLUGIN_FORUM_DESC", "This plugin is a fully featured forum system.");
|
||||
|
||||
// Notify
|
||||
// TODO - LAN cleanup (see e_notify)
|
||||
|
||||
//define('FORUM_NT_1', 'Forum Events');
|
||||
//define('FORUM_NT_2', 'Thread');
|
||||
//define('FORUM_NT_3', 'Post');
|
||||
//define('FORUM_NT_4', 'added by');
|
||||
//define('FORUM_NT_5', 'moved by');
|
||||
define('FORUM_NT_6', 'Forum - Thread created');
|
||||
define('FORUM_NT_7', 'Forum - Thread created by new user');
|
||||
define('FORUM_NT_8', 'Forum - Thread deleted');
|
||||
define('FORUM_NT_9', 'Forum - Thread split');
|
||||
define('FORUM_NT_10', 'Forum - Post deleted');
|
||||
define('FORUM_NT_11', 'Forum - Post reported');
|
||||
|
||||
define('FORUM_NT_NEWTOPIC', 'New topic created');
|
||||
define('FORUM_NT_NEWTOPIC_PROB', 'New topic created by probationary member');
|
||||
define('FORUM_NT_TOPIC_DELETED', 'Topic deleted');
|
||||
define('FORUM_NT_TOPIC_SPLIT', 'Topic split');
|
||||
define('FORUM_NT_POST_DELETED', 'Post deleted');
|
||||
define('FORUM_NT_POST_REPORTED', 'Post reported');
|
||||
|
||||
?>
|
@@ -15,7 +15,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
define('FORUM_NT_1', 'Forum Events');
|
||||
// DEPRECATED FILE - NOTIFY LAN ARE NOW IN GLOBAL
|
||||
|
||||
/*define('FORUM_NT_1', 'Forum Events');
|
||||
define('FORUM_NT_2', 'Thread');
|
||||
define('FORUM_NT_3', 'Post');
|
||||
define('FORUM_NT_4', 'added by');
|
||||
@@ -32,4 +34,4 @@ define('FORUM_NT_NEWTHREAD_PROB', 'New thread created by probationary member');
|
||||
define('FORUM_NT_THREAD_DELETED', 'Thread deleted');
|
||||
define('FORUM_NT_THREAD_SPLIT', 'Thread split');
|
||||
define('FORUM_NT_POST_DELETED', 'Post deleted');
|
||||
define('FORUM_NT_POST_REPORTED', 'Post reported');
|
||||
define('FORUM_NT_POST_REPORTED', 'Post reported');*/
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<e107Plugin name="Forum" lan="" version="2.0" date="2012-08-01" compatibility="2.0" installRequired="true">
|
||||
<e107Plugin name="Forum" lan="LAN_PLUGIN_FORUM_NAME" version="2.0" date="2012-08-01" compatibility="2.0" installRequired="true">
|
||||
<author name="e107 Inc." url="http://e107.org" />
|
||||
<description lan="">This plugin is a fully featured Forum system</description>
|
||||
<description lan="LAN_PLUGIN_FORUM_DESC">This plugin is a fully featured forum system</description>
|
||||
<category>content</category>
|
||||
<adminLinks>
|
||||
<link url='forum_admin.php' description='Configure Forum' icon='images/forums_32.png' iconSmall='images/forums_16.png' primary='true' >Configure Forum</link>
|
||||
|
@@ -182,7 +182,7 @@ class gallery_cat_admin_ui extends e_admin_ui
|
||||
$cats = array();
|
||||
foreach($categories as $k=>$var)
|
||||
{
|
||||
list($tmp,$id) = explode("_",$k);
|
||||
$id = preg_replace("/[^0-9]/", '', $k);
|
||||
$cats[$id] = $var['media_cat_title'];
|
||||
}
|
||||
|
||||
|
@@ -181,7 +181,7 @@ class gallery_shortcodes extends e_shortcode
|
||||
$amount = $parms[1] ? intval($parms[1]) : 3; // vartrue(e107::getPlugPref('gallery','slideshow_perslide'),3);
|
||||
$parms = $parms[2];
|
||||
$limit = (integer) vartrue($parms['limit'], 16);
|
||||
$list = e107::getMedia()->getImages('gallery_'.$this->sliderCat,0,$limit);
|
||||
$list = e107::getMedia()->getImages('gallery_'.$this->sliderCat.'|gallery_image_'.$this->sliderCat,0,$limit);
|
||||
$item_template = e107::getTemplate('gallery','gallery', vartrue($parms['template'], 'SLIDESHOW_SLIDE_ITEM'));
|
||||
$catList = e107::getMedia()->getCategories('gallery');
|
||||
$cat = $catList['gallery_'.$this->sliderCat];
|
||||
|
@@ -2,25 +2,15 @@
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
||||
* 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)
|
||||
*
|
||||
* Plugin configuration module - gsitemap
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/gsitemap/e_cron.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
/*if(!plugInstalled('gsitemap'))
|
||||
{
|
||||
return;
|
||||
}*/
|
||||
|
||||
|
||||
class gsitemap_cron // include plugin-folder in the name.
|
||||
{
|
||||
@@ -48,7 +38,6 @@ class gsitemap_cron // include plugin-folder in the name.
|
||||
}
|
||||
|
||||
|
||||
|
||||
function myfunction()
|
||||
{
|
||||
// Whatever code you wish.
|
||||
@@ -57,7 +46,6 @@ class gsitemap_cron // include plugin-folder in the name.
|
||||
}
|
||||
|
||||
|
||||
|
||||
function sendEmail()
|
||||
{
|
||||
|
||||
|
@@ -150,7 +150,7 @@ class import_main_ui extends e_admin_ui
|
||||
function help()
|
||||
{
|
||||
|
||||
return "Some help text from admin-ui";
|
||||
return "Some help text for admin-ui";
|
||||
|
||||
}
|
||||
|
||||
|
@@ -35,7 +35,47 @@ class wordpress_import extends base_import_class
|
||||
public $supported = array('users','news','page','links');
|
||||
public $mprefix = 'wp_';
|
||||
|
||||
function init()
|
||||
{
|
||||
|
||||
|
||||
$this->newsAuthor = intval($_POST['news_author']);
|
||||
|
||||
// if($data = e107::getDb('phpbb')->retrieve('userclass_classes','userclass_id',"userclass_name='FORUM_MODERATOR' "))
|
||||
// {
|
||||
// $this->forum_moderator_class = $data;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
function config()
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
$sql->select('user','user_id, user_name','user_admin = 1');
|
||||
|
||||
$adminList = array();
|
||||
|
||||
$adminList[0] = "Default";
|
||||
|
||||
while($row = $sql->fetch())
|
||||
{
|
||||
$id = $row['user_id'];
|
||||
$adminList[$id] = $row['user_name'];
|
||||
}
|
||||
$frm = e107::getForm();
|
||||
|
||||
$var[0]['caption'] = "News Author Override (optional)";
|
||||
$var[0]['html'] = $frm->select('news_author',$adminList);
|
||||
$var[0]['help'] = "Change the author of the news items";
|
||||
|
||||
// $var[1]['caption'] = "Include revisions";
|
||||
// $var[1]['html'] = $frm->checkbox('news_revisions',1);
|
||||
// $var[1]['help'] = "Change the author of the news items";
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Set up a query for the specified task.
|
||||
@@ -59,9 +99,9 @@ class wordpress_import extends base_import_class
|
||||
LEFT JOIN {$this->DBPrefix}usermeta AS l ON (u.ID = l.user_id AND l.meta_key = 'last_name')
|
||||
GROUP BY u.ID";
|
||||
|
||||
// $this->ourDB -> db_Select_gen($query);
|
||||
// $this->ourDB -> gen($query);
|
||||
|
||||
$result = $this->ourDB->db_Select_gen($query);
|
||||
$result = $this->ourDB->gen($query);
|
||||
|
||||
if ($result === FALSE) return FALSE;
|
||||
|
||||
@@ -79,26 +119,26 @@ class wordpress_import extends base_import_class
|
||||
break;
|
||||
|
||||
case 'news' :
|
||||
$query = "SELECT * FROM {$this->DBPrefix}posts WHERE post_type = 'post' AND post_status !='trash' ORDER BY ID";
|
||||
$result = $this->ourDB->db_Select_gen($query);
|
||||
$query = "SELECT * FROM {$this->DBPrefix}posts WHERE (post_type = 'post') AND post_status !='trash' AND post_status != 'auto-draft' ORDER BY ID";
|
||||
$result = $this->ourDB->gen($query);
|
||||
if ($result === FALSE) return FALSE;
|
||||
break;
|
||||
|
||||
case 'page' :
|
||||
$query = "SELECT * FROM {$this->DBPrefix}posts WHERE post_type = 'page' AND post_status !='trash' ORDER BY ID";
|
||||
$result = $this->ourDB->db_Select_gen($query);
|
||||
$result = $this->ourDB->gen($query);
|
||||
if ($result === FALSE) return FALSE;
|
||||
break;
|
||||
|
||||
case 'media' :
|
||||
$query = "SELECT * FROM {$this->DBPrefix}posts WHERE post_type = 'attachment' AND post_status !='trash' ORDER BY ID";
|
||||
$result = $this->ourDB->db_Select_gen($query);
|
||||
$result = $this->ourDB->gen($query);
|
||||
if ($result === FALSE) return FALSE;
|
||||
break;
|
||||
|
||||
case 'links':
|
||||
$query = "SELECT * FROM {$this->DBPrefix}links WHERE link_id !='' ORDER BY link_id";
|
||||
$result = $this->ourDB->db_Select_gen($query);
|
||||
$result = $this->ourDB->gen($query);
|
||||
if ($result === FALSE) return FALSE;
|
||||
break;
|
||||
|
||||
@@ -205,22 +245,22 @@ class wordpress_import extends base_import_class
|
||||
*/
|
||||
|
||||
// $target['news_id'] = $source['ID'];
|
||||
$target['news_title'] = $source['post_title'];
|
||||
$target['news_title'] = $this->convertText($source['post_title']);
|
||||
$target['news_sef'] = $source['post_name'];
|
||||
$target['news_body'] = (vartrue($source['post_content'])) ? "[html]".$source['post_content']."[/html]" : "";
|
||||
$target['news_body'] = (vartrue($source['post_content'])) ? "[html]".$this->convertText($source['post_content'])."[/html]" : "";
|
||||
// $target['news_extended'] = '';
|
||||
// $target['news_meta_keywords'] = '';
|
||||
// $target['news_meta_description'] = '';
|
||||
$target['news_datestamp'] = strtotime($source['post_date']);
|
||||
$target['news_author'] = $source['post_author'];
|
||||
$target['news_author'] = ($this->newsAuthor !=0) ? $this->newsAuthor : $source['post_author'];
|
||||
// $target['news_category'] = '';
|
||||
$target['news_allow_comments'] = ($source['comment_status']=='open') ? 1 : 0;
|
||||
$target['news_start'] = '';
|
||||
$target['news_end'] = '';
|
||||
$target['news_class'] = '';
|
||||
$target['news_render_type'] = '';
|
||||
$target['news_class'] = $this->newsClass($source['post_status']);
|
||||
// $target['news_render_type'] = '0';
|
||||
$target['news_comment_total'] = $source['comment_count'];
|
||||
$target['news_summary'] = $source['post_excerpt'];
|
||||
$target['news_summary'] = $this->convertText($source['post_excerpt']);
|
||||
$target['news_thumbnail'] = '';
|
||||
$target['news_sticky'] = '';
|
||||
|
||||
@@ -232,6 +272,14 @@ class wordpress_import extends base_import_class
|
||||
|
||||
|
||||
|
||||
// Convert Wordpress Status to e107 News visibility class.
|
||||
function newsClass($status)
|
||||
{
|
||||
$convert = array('publish'=> e_UC_PUBLIC, 'inherit' => e_UC_NOBODY, 'draft' => e_UC_NOBODY);
|
||||
|
||||
return intval($convert[$status]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Align source data to e107 Page Table
|
||||
@@ -257,9 +305,9 @@ class wordpress_import extends base_import_class
|
||||
}
|
||||
|
||||
// $target['page_id'] = $source['ID']; // auto increment
|
||||
$target['page_title'] = $source['post_title'];
|
||||
$target['page_title'] = $this->convertText($source['post_title']);
|
||||
$target['page_sef'] = $source['post_name'];
|
||||
$target['page_text'] = (vartrue($source['post_content'])) ? "[html]".$source['post_content']."[/html]" : "";
|
||||
$target['page_text'] = (vartrue($source['post_content'])) ? "[html]".$this->convertText($source['post_content'])."[/html]" : "";
|
||||
$target['page_metakeys'] = '';
|
||||
$target['page_metadscr'] = '';
|
||||
$target['page_datestamp'] = strtotime($source['post_date']);
|
||||
@@ -321,9 +369,9 @@ class wordpress_import extends base_import_class
|
||||
*/
|
||||
|
||||
|
||||
$target['link_name'] = $source['link_name'];
|
||||
$target['link_name'] = $this->convertText($source['link_name']);
|
||||
$target['link_url'] = $source['link_url'];
|
||||
$target['link_description'] = (vartrue($source['link_description'])) ? "[html]".$source['link_description']."[/html]" : "";
|
||||
$target['link_description'] = (vartrue($source['link_description'])) ? "[html]".$this->convertText($source['link_description'])."[/html]" : "";
|
||||
// $target['link_button'] = '';
|
||||
// $target['link_category'] = '';
|
||||
// $target['link_order'] = '';
|
||||
@@ -341,7 +389,20 @@ class wordpress_import extends base_import_class
|
||||
|
||||
|
||||
|
||||
|
||||
function convertText($text)
|
||||
{
|
||||
//$text = e107::getParser()->toDb($text);
|
||||
return $text;
|
||||
|
||||
$text = html_entity_decode($text,ENT_QUOTES,'UTF-8');
|
||||
|
||||
$detected = mb_detect_encoding($text); // 'ISO-8859-1'
|
||||
$text = iconv($detected,'UTF-8',$text);
|
||||
|
||||
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -898,7 +898,10 @@ li.plupload_delete a {
|
||||
background-position: -525px 0; width: 16px; height: 16px;
|
||||
}
|
||||
|
||||
|
||||
li.rssRow > div {
|
||||
font-size: 80%;
|
||||
color: rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -167,7 +167,7 @@ $ADMIN_HEADER = '<div class="navbar '.$inverse.' navbar-fixed-top">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand " href="'.e_ADMIN_ABS.'admin.php" title="Return to Front Panel"><img class="admin-logo" src="'.e_THEME.'bootstrap/images/e107_adminlogo.png" alt="e107" /></a>
|
||||
<a class="brand " href="'.e_ADMIN_ABS.'admin.php" title="Return to Front Panel"><img class="admin-logo" src="'.e_THEME_ABS.'bootstrap/images/e107_adminlogo.png" alt="e107" /></a>
|
||||
<div class="nav-collapse collapse">
|
||||
|
||||
|
||||
|
@@ -1,264 +0,0 @@
|
||||
// jquery.tweet.js - See http://tweet.seaofclouds.com/ or https://github.com/seaofclouds/tweet for more info
|
||||
// Copyright (c) 2008-2012 Todd Matthews & Steve Purcell
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd)
|
||||
define(['jquery'], factory); // AMD support for RequireJS etc.
|
||||
else
|
||||
factory(jQuery);
|
||||
}(function ($) {
|
||||
$.fn.tweet = function(o){
|
||||
var s = $.extend({
|
||||
username: null, // [string or array] required unless using the 'query' option; one or more twitter screen names (use 'list' option for multiple names, where possible)
|
||||
list: null, // [string] optional name of list belonging to username
|
||||
favorites: false, // [boolean] display the user's favorites instead of his tweets
|
||||
query: null, // [string] optional search query (see also: http://search.twitter.com/operators)
|
||||
avatar_size: null, // [integer] height and width of avatar if displayed (48px max)
|
||||
count: 3, // [integer] how many tweets to display?
|
||||
fetch: null, // [integer] how many tweets to fetch via the API (set this higher than 'count' if using the 'filter' option)
|
||||
page: 1, // [integer] which page of results to fetch (if count != fetch, you'll get unexpected results)
|
||||
retweets: true, // [boolean] whether to fetch (official) retweets (not supported in all display modes)
|
||||
intro_text: null, // [string] do you want text BEFORE your your tweets?
|
||||
outro_text: null, // [string] do you want text AFTER your tweets?
|
||||
join_text: null, // [string] optional text in between date and tweet, try setting to "auto"
|
||||
auto_join_text_default: " I said, ", // [string] auto text for non verb: "I said" bullocks
|
||||
auto_join_text_ed: " I ", // [string] auto text for past tense: "I" surfed
|
||||
auto_join_text_ing: " I am ", // [string] auto tense for present tense: "I was" surfing
|
||||
auto_join_text_reply: " I replied to ", // [string] auto tense for replies: "I replied to" @someone "with"
|
||||
auto_join_text_url: " I was looking at ", // [string] auto tense for urls: "I was looking at" http:...
|
||||
loading_text: null, // [string] optional loading text, displayed while tweets load
|
||||
refresh_interval: null, // [integer] optional number of seconds after which to reload tweets
|
||||
twitter_url: "twitter.com", // [string] custom twitter url, if any (apigee, etc.)
|
||||
twitter_api_url: "api.twitter.com", // [string] custom twitter api url, if any (apigee, etc.)
|
||||
twitter_search_url: "search.twitter.com", // [string] custom twitter search url, if any (apigee, etc.)
|
||||
template: "{avatar}{time}{join} {text}", // [string or function] template used to construct each tweet <li> - see code for available vars
|
||||
comparator: function(tweet1, tweet2) { // [function] comparator used to sort tweets (see Array.sort)
|
||||
return tweet2["tweet_time"] - tweet1["tweet_time"];
|
||||
},
|
||||
filter: function(tweet) { // [function] whether or not to include a particular tweet (be sure to also set 'fetch')
|
||||
return true;
|
||||
}
|
||||
// You can attach callbacks to the following events using jQuery's standard .bind() mechanism:
|
||||
// "loaded" -- triggered when tweets have been fetched and rendered
|
||||
}, o);
|
||||
|
||||
// See http://daringfireball.net/2010/07/improved_regex_for_matching_urls
|
||||
var url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi;
|
||||
|
||||
// Expand values inside simple string templates with {placeholders}
|
||||
function t(template, info) {
|
||||
if (typeof template === "string") {
|
||||
var result = template;
|
||||
for(var key in info) {
|
||||
var val = info[key];
|
||||
result = result.split('{'+key+'}').join(val === null ? '' : val);
|
||||
}
|
||||
return result;
|
||||
} else return template(info);
|
||||
}
|
||||
// Export the t function for use when passing a function as the 'template' option
|
||||
$.extend({tweet: {t: t}});
|
||||
|
||||
function replacer (regex, replacement) {
|
||||
return function() {
|
||||
var returning = [];
|
||||
this.each(function() {
|
||||
returning.push(this.replace(regex, replacement));
|
||||
});
|
||||
return $(returning);
|
||||
};
|
||||
}
|
||||
|
||||
function escapeHTML(s) {
|
||||
return s.replace(/</g,"<").replace(/>/g,"^>");
|
||||
}
|
||||
|
||||
$.fn.extend({
|
||||
linkUser: replacer(/(^|[\W])@(\w+)/gi, "$1<span class=\"at\">@</span><a href=\"http://"+s.twitter_url+"/$2\">$2</a>"),
|
||||
// Support various latin1 (\u00**) and arabic (\u06**) alphanumeric chars
|
||||
linkHash: replacer(/(?:^| )[\#]+([\w\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0600-\u06ff]+)/gi,
|
||||
' <a href="http://'+s.twitter_search_url+'/search?q=&tag=$1&lang=all'+
|
||||
((s.username && s.username.length == 1 && !s.list) ? '&from='+s.username.join("%2BOR%2B") : '')+
|
||||
'" class="tweet_hashtag">#$1</a>'),
|
||||
makeHeart: replacer(/(<)+[3]/gi, "<tt class='heart'>♥</tt>")
|
||||
});
|
||||
|
||||
function linkURLs(text, entities) {
|
||||
return text.replace(url_regexp, function(match) {
|
||||
var url = (/^[a-z]+:/i).test(match) ? match : "http://"+match;
|
||||
var text = match;
|
||||
for(var i = 0; i < entities.length; ++i) {
|
||||
var entity = entities[i];
|
||||
if (entity.url == url && entity.expanded_url) {
|
||||
url = entity.expanded_url;
|
||||
text = entity.display_url;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return "<a href=\""+escapeHTML(url)+"\">"+escapeHTML(text)+"</a>";
|
||||
});
|
||||
}
|
||||
|
||||
function parse_date(date_str) {
|
||||
// The non-search twitter APIs return inconsistently-formatted dates, which Date.parse
|
||||
// cannot handle in IE. We therefore perform the following transformation:
|
||||
// "Wed Apr 29 08:53:31 +0000 2009" => "Wed, Apr 29 2009 08:53:31 +0000"
|
||||
return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
|
||||
}
|
||||
|
||||
function extract_relative_time(date) {
|
||||
var toInt = function(val) { return parseInt(val, 10); };
|
||||
var relative_to = new Date();
|
||||
var delta = toInt((relative_to.getTime() - date) / 1000);
|
||||
if (delta < 1) delta = 0;
|
||||
return {
|
||||
days: toInt(delta / 86400),
|
||||
hours: toInt(delta / 3600),
|
||||
minutes: toInt(delta / 60),
|
||||
seconds: toInt(delta)
|
||||
};
|
||||
}
|
||||
|
||||
function format_relative_time(time_ago) {
|
||||
if ( time_ago.days > 2 ) return 'about ' + time_ago.days + ' days ago';
|
||||
if ( time_ago.hours > 24 ) return 'about a day ago';
|
||||
if ( time_ago.hours > 2 ) return 'about ' + time_ago.hours + ' hours ago';
|
||||
if ( time_ago.minutes > 45 ) return 'about an hour ago';
|
||||
if ( time_ago.minutes > 2 ) return 'about ' + time_ago.minutes + ' minutes ago';
|
||||
if ( time_ago.seconds > 1 ) return 'about ' + time_ago.seconds + ' seconds ago';
|
||||
return 'just now';
|
||||
}
|
||||
|
||||
function build_auto_join_text(text) {
|
||||
if (text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
|
||||
return s.auto_join_text_reply;
|
||||
} else if (text.match(url_regexp)) {
|
||||
return s.auto_join_text_url;
|
||||
} else if (text.match(/^((\w+ed)|just) .*/im)) {
|
||||
return s.auto_join_text_ed;
|
||||
} else if (text.match(/^(\w*ing) .*/i)) {
|
||||
return s.auto_join_text_ing;
|
||||
} else {
|
||||
return s.auto_join_text_default;
|
||||
}
|
||||
}
|
||||
|
||||
function build_api_url() {
|
||||
var proto = ('https:' == document.location.protocol ? 'https:' : 'http:');
|
||||
var count = (s.fetch === null) ? s.count : s.fetch;
|
||||
var common_params = '&callback=?';
|
||||
if (s.list) {
|
||||
return proto+"//"+s.twitter_api_url+"/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?page="+s.page+"&per_page="+count+common_params;
|
||||
} else if (s.favorites) {
|
||||
return proto+"//"+s.twitter_api_url+"/1/favorites.json?screen_name="+s.username[0]+"&page="+s.page+"&count="+count+common_params;
|
||||
} else if (s.query === null && s.username.length == 1) {
|
||||
return proto+'//'+s.twitter_api_url+'/1/statuses/user_timeline.json?screen_name='+s.username[0]+'&count='+count+(s.retweets ? '&include_rts=1' : '')+'&page='+s.page+common_params;
|
||||
} else {
|
||||
var query = (s.query || 'from:'+s.username.join(' OR from:'));
|
||||
return proto+'//'+s.twitter_search_url+'/search.json?&q='+encodeURIComponent(query)+'&rpp='+count+'&page='+s.page+common_params;
|
||||
}
|
||||
}
|
||||
|
||||
function extract_avatar_url(item, secure) {
|
||||
if (secure) {
|
||||
return ('user' in item) ?
|
||||
item.user.profile_image_url_https :
|
||||
extract_avatar_url(item, false).
|
||||
replace(/^http:\/\/[a-z0-9]{1,3}\.twimg\.com\//, "https://s3.amazonaws.com/twitter_production/");
|
||||
} else {
|
||||
return item.profile_image_url || item.user.profile_image_url;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert twitter API objects into data available for
|
||||
// constructing each tweet <li> using a template
|
||||
function extract_template_data(item){
|
||||
var o = {};
|
||||
o.item = item;
|
||||
o.source = item.source;
|
||||
o.screen_name = item.from_user || item.user.screen_name;
|
||||
// The actual user name is not returned by all Twitter APIs, so please do not
|
||||
// file an issue if it is empty:
|
||||
o.name = item.from_user_name || item.user.name;
|
||||
o.retweet = typeof(item.retweeted_status) != 'undefined';
|
||||
|
||||
o.tweet_time = parse_date(item.created_at);
|
||||
o.join_text = s.join_text == "auto" ? build_auto_join_text(item.text) : s.join_text;
|
||||
o.tweet_id = item.id_str;
|
||||
o.twitter_base = "http://"+s.twitter_url+"/";
|
||||
o.user_url = o.twitter_base+o.screen_name;
|
||||
o.tweet_url = o.user_url+"/status/"+o.tweet_id;
|
||||
o.reply_url = o.twitter_base+"intent/tweet?in_reply_to="+o.tweet_id;
|
||||
o.retweet_url = o.twitter_base+"intent/retweet?tweet_id="+o.tweet_id;
|
||||
o.favorite_url = o.twitter_base+"intent/favorite?tweet_id="+o.tweet_id;
|
||||
o.retweeted_screen_name = o.retweet && item.retweeted_status.user.screen_name;
|
||||
o.tweet_relative_time = format_relative_time(extract_relative_time(o.tweet_time));
|
||||
o.entities = item.entities ? (item.entities.urls || []).concat(item.entities.media || []) : [];
|
||||
o.tweet_raw_text = o.retweet ? ('RT @'+o.retweeted_screen_name+' '+item.retweeted_status.text) : item.text; // avoid '...' in long retweets
|
||||
o.tweet_text = $([linkURLs(o.tweet_raw_text, o.entities)]).linkUser().linkHash()[0];
|
||||
o.retweeted_tweet_text = $([linkURLs(item.text, o.entities)]).linkUser().linkHash()[0];
|
||||
o.tweet_text_fancy = $([o.tweet_text]).makeHeart()[0];
|
||||
|
||||
o.avatar_size = s.avatar_size;
|
||||
o.avatar_url = extract_avatar_url(o.retweet ? item.retweeted_status : item, (document.location.protocol === 'https:'));
|
||||
o.avatar_screen_name = o.retweet ? o.retweeted_screen_name : o.screen_name;
|
||||
o.avatar_profile_url = o.twitter_base+o.avatar_screen_name;
|
||||
|
||||
// Default spans, and pre-formatted blocks for common layouts
|
||||
o.user = t('<a class="tweet_user" href="{user_url}">{screen_name}</a>', o);
|
||||
o.join = s.join_text ? t('<span class="tweet_join">{join_text}</span>', o) : '';
|
||||
o.avatar = o.avatar_size ?
|
||||
t('<a class="tweet_avatar" href="{avatar_profile_url}"><img src="{avatar_url}" height="{avatar_size}" width="{avatar_size}" alt="{avatar_screen_name}\'s avatar" title="{avatar_screen_name}\'s avatar" border="0"/></a>', o) : '';
|
||||
o.time = t('<span class="tweet_time"><a href="{tweet_url}" title="view tweet on twitter">{tweet_relative_time}</a></span>', o);
|
||||
o.text = t('<span class="tweet_text">{tweet_text_fancy}</span>', o);
|
||||
o.retweeted_text = t('<span class="tweet_text">{retweeted_tweet_text}</span>', o);
|
||||
o.reply_action = t('<a class="tweet_action tweet_reply" href="{reply_url}">reply</a>', o);
|
||||
o.retweet_action = t('<a class="tweet_action tweet_retweet" href="{retweet_url}">retweet</a>', o);
|
||||
o.favorite_action = t('<a class="tweet_action tweet_favorite" href="{favorite_url}">favorite</a>', o);
|
||||
return o;
|
||||
}
|
||||
|
||||
function render_tweets(widget, tweets) {
|
||||
var list = $('<ul class="tweet_list">');
|
||||
list.append($.map(tweets, function(o) { return "<li>" + t(s.template, o) + "</li>"; }).join('')).
|
||||
children('li:first').addClass('tweet_first').end().
|
||||
children('li:odd').addClass('tweet_even').end().
|
||||
children('li:even').addClass('tweet_odd');
|
||||
|
||||
$(widget).empty().append(list);
|
||||
if (s.intro_text) list.before('<p class="tweet_intro">'+s.intro_text+'</p>');
|
||||
if (s.outro_text) list.after('<p class="tweet_outro">'+s.outro_text+'</p>');
|
||||
|
||||
$(widget).trigger("loaded").trigger((tweets.length === 0 ? "empty" : "full"));
|
||||
if (s.refresh_interval) {
|
||||
window.setTimeout(function() { $(widget).trigger("tweet:load"); }, 1000 * s.refresh_interval);
|
||||
}
|
||||
}
|
||||
|
||||
function load(widget) {
|
||||
var loading = $('<p class="loading">'+s.loading_text+'</p>');
|
||||
if (s.loading_text) $(widget).not(":has(.tweet_list)").empty().append(loading);
|
||||
$.getJSON(build_api_url(), function(data){
|
||||
var tweets = $.map(data.results || data, extract_template_data);
|
||||
tweets = $.grep(tweets, s.filter).sort(s.comparator).slice(0, s.count);
|
||||
$(widget).trigger("tweet:retrieved", [tweets]);
|
||||
});
|
||||
}
|
||||
|
||||
return this.each(function(i, widget){
|
||||
if(s.username && typeof(s.username) == "string"){
|
||||
s.username = [s.username];
|
||||
}
|
||||
|
||||
$(widget).unbind("tweet:render").unbind("tweet:retrieved").unbind("tweet:load").
|
||||
bind({
|
||||
"tweet:load": function() { load(widget); },
|
||||
"tweet:retrieved": function(ev, tweets) {
|
||||
$(widget).trigger("tweet:render", [tweets])
|
||||
},
|
||||
"tweet:render": function(ev, tweets) {
|
||||
render_tweets($(widget), tweets);
|
||||
}
|
||||
}).trigger("tweet:load");
|
||||
});
|
||||
};
|
||||
}));
|
8
e107_web/js/zrssfeed/jquery.zrssfeed.min.js
vendored
Normal file
8
e107_web/js/zrssfeed/jquery.zrssfeed.min.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
(function(l){l.fn.rssfeed=function(b,h,w){h=l.extend({limit:10,offset:1,header:!0,titletag:"h4",date:!0,dateformat:"datetime",content:!0,snippet:!0,media:!0,showerror:!0,errormsg:"",key:null,ssl:!1,linktarget:"_self",linkredirect:"",linkcontent:!1,sort:"",sortasc:!0,historical:!1},h);return this.each(function(z,q){var u=l(q),f="";h.ssl&&(f="s");u.hasClass("rssFeed")||u.addClass("rssFeed");if(null==b)return!1;0<h.offset&&(h.offset-=1);h.limit+=h.offset;f="http"+f+"://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+
|
||||
encodeURIComponent(b);f+="&num="+h.limit;h.historical&&(f+="&scoring=h");null!=h.key&&(f+="&key="+h.key);l.getJSON(f+"&output=json_xml",function(b){if(200==b.responseStatus){var f=b.responseData,e=h;if(b=f.feed){var j=[],d=0,m="",v="odd";if(e.media){var n=f.xmlString;"Microsoft Internet Explorer"==navigator.appName?(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(n)):d=(new DOMParser).parseFromString(n,"text/xml");n=d.getElementsByTagName("item")}e.header&&(m+='<div class="rssHeader"><a href="'+
|
||||
b.link+'" title="'+b.description+'">'+b.title+"</a></div>");m+='<div class="rssBody"><ul>';for(f=e.offset;f<b.entries.length;f++){d=f-e.offset;j[d]=[];var g=b.entries[f],a,c="",k=g.link;switch(e.sort){case "title":c=g.title;break;case "date":c=g.publishedDate}j[d].sort=c;if(g.publishedDate)switch(c=new Date(g.publishedDate),a=c.toLocaleDateString()+" "+c.toLocaleTimeString(),e.dateformat){case "datetime":break;case "date":a=c.toLocaleDateString();break;case "time":a=c.toLocaleTimeString();break;case "timeline":a=
|
||||
new Date(c);a=Math.round(((new Date).getTime()-a.getTime())/1E3);60>a?a="< 1 min":(3600>a?(a=Math.round(a/60)-1,c="min"):86400>a?(a=Math.round(a/3600)-1,c="hour"):604800>a?(a=Math.round(a/86400)-1,c="day"):(a=Math.round(a/604800)-1,c="week"),1<a&&(c+="s"),a=a+" "+c);break;default:a=c,c=new Date(a),a=e.dateformat,a=a.replace("dd",p(c.getDate())),a=a.replace("MMMM",x(c.getMonth())),a=a.replace("MM",p(c.getMonth()+1)),a=a.replace("yyyy",c.getFullYear()),a=a.replace("hh",p(c.getHours())),a=a.replace("mm",
|
||||
p(c.getMinutes())),a=a.replace("ss",p(c.getSeconds()))}e.linkredirect&&(k=encodeURIComponent(k));j[d].html="<"+e.titletag+'><a href="'+e.linkredirect+k+'" title="View this feed at '+b.title+'">'+g.title+"</a></"+e.titletag+">";e.date&&a&&(j[d].html+="<div>"+a+"</div>");e.content&&(g=e.snippet&&""!=g.contentSnippet?g.contentSnippet:g.content,e.linkcontent&&(g='<a href="'+e.linkredirect+k+'" title="View this feed at '+b.title+'">'+g+"</a>"),j[d].html+="<p>"+g+"</p>");if(e.media&&0<n.length&&(k=n[f].getElementsByTagName("enclosure"),
|
||||
0<k.length)){j[d].html+='<div class="rssMedia"><div>Media files</div><ul>';for(g=0;g<k.length;g++){var r=k[g].getAttribute("url"),s=k[g].getAttribute("type"),t=k[g].getAttribute("length"),c=j[d],y=j[d].html,r='<li><a href="'+r+'" title="Download this media">'+r.split("/").pop()+"</a> ("+s+", ",s=Math.floor(Math.log(t)/Math.log(1024)),t=(t/Math.pow(1024,Math.floor(s))).toFixed(2)+" "+"bytes kb MB GB TB PB".split(" ")[s];c.html=y+(r+t+")</li>")}j[d].html+="</ul></div>"}}e.sort&&j.sort(function(a,c){if(e.sortasc)var b=
|
||||
a.sort,d=c.sort;else b=c.sort,d=a.sort;if("date"==e.sort)return new Date(b)-new Date(d);b=b.toLowerCase();d=d.toLowerCase();return b<d?-1:b>d?1:0});l.each(j,function(a){m+='<li class="rssRow '+v+'">'+j[a].html+"</li>";v="odd"==v?"even":"odd"});m+="</ul></div>";l(q).html(m);l("a",q).attr("target",e.linktarget)}l.isFunction(w)&&w.call(this,u)}else h.showerror&&(d=""!=h.errormsg?h.errormsg:b.responseDetails),l(q).html('<div class="rssError"><p>'+d+"</p></div>")})})};var p=function(b){b+="";2>b.length&&
|
||||
(b="0"+b);return b},x=function(b){return"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")[b]}})(jQuery);
|
Reference in New Issue
Block a user