{$time}) AND (banner_impurchased=0 OR banner_impressions<=banner_impurchased)".($campaign ? " AND banner_campaign='".$tp->toDB($campaign)."'" : '')." AND banner_active IN (".USERCLASS_LIST.") "; if($tags = e107::getRegistry('core/form/related')) { $tags_regexp = "'(^|,)(".str_replace(",", "|", $tags).")(,|$)'"; $query .= " AND banner_keywords REGEXP ".$tags_regexp; } $query .= " ORDER BY RAND($seed) LIMIT 1"; if($sql->select('banner', 'banner_id, banner_image, banner_clickurl, banner_description', $query)) { $row = $sql->fetch(); return $this->renderBanner($row, $parm); } else { return ' '; } } // Also used by banner_menu.php public function renderBanner($row, $parm = '') { $sql = e107::getDb('banner'); $tp = e107::getParser(); if(!$row['banner_image']) { return "".BANNERLAN_39.""; } $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); $sql->update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); switch ($fileext1) { case 'swf': return " \n \n \n \n "; break; case 'html': case 'js': case 'php': // Code - may 'echo' text, or may return it as a value $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']); return $file_data; break; default: $class = empty($parm['class']) ? "e-banner img-responsive img-fluid" : $parm['class']; $ban_ret = $tp->toImage($row['banner_image'], array('class'=> $class , 'alt'=>basename($row['banner_image']), 'legacy'=>'{e_IMAGE}banners')); break; } $start = "toAttribute(varset($row['banner_tooltip'],''))."\">"; $end = ''; $text = $start.$ban_ret.$end; if(!empty($row['banner_description'])) { $text .= "
".$start.$tp->toHtml($row['banner_description'], true).$end. "
"; } return $text; } }