mirror of
https://github.com/e107inc/e107.git
synced 2025-07-27 18:00:30 +02:00
Updated shortcode handler to support class->method use in batch shortcodes. Updated bbcode and news shortcodes to use this new method. Reduced the use of cachevar usage in the new shortcodes.
I may have broken overriding of core news shortcodes, need to look into that.
This commit is contained in:
@@ -1,304 +1,352 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||
* $Id: news_shortcodes.php,v 1.14 2008-12-03 12:38:07 secretr Exp $
|
||||
*
|
||||
* News shortcode batch
|
||||
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||
* $Id: news_shortcodes.php,v 1.15 2009-01-07 19:57:09 mcfly_e107 Exp $
|
||||
*
|
||||
* News shortcode batch
|
||||
*/
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
include_once(e_HANDLER.'shortcode_handler.php');
|
||||
$news_shortcodes = $tp -> e_sc -> parse_scbatch(__FILE__);
|
||||
/*
|
||||
SC_BEGIN NEWSTITLE
|
||||
global $tp;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return $tp -> toHTML($news_item['news_title'], TRUE, 'TITLE');
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSBODY
|
||||
global $tp;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$news_body = $tp -> toHTML($news_item['news_body'], TRUE, 'BODY, fromadmin', $news_item['news_author']);
|
||||
if($news_item['news_extended'] && (isset($_POST['preview']) || strpos(e_QUERY, 'extend') !== FALSE) && $parm != "noextend") {
|
||||
$news_extended = $tp -> toHTML($news_item['news_extended'], TRUE, 'BODY, fromadmin', $news_item['news_author']);
|
||||
$news_body .= "<br /><br />".$news_extended;
|
||||
}
|
||||
return $news_body;
|
||||
SC_END
|
||||
$codes = array(
|
||||
'newstitle', 'newsbody', 'newsicon','newsauthor', 'newscomments',
|
||||
'trackback', 'newsheader', 'newscategory', 'newsdate', 'newscommentlink',
|
||||
'newscommentcount', 'emailicon', 'printicon', 'pdficon', 'newsid', 'adminoptions',
|
||||
'extended', 'captionclass', 'admincaption', 'adminbody', 'newssummary',
|
||||
'newsthumbnail', 'newsimage', 'sticky_icon', 'newstitlelink', 'newscaticon', 'newsinfo'
|
||||
);
|
||||
register_shortcode('news_shortcodes', $codes);
|
||||
|
||||
SC_BEGIN NEWSICON
|
||||
global $e107, $tp, $news_shortcodes;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$category_icon = $tp -> parseTemplate('{NEWSHEADER}', FALSE, $news_shortcodes);
|
||||
if (!$category_icon) return '';
|
||||
|
||||
return "<a href='".$e107->url->getUrl('core:news', 'main', 'action=cat&value='.$news_item['news_category'])."'><img style='".$param['caticon']."' src='".$category_icon."' alt='' /></a>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSHEADER
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$category_icon = str_replace("../", "", trim($news_item['category_icon']));
|
||||
if (!$category_icon) return '';
|
||||
if ($category_icon && strstr("images", $category_icon)) {
|
||||
return THEME_ABS.$category_icon;
|
||||
} else {
|
||||
return e_IMAGE_ABS."icons/".$category_icon;
|
||||
}
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSCATEGORY
|
||||
global $tp, $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$category_name = $tp -> toHTML($news_item['category_name'],FALSE,"defs");
|
||||
return "<a class='".$GLOBALS['NEWS_CSSMODE']."_category' style='".(isset($param['catlink']) ? $param['catlink'] : "#")."' href='".$e107->url->getUrl('core:news', 'main', 'action=cat&value='.$news_item['news_category'])."'>".$category_name."</a>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSAUTHOR
|
||||
global $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
if($news_item['user_id'])
|
||||
class news_shortcodes
|
||||
{
|
||||
if($parm == 'nolink')
|
||||
var $news_item, $param, $e107;
|
||||
|
||||
function news_shortcodes()
|
||||
{
|
||||
return $news_item['user_name'];
|
||||
$this->e107 = e107::getInstance();
|
||||
}
|
||||
else
|
||||
|
||||
function load_news_item()
|
||||
{
|
||||
return "<a href='".$e107->url->getUrl('core:user', 'main', 'func=profile&id='.$news_item['user_id'])."'>".$news_item['user_name']."{$parm}</a>";
|
||||
global $newsItemBegin;
|
||||
if($newsItemBegin == true)
|
||||
{
|
||||
$this->news_item = getcachedvars('current_news_item');
|
||||
$this->param = getcachedvars('current_news_param');
|
||||
$newsItemBegin = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return "<a href='http://e107.org'>e107</a>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSDATE
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$con = new convert;
|
||||
if($parm == "")
|
||||
{
|
||||
return $con -> convert_date($news_item['news_datestamp'], 'long');
|
||||
}
|
||||
switch($parm)
|
||||
{
|
||||
case 'long':
|
||||
return $con -> convert_date($news_item['news_datestamp'], 'long');
|
||||
break;
|
||||
case 'short':
|
||||
return $con -> convert_date($news_item['news_datestamp'], 'short');
|
||||
break;
|
||||
case 'forum':
|
||||
return $con -> convert_date($news_item['news_datestamp'], 'forum');
|
||||
break;
|
||||
default :
|
||||
return date($parm, $news_item['news_datestamp']);
|
||||
break;
|
||||
}
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSCOMMENTS
|
||||
global $pref, $sql;
|
||||
if($pref['comments_disabled'] == 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
|
||||
if (varsettrue($pref['multilanguage']))
|
||||
{ // Can have multilanguage news table, monlingual comment table. If the comment table is multilingual, it'll only count entries in the current language
|
||||
$news_item['news_comment_total'] = $sql->db_Select("comments", "*", "comment_item_id='".$news_item['news_id']."' AND comment_type='0' ");
|
||||
}
|
||||
|
||||
if ($pref['comments_icon'] && $news_item['news_comment_total'])
|
||||
{
|
||||
$sql->db_Select('comments', 'comment_datestamp', "comment_item_id='".intval($news_item['news_id'])."' AND comment_type='0' ORDER BY comment_datestamp DESC LIMIT 0,1");
|
||||
list($comments['comment_datestamp']) = $sql->db_Fetch();
|
||||
$latest_comment = $comments['comment_datestamp'];
|
||||
if ($latest_comment > USERLV )
|
||||
function get_newstitle()
|
||||
{
|
||||
$NEWIMAGE = $param['image_new_small'];
|
||||
$this->load_news_item();
|
||||
return $this->e107->tp->toHTML($this->news_item['news_title'], TRUE, 'TITLE');
|
||||
}
|
||||
else
|
||||
|
||||
function get_newsbody($parm)
|
||||
{
|
||||
$NEWIMAGE = $param['image_nonew_small'];
|
||||
$this->load_news_item();
|
||||
$news_body = $this->e107->tp->toHTML($this->news_item['news_body'], true, 'BODY, fromadmin', $this->news_item['news_author']);
|
||||
if($this->news_item['news_extended'] && (isset($_POST['preview']) || strpos(e_QUERY, 'extend') !== FALSE) && $parm != 'noextend')
|
||||
{
|
||||
$news_extended = $this->e107->tp->toHTML($this->news_item['news_extended'], true, 'BODY, fromadmin', $this->news_item['news_author']);
|
||||
$news_body .= '<br /><br />'.$news_extended;
|
||||
}
|
||||
return $news_body;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$NEWIMAGE = $param['image_nonew_small'];
|
||||
}
|
||||
return ($news_item['news_allow_comments'] ? $param['commentoffstring'] : ''.($pref['comments_icon'] ? $NEWIMAGE : '')." <a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."'>".$param['commentlink'].$news_item['news_comment_total'].'</a>');
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSCOMMENTLINK
|
||||
global $pref, $sql;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return ($news_item['news_allow_comments'] ? $param['commentoffstring'] : " <a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."'>".$param['commentlink']."</a>");
|
||||
SC_END
|
||||
function get_newsicon($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
$category_icon = str_replace('../', '', trim($this->news_item['category_icon']));
|
||||
if ($category_icon && strstr('images', $category_icon))
|
||||
{
|
||||
$category_icon = THEME_ABS.$category_icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
$category_icon = e_IMAGE_ABS.'icons/'.$category_icon;
|
||||
}
|
||||
if (!$category_icon) { return ''; }
|
||||
|
||||
SC_BEGIN NEWSCOMMENTCOUNT
|
||||
global $pref, $sql;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
return $news_item['news_comment_total'];
|
||||
SC_END
|
||||
|
||||
|
||||
SC_BEGIN EMAILICON
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
require_once(e_HANDLER.'emailprint_class.php');
|
||||
return emailprint::render_emailprint('news', $news_item['news_id'], 1);
|
||||
SC_END
|
||||
|
||||
SC_BEGIN PRINTICON
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
require_once(e_HANDLER.'emailprint_class.php');
|
||||
return emailprint::render_emailprint('news', $news_item['news_id'], 2);
|
||||
SC_END
|
||||
|
||||
SC_BEGIN PDFICON
|
||||
global $tp, $pref;
|
||||
if (!$pref['plug_installed']['pdf']) return '';
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
return $tp -> parseTemplate("{PDF=".LAN_NEWS_24."^news.".$news_item['news_id']."}");
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSID
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return $news_item['news_id'];
|
||||
SC_END
|
||||
|
||||
SC_BEGIN ADMINOPTIONS
|
||||
global $imode;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
if (ADMIN && getperms("H")) {
|
||||
$adop_icon = (file_exists(THEME."images/newsedit.png") ? THEME_ABS."images/newsedit.png" : e_IMAGE_ABS."packs/".$imode."/generic/newsedit.png");
|
||||
return " <a href='".e_ADMIN_ABS."newspost.php?create.edit.".$news_item['news_id']."'><img src='".$adop_icon."' alt='' style='border:0' /></a>\n";
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
SC_END
|
||||
|
||||
SC_BEGIN EXTENDED
|
||||
global $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
if ($news_item['news_extended'] && (strpos(e_QUERY, 'extend') === FALSE || $parm == "force")) {
|
||||
if (defined("PRE_EXTENDEDSTRING")) {
|
||||
$es1 = PRE_EXTENDEDSTRING;
|
||||
return "<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>";
|
||||
}
|
||||
if (defined("POST_EXTENDEDSTRING")) {
|
||||
$es2 = POST_EXTENDEDSTRING;
|
||||
|
||||
function get_newsauthor($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
if($this->news_item['user_id'])
|
||||
{
|
||||
if($parm == 'nolink')
|
||||
{
|
||||
return $this->news_item['user_name'];
|
||||
}
|
||||
else
|
||||
{
|
||||
return "<a href='".$this->e107->url->getUrl('core:user', 'main', 'func=profile&id='.$this->news_item['user_id'])."'>".$this->news_item['user_name']."{$parm}</a>";
|
||||
}
|
||||
}
|
||||
return "<a href='http://e107.org'>e107</a>";
|
||||
}
|
||||
if (isset($_POST['preview'])) {
|
||||
return $es1.EXTENDEDSTRING.$es2."<br />".$news_item['news_extended'];
|
||||
} else {
|
||||
return $es1."<a href='".$e107->url->getUrl('core:news', 'main', 'action=extend&value='.$news_item['news_id'])."'>".EXTENDEDSTRING."</a>".$es2;
|
||||
|
||||
function get_newscomments($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
global $pref, $sql;
|
||||
if($pref['comments_disabled'] == 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
$news_item = $this->news_item;
|
||||
$param = $this->param;
|
||||
|
||||
if (varsettrue($pref['multilanguage']))
|
||||
{ // Can have multilanguage news table, monlingual comment table. If the comment table is multilingual, it'll only count entries in the current language
|
||||
$news_item['news_comment_total'] = $sql->db_Select("comments", "*", "comment_item_id='".$news_item['news_id']."' AND comment_type='0' ");
|
||||
}
|
||||
|
||||
if ($pref['comments_icon'] && $news_item['news_comment_total'])
|
||||
{
|
||||
$sql->db_Select('comments', 'comment_datestamp', "comment_item_id='".intval($news_item['news_id'])."' AND comment_type='0' ORDER BY comment_datestamp DESC LIMIT 0,1");
|
||||
list($comments['comment_datestamp']) = $sql->db_Fetch();
|
||||
$latest_comment = $comments['comment_datestamp'];
|
||||
if ($latest_comment > USERLV )
|
||||
{
|
||||
$NEWIMAGE = $param['image_new_small'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$NEWIMAGE = $param['image_nonew_small'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$NEWIMAGE = $param['image_nonew_small'];
|
||||
}
|
||||
return ($news_item['news_allow_comments'] ? $param['commentoffstring'] : ''.($pref['comments_icon'] ? $NEWIMAGE : '')." <a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."'>".$param['commentlink'].$news_item['news_comment_total'].'</a>');
|
||||
}
|
||||
} else {
|
||||
return "";
|
||||
|
||||
function get_trackback($parm)
|
||||
{
|
||||
global $pref;
|
||||
$this->load_news_item();
|
||||
if(!varsettrue($pref['trackbackEnabled'])) { return ''; }
|
||||
return ($this->param['trackbackbeforestring'] ? $this->param['trackbackbeforestring'] : '')."<a href='".e_HTTP."comment.php?comment.news.".$this->news_item['news_id']."#track'>".$this->param['trackbackstring'].$this->news_item['tb_count'].'</a>'.($this->param['trackbackafterstring'] ? $this->param['trackbackafterstring'] : '');
|
||||
}
|
||||
|
||||
function get_newsheader($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
$category_icon = str_replace("../", "", trim($this->news_item['category_icon']));
|
||||
if (!$category_icon) return '';
|
||||
if ($category_icon && strstr("images", $category_icon)) {
|
||||
return THEME_ABS.$category_icon;
|
||||
} else {
|
||||
return e_IMAGE_ABS."icons/".$category_icon;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_newscategory($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
$category_name = $this->e107->tp->toHTML($this->news_item['category_name'], FALSE ,'defs');
|
||||
return "<a class='".$GLOBALS['NEWS_CSSMODE']."_category' style='".(isset($this->param['catlink']) ? $this->param['catlink'] : "#")."' href='".$e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'>".$category_name."</a>";
|
||||
}
|
||||
|
||||
function get_newsdate($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
$con = new convert;
|
||||
if($parm == '')
|
||||
{
|
||||
return $con->convert_date($this->news_item['news_datestamp'], 'long');
|
||||
}
|
||||
switch($parm)
|
||||
{
|
||||
case 'long':
|
||||
return $con->convert_date($this->news_item['news_datestamp'], 'long');
|
||||
break;
|
||||
case 'short':
|
||||
return $con->convert_date($this->news_item['news_datestamp'], 'short');
|
||||
break;
|
||||
case 'forum':
|
||||
return $con->convert_date($this->news_item['news_datestamp'], 'forum');
|
||||
break;
|
||||
default :
|
||||
return date($parm, $this->news_item['news_datestamp']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function get_newscommentlink($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
return ($this->news_item['news_allow_comments'] ? $this->param['commentoffstring'] : " <a href='".e_HTTP."comment.php?comment.news.".$this->news_item['news_id']."'>".$this->param['commentlink'].'</a>');
|
||||
}
|
||||
|
||||
function get_newscommentcount($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
return $this->news_item['news_comment_total'];
|
||||
}
|
||||
|
||||
function get_emailicon($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
require_once(e_HANDLER.'emailprint_class.php');
|
||||
return emailprint::render_emailprint('news', $this->news_item['news_id'], 1);
|
||||
}
|
||||
|
||||
function get_printicon()
|
||||
{
|
||||
$this->load_news_item();
|
||||
require_once(e_HANDLER.'emailprint_class.php');
|
||||
return emailprint::render_emailprint('news', $this->news_item['news_id'], 2);
|
||||
}
|
||||
|
||||
function get_pdficon()
|
||||
{
|
||||
global $pref;
|
||||
$this->load_news_item();
|
||||
if (!$pref['plug_installed']['pdf']) { return ''; }
|
||||
return $this->e107->tp->parseTemplate('{PDF='.LAN_NEWS_24.'^news.'.$this->news_item['news_id'].'}');
|
||||
}
|
||||
|
||||
function get_newsid()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return $this->news_item['news_id'];
|
||||
}
|
||||
|
||||
function get_adminoptions()
|
||||
{
|
||||
global $imode;
|
||||
$this->load_news_item();
|
||||
if (ADMIN && getperms('H'))
|
||||
{
|
||||
$adop_icon = (file_exists(THEME."images/newsedit.png") ? THEME_ABS."images/newsedit.png" : e_IMAGE_ABS."packs/".$imode."/generic/newsedit.png");
|
||||
return " <a href='".e_ADMIN_ABS."newspost.php?create.edit.".$this->news_item['news_id']."'><img src='".$adop_icon."' alt='' style='border:0' /></a>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function get_extended($parm)
|
||||
{
|
||||
$this->load_news_item();
|
||||
if ($this->news_item['news_extended'] && (strpos(e_QUERY, 'extend') === FALSE || $parm == 'force'))
|
||||
{
|
||||
if (defined('PRE_EXTENDEDSTRING'))
|
||||
{
|
||||
$es1 = PRE_EXTENDEDSTRING;
|
||||
}
|
||||
if (defined('POST_EXTENDEDSTRING'))
|
||||
{
|
||||
$es2 = POST_EXTENDEDSTRING;
|
||||
}
|
||||
if (isset($_POST['preview']))
|
||||
{
|
||||
return $es1.EXTENDEDSTRING.$es2."<br />".$this->news_item['news_extended'];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $es1."<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=extend&value='.$this->news_item['news_id'])."'>".EXTENDEDSTRING."</a>".$es2;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function get_captionclass()
|
||||
{
|
||||
$this->load_news_item();
|
||||
$news_title = $this->e107->tp->toHTML($this->news_item['news_title'], TRUE,'no_hook,emotes_off, no_make_clickable');
|
||||
return "<div class='category".$this->news_item['news_category']."'>".($this->news_item['news_render_type'] == 1 ? "<a href='".e_HTTP."comment.php?comment.news.".$this->news_item['news_id']."'>".$news_title."</a>" : $news_title)."</div>";
|
||||
}
|
||||
|
||||
function get_admincaption()
|
||||
{
|
||||
$this->load_news_item();
|
||||
$news_title = $this->e107->tp->toHTML($this->news_item['news_title'], TRUE,'no_hook,emotes_off, no_make_clickable');
|
||||
return "<div class='".(defined(ADMINNAME) ? ADMINNAME : "null")."'>".($this->news_item['news_render_type'] == 1 ? "<a href='".e_HTTP."comment.php?comment.news.".$this->news_item['news_id']."'>".$news_title."</a>" : $news_title)."</div>";
|
||||
}
|
||||
|
||||
function get_adminbody()
|
||||
{
|
||||
global $tp, $news_shortcodes;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$news_body = $tp->parseTemplate('{NEWSBODY}', FALSE, $news_shortcodes);
|
||||
return "<div class='".(defined(ADMINNAME) ? ADMINNAME : 'null')."'>".$news_body.'</div>';
|
||||
}
|
||||
|
||||
function get_newssummary()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return ($this->news_item['news_summary']) ? $this->news_item['news_summary'].'<br />' : '';
|
||||
}
|
||||
|
||||
function get_newsthumbnail()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : '';
|
||||
}
|
||||
|
||||
function get_newsimage()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : '';
|
||||
}
|
||||
|
||||
function get_sticky_icon()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return $this->news_item['news_sticky'] ? $this->param['image_sticky'] : '';
|
||||
}
|
||||
|
||||
function get_newstitlelink()
|
||||
{
|
||||
$this->load_news_item();
|
||||
return "<a style='".(isset($this->param['itemlink']) ? $this->param['itemlink'] : 'null')."' href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'>".$this->news_item['news_title'].'</a>';
|
||||
}
|
||||
|
||||
function get_newscaticon()
|
||||
{
|
||||
$this->load_news_item();
|
||||
$category_icon = str_replace('../', '', trim($this->news_item['category_icon']));
|
||||
if (!$category_icon) { return ''; }
|
||||
if ($category_icon && strstr('images', $category_icon))
|
||||
{
|
||||
$category_icon = THEME_ABS.$category_icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
$category_icon = e_IMAGE_ABS.'icons/'.$category_icon;
|
||||
}
|
||||
|
||||
if($this->param['caticon'] == ''){$this->param['caticon'] = 'border:0px';}
|
||||
return "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=cat&value={$this->news_item['news_category']}")."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>";
|
||||
}
|
||||
|
||||
function get_newsinfo()
|
||||
{
|
||||
$this->load_news_item();
|
||||
$news_item = $this->news_item;
|
||||
$param = $this->param;
|
||||
$con = new convert;
|
||||
$news_item['news_start'] = (isset($news_item['news_start']) && $news_item['news_start'] ? str_replace(' - 00:00:00', '', $con->convert_date($news_item['news_start'], 'long')) : LAN_NEWS_19);
|
||||
$news_item['news_end'] = (isset($news_item['news_end']) && $news_item['news_end'] ? ' to '.str_replace(' - 00:00:00', '', $con->convert_date($news_item['news_end'], 'long')) : '');
|
||||
$info = $news_item['news_render_type'] == 1 ? LAN_NEWS_9 : '';
|
||||
$info .= $news_item['news_class'] == 255 ? LAN_NEWS_10 : LAN_NEWS_11;
|
||||
$info .= $news_item['news_sticky'] ? '<br />'.LAN_NEWS_31 : '';
|
||||
$info .= '<br />'.($news_item['news_allow_comments'] ? LAN_NEWS_13 : LAN_NEWS_12);
|
||||
$info .= LAN_NEWS_14.$news_item['news_start'].$news_item['news_end'].'<br />';
|
||||
$info .= LAN_NEWS_15.strlen($news_item['news_body']).LAN_NEWS_16.strlen($news_item['news_extended']).LAN_NEWS_17."<br /><br />";
|
||||
return $this->e107->ns->tablerender(LAN_NEWS_18, $info);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
SC_END
|
||||
|
||||
SC_BEGIN CAPTIONCLASS
|
||||
global $tp;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$news_title = $tp -> toHTML($news_item['news_title'], TRUE,'no_hook,emotes_off, no_make_clickable');
|
||||
return "<div class='category".$news_item['news_category']."'>".($news_item['news_render_type'] == 1 ? "<a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."'>".$news_title."</a>" : $news_title)."</div>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN ADMINCAPTION
|
||||
global $tp;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$news_title = $tp -> toHTML($news_item['news_title'], TRUE,'no_hook,emotes_off, no_make_clickable');
|
||||
return "<div class='".(defined(ADMINNAME) ? ADMINNAME : "null")."'>".($news_item['news_render_type'] == 1 ? "<a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."'>".$news_title."</a>" : $news_title)."</div>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN ADMINBODY
|
||||
global $tp, $news_shortcodes;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$news_body = $tp -> parseTemplate('{NEWSBODY}', FALSE, $news_shortcodes);
|
||||
return "<div class='".(defined(ADMINNAME) ? ADMINNAME : "null")."'>".$news_body."</div>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSSUMMARY
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return ($news_item['news_summary']) ? $news_item['news_summary']."<br />" : "";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSTHUMBNAIL
|
||||
global $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return (isset($news_item['news_thumbnail']) && $news_item['news_thumbnail']) ? "<a href='".$e107->url->getUrl('core:news', 'main', "action=item&value1={$news_item['news_id']}&value2={$news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$news_item['news_thumbnail']."' alt='' style='".$param['thumbnail']."' /></a>" : "";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSIMAGE
|
||||
global $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return (isset($news_item['news_thumbnail']) && $news_item['news_thumbnail']) ? "<a href='".$e107->url->getUrl('core:news', 'main', "action=item&value1={$news_item['news_id']}&value2={$news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$news_item['news_thumbnail']."' alt='' style='".$param['thumbnail']."' /></a>" : "";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN STICKY_ICON
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return $news_item['news_sticky'] ? $param['image_sticky'] : "";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSTITLELINK
|
||||
global $e107;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return "<a style='".(isset($param['itemlink']) ? $param['itemlink'] : "null")."' href='".$e107->url->getUrl('core:news', 'main', "action=item&value1={$news_item['news_id']}&value2={$news_item['news_category']}")."'>".$news_item['news_title']."</a>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSCATICON
|
||||
global $e107, $news_shortcodes;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$category_icon = $e107->tp->parseTemplate('{NEWSHEADER}', FALSE, $news_shortcodes);
|
||||
if (!$category_icon) return '';
|
||||
if($param['caticon'] == ""){$param['caticon'] = "border:0px";}
|
||||
return "<a href='".$e107->url->getUrl('core:news', 'main', "action=cat&value={$news_item['news_category']}")."'><img style='".$param['caticon']."' src='".$category_icon."' alt='' /></a>";
|
||||
SC_END
|
||||
|
||||
SC_BEGIN TRACKBACK
|
||||
global $pref;
|
||||
if(!varsettrue($pref['trackbackEnabled'])) return '';
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
return ($param['trackbackbeforestring'] ? $param['trackbackbeforestring'] : "")."<a href='".e_HTTP."comment.php?comment.news.".$news_item['news_id']."#track'>".$param['trackbackstring'].$news_item['tb_count']."</a>".($param['trackbackafterstring'] ? $param['trackbackafterstring'] : "");
|
||||
SC_END
|
||||
|
||||
SC_BEGIN NEWSINFO
|
||||
global $ns;
|
||||
$news_item = getcachedvars('current_news_item');
|
||||
$param = getcachedvars('current_news_param');
|
||||
$con = new convert;
|
||||
$news_item['news_start'] = (isset($news_item['news_start']) && $news_item['news_start'] ? str_replace(" - 00:00:00", "", $con -> convert_date($news_item['news_start'], "long")) : LAN_NEWS_19);
|
||||
$news_item['news_end'] = (isset($news_item['news_end']) && $news_item['news_end'] ? " to ".str_replace(" - 00:00:00", "", $con -> convert_date($news_item['news_end'], "long")) : "");
|
||||
$info = $news_item['news_render_type'] == 1 ? LAN_NEWS_9 : "";
|
||||
$info .= $news_item['news_class'] == 255 ? LAN_NEWS_10 : LAN_NEWS_11;
|
||||
$info .= $news_item['news_sticky'] ? "<br />".LAN_NEWS_31 : "";
|
||||
$info .= "<br />".($news_item['news_allow_comments'] ? LAN_NEWS_13 : LAN_NEWS_12);
|
||||
$info .= LAN_NEWS_14.$news_item['news_start'].$news_item['news_end']."<br />";
|
||||
$info .= LAN_NEWS_15.strlen($news_item['news_body']).LAN_NEWS_16.strlen($news_item['news_extended']).LAN_NEWS_17."<br /><br />";
|
||||
return $ns -> tablerender(LAN_NEWS_18, $info);
|
||||
SC_END
|
||||
*/
|
||||
?>
|
@@ -9,16 +9,16 @@
|
||||
* News handler
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_handlers/news_class.php,v $
|
||||
* $Revision: 1.8 $
|
||||
* $Date: 2008-12-29 20:50:41 $
|
||||
* $Author: lisa_ $
|
||||
* $Revision: 1.9 $
|
||||
* $Date: 2009-01-07 19:57:09 $
|
||||
* $Author: mcfly_e107 $
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
class news {
|
||||
|
||||
function submit_item($news)
|
||||
function submit_item($news)
|
||||
{
|
||||
global $sql, $tp, $e107cache, $e_event, $pref, $admin_log;
|
||||
if (!is_object($tp)) $tp = new e_parse;
|
||||
@@ -33,26 +33,26 @@ class news {
|
||||
$author_insert = ($news['news_author'] == 0) ? "news_author = '".USERID."'," : "news_author = '".intval($news['news_author'])."', ";
|
||||
$news['news_author'] = ($news['news_author']) ? $news['news_author'] : USERID;
|
||||
|
||||
if ($news['news_id'])
|
||||
if ($news['news_id'])
|
||||
{ // Updating existing item
|
||||
$vals = "news_datestamp = '".intval($news['news_datestamp'])."', ".$author_insert." news_title='".$news['news_title']."', news_body='".$news['news_body']."', news_extended='".$news['news_extended']."', news_category='".intval($news['cat_id'])."', news_allow_comments='".intval($news['news_allow_comments'])."', news_start='".intval($news['news_start'])."', news_end='".intval($news['news_end'])."', news_class='".$tp->toDB($news['news_class'])."', news_render_type='".intval($news['news_rendertype'])."' , news_summary='".$news['news_summary']."', news_thumbnail='".$tp->toDB($news['news_thumbnail'])."', news_sticky='".intval($news['news_sticky'])."' WHERE news_id='".intval($news['news_id'])."' ";
|
||||
if ($sql -> db_Update('news', $vals))
|
||||
if ($sql -> db_Update('news', $vals))
|
||||
{
|
||||
$admin_log->logArrayAll('NEWS_09', $news);
|
||||
$e_event -> trigger('newsupd', $news);
|
||||
$message = LAN_NEWS_21;
|
||||
$e107cache -> clear('news.php');
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = "<strong>".(!mysql_errno() ? LAN_NEWS_46 : LAN_NEWS_5)."</strong>";
|
||||
}
|
||||
$data = array('method'=>'update', 'table'=>'news', 'id'=>$news['news_id'], 'plugin'=>'news', 'function'=>'submit_item');
|
||||
$message .= $e_event->triggerHook($data);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{ // Adding item
|
||||
if ($news['news_id'] = $sql ->db_Insert('news', "0, '".$news['news_title']."', '".$news['news_body']."', '".$news['news_extended']."', ".intval($news['news_datestamp']).", ".intval($news['news_author']).", '".intval($news['cat_id'])."', '".intval($news['news_allow_comments'])."', '".intval($news['news_start'])."', '".intval($news['news_end'])."', '".$tp->toDB($news['news_class'])."', '".intval($news['news_rendertype'])."', '0' , '".$news['news_summary']."', '".$tp->toDB($news['news_thumbnail'])."', '".intval($news['news_sticky'])."' "))
|
||||
if ($news['news_id'] = $sql ->db_Insert('news', "0, '".$news['news_title']."', '".$news['news_body']."', '".$news['news_extended']."', ".intval($news['news_datestamp']).", ".intval($news['news_author']).", '".intval($news['cat_id'])."', '".intval($news['news_allow_comments'])."', '".intval($news['news_start'])."', '".intval($news['news_end'])."', '".$tp->toDB($news['news_class'])."', '".intval($news['news_rendertype'])."', '0' , '".$news['news_summary']."', '".$tp->toDB($news['news_thumbnail'])."', '".intval($news['news_sticky'])."' "))
|
||||
{
|
||||
$admin_log->logArrayAll('NEWS_08', $news);
|
||||
$e_event -> trigger('newspost', $news);
|
||||
@@ -61,8 +61,8 @@ class news {
|
||||
$id = mysql_insert_id();
|
||||
$data = array('method'=>'create', 'table'=>'news', 'id'=>$id, 'plugin'=>'news', 'function'=>'submit_item');
|
||||
$message .= $e_event->triggerHook($data);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = "<strong>".LAN_NEWS_7."</strong>";
|
||||
}
|
||||
@@ -120,19 +120,19 @@ class news {
|
||||
return $message;
|
||||
}
|
||||
|
||||
function render_newsitem($news, $mode = 'default', $n_restrict = '', $NEWS_TEMPLATE = '', $param='')
|
||||
function render_newsitem($news, $mode = 'default', $n_restrict = '', $NEWS_TEMPLATE = '', $param='')
|
||||
{
|
||||
global $e107, $tp, $sql, $override, $pref, $ns, $NEWSSTYLE, $NEWSLISTSTYLE, $news_shortcodes, $loop_uid, $imode;
|
||||
global $e107, $tp, $sql, $override, $pref, $ns, $NEWSSTYLE, $NEWSLISTSTYLE, $news_shortcodes, $loop_uid, $imode, $newsItemBegin;
|
||||
if ($override_newsitem = $override -> override_check('render_newsitem')) {
|
||||
$result = call_user_func($override_newsitem, $news, $mode, $n_restrict, $NEWS_TEMPLATE, $param);
|
||||
if ($result == 'return')
|
||||
if ($result == 'return')
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!is_object($e107->tp)) $e107->tp = new e_parse;
|
||||
|
||||
if ($n_restrict == 'userclass')
|
||||
if ($n_restrict == 'userclass')
|
||||
{
|
||||
$news['news_id'] = 0;
|
||||
$news['news_title'] = LAN_NEWS_1;
|
||||
@@ -212,20 +212,21 @@ class news {
|
||||
$loop_uid = $news['news_author'];
|
||||
|
||||
require_once(e_FILE.'shortcode/batch/news_shortcodes.php');
|
||||
$newsItemBegin = true;
|
||||
$text = $e107->tp -> parseTemplate($NEWS_PARSE, TRUE, $news_shortcodes);
|
||||
|
||||
if ($mode == 'return')
|
||||
if ($mode == 'return')
|
||||
{
|
||||
return $text;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $text;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
function make_xml_compatible($original)
|
||||
function make_xml_compatible($original)
|
||||
{
|
||||
global $e107;
|
||||
if (!is_object($e107->tp)) $e107->tp = new e_parse;
|
||||
|
@@ -12,20 +12,28 @@
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_handlers/shortcode_handler.php,v $
|
||||
| $Revision: 1.14 $
|
||||
| $Date: 2008-10-30 20:21:55 $
|
||||
| $Author: e107steved $
|
||||
| $Revision: 1.15 $
|
||||
| $Date: 2009-01-07 19:57:09 $
|
||||
| $Author: mcfly_e107 $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
function register_shortcode($code, $filename, $function, $force=false)
|
||||
function register_shortcode($class, $codes, $path='', $force=false)
|
||||
{
|
||||
global $e_shortcodes;
|
||||
if(!array_key_exists($code, $e_shortcodes) || $force == true)
|
||||
if(!is_array($codes))
|
||||
{
|
||||
$e_shortcodes[$code] = array('file' => $filename, 'function' => $function);
|
||||
$codes = array($codes);
|
||||
}
|
||||
foreach($codes as $code)
|
||||
{
|
||||
$code = strtoupper($code);
|
||||
if(!array_key_exists($code, $e_shortcodes) || $force == true)
|
||||
{
|
||||
$e_shortcodes[$code] = array('path' => $path, 'class' => $class, 'function' => $function);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +43,7 @@ class e_shortcode
|
||||
var $parseSCFiles; // True if individual shortcode files are to be used
|
||||
var $addedCodes; // Apparently not used
|
||||
var $registered_codes; // Shortcodes added by plugins
|
||||
var $scClasses; //Batch shortcode classes
|
||||
|
||||
function e_shortcode()
|
||||
{
|
||||
@@ -132,10 +141,19 @@ class e_shortcode
|
||||
/* Check for shortcode registered with $e_shortcodes */
|
||||
if (is_array($e_shortcodes) && (array_key_exists($code, $e_shortcodes)))
|
||||
{
|
||||
include_once($e_shortcodes[$code]['file']);
|
||||
if(function_exists($e_shortcodes[$code]['function']))
|
||||
$_class = $e_shortcodes[$code]['class'];
|
||||
$_method = 'get_'.strtolower($code);
|
||||
if(!isset($this->scClasses[$_class]))
|
||||
{
|
||||
$ret = call_user_func($e_shortcodes[$code]['function'], $parm);
|
||||
if(!class_exists($_class) && $e_shortcodes[$code]['path'])
|
||||
{
|
||||
include_once($e_shortcodes[$code]['path'].$_class.'.php');
|
||||
}
|
||||
$this->scClasses[$_class] = new $_class;
|
||||
}
|
||||
if(is_callable(array($_class, $_method)))
|
||||
{
|
||||
$ret = $this->scClasses[$_class]->$_method($parm);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -170,7 +188,7 @@ class e_shortcode
|
||||
{
|
||||
$scFile = e_FILE."shortcode/".strtolower($code).".sc";
|
||||
}
|
||||
if (file_exists($scFile))
|
||||
if (file_exists($scFile))
|
||||
{
|
||||
$shortcode = file_get_contents($scFile);
|
||||
$this->scList[$code] = $shortcode;
|
||||
|
Reference in New Issue
Block a user