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:
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
Reference in New Issue
Block a user