1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-01 04:10:38 +02:00

Merge pull request #1562 from rica-carv/rica-carv-patch-1-banner_shortcode

#1560 Reworked parm check & revised code clean up
This commit is contained in:
Cameron
2016-04-19 09:45:45 -07:00

View File

@@ -8,9 +8,6 @@
* *
* Banner shortcode * Banner shortcode
* *
*/
/**
* e107 Banner management plugin * e107 Banner management plugin
* *
* Handles the display and sequencing of banners on web pages, including counting impressions * Handles the display and sequencing of banners on web pages, including counting impressions
@@ -21,47 +18,28 @@
class banner_shortcodes extends e_shortcode class banner_shortcodes extends e_shortcode
{ {
// $parm now can be array, old campaign $parm still allowed....
function sc_banner($parm='') function sc_banner($parm='')
{ {
// $parm now can be array, old campaign $parm still allowed....
$sql = e107::getDb(); $sql = e107::getDb();
$tp = e107::getParser(); $tp = e107::getParser();
mt_srand ((double) microtime() * 1000000); mt_srand ((double) microtime() * 1000000);
$seed = mt_rand(1,2000000000); $seed = mt_rand(1,2000000000);
$time = time(); $time = time();
$campaign = (is_array($parm)?$parm['campaign']:$parm);
if(is_array($parm))
{
$parms = eHelper::scParams($parm);
$campaign = $parms['campaign'];
}
else
{
$campaign = $parm;
}
$query = " (banner_startdate=0 OR banner_startdate <= {$time}) AND (banner_enddate=0 OR banner_enddate > {$time}) AND (banner_impurchased=0 OR banner_impressions<=banner_impurchased)".($campaign ? " AND banner_campaign='".$tp->toDB($campaign)."'" : '')." $query = " (banner_startdate=0 OR banner_startdate <= {$time}) AND (banner_enddate=0 OR banner_enddate > {$time}) AND (banner_impurchased=0 OR banner_impressions<=banner_impurchased)".($campaign ? " AND banner_campaign='".$tp->toDB($campaign)."'" : '')."
AND banner_active IN (".USERCLASS_LIST.") "; AND banner_active IN (".USERCLASS_LIST.") ";
if($tags = e107::getRegistry('core/form/related')) if($tags = e107::getRegistry('core/form/related'))
{ {
$tags_regexp = "'(^|,)(".str_replace(",", "|", $tags).")(,|$)'"; $tags_regexp = "'(^|,)(".str_replace(",", "|", $tags).")(,|$)'";
$query .= " AND banner_keywords REGEXP ".$tags_regexp; $query .= " AND banner_keywords REGEXP ".$tags_regexp;
} }
$query .= " ORDER BY RAND($seed) LIMIT 1"; $query .= " ORDER BY RAND($seed) LIMIT 1";
if($sql->select('banner', 'banner_id, banner_image, banner_clickurl, banner_description', $query)) if($sql->select('banner', 'banner_id, banner_image, banner_clickurl, banner_description', $query))
{ {
$row = $sql->fetch(); $row = $sql->fetch();
return $this->renderBanner($row, $parm); return $this->renderBanner($row, $parm);
} }
else else
{ {
@@ -74,11 +52,6 @@ class banner_shortcodes extends e_shortcode
{ {
$sql = e107::getDb('banner'); $sql = e107::getDb('banner');
$tp = e107::getParser(); $tp = e107::getParser();
if(is_array($parm))
{
$parms = eHelper::scParams($parm);
}
if(!$row['banner_image']) if(!$row['banner_image'])
{ {
return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>"; return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>";
@@ -109,7 +82,6 @@ class banner_shortcodes extends e_shortcode
break; break;
default: default:
if($row['banner_image'][0] == '{') if($row['banner_image'][0] == '{')
{ {
$src = $row['banner_image']; $src = $row['banner_image'];
@@ -119,31 +91,21 @@ class banner_shortcodes extends e_shortcode
$src = e_IMAGE_ABS.'banners/'.$row['banner_image']; $src = e_IMAGE_ABS.'banners/'.$row['banner_image'];
$style = "'border:0'"; $style = "'border:0'";
} }
$class = vartrue($parms['class']) ? $parms['class'] : "e-banner img-responsive img-rounded"; // Somehow, can't use vartrue core function when referencing $parm['class'], gives bug....
$ban_ret = $tp->toImage($src, array('class'=>$class, 'alt'=>$row['banner_clickurl'], 'style'=>$style)); $ban_ret = $tp->toImage($src, array('class'=>($parm['class'] == ''?"e-banner img-responsive img-rounded":$parm['class']) , 'alt'=>$row['banner_clickurl'], 'style'=>$style));
break; break;
} }
$start = "<a class='e-tip' href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external' title=\"".$tp->toAttribute(varset($row['banner_tooltip'],''))."\">";
$tooltip = varset($row['banner_tooltip'],'');
$start = "<a class='e-tip' href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external' title=\"".$tp->toAttribute($tooltip)."\">";
$item = $ban_ret;
$end = '</a>'; $end = '</a>';
$text = $start.$ban_ret.$end;
$text = $start.$item.$end;
if(!empty($row['banner_description'])) if(!empty($row['banner_description']))
{ {
$text .= "<div class='e-banner-description'>".$start.$tp->toHtml($row['banner_description'], true).$end. "</div>"; $text .= "<div class='e-banner-description'>".$start.$tp->toHtml($row['banner_description'], true).$end. "</div>";
} }
return $text; return $text;
} }
} }
?> ?>