{$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() 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 = null) { $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 " "; 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 .= "
"; } return $text; } }