Файл: adultscript-2.0.3-pro/files/templates/defboot/extend/plugins/adv_footer.plugin.php
Строк: 50
<?php
defined('_VALID') or die('Restricted Access!');
function template_plugin_adv_footer()
{
if (VF::cfg_item('ads') === 0) {
return;
}
$db = VF::factory('database');
$cache = VF::factory('cache');
if (!$group = $cache->get('group_footer', 86400)) {
$db->query("SELECT adv_group_id, adv_rotate
FROM #__adv_groups
WHERE adv_group_slug = 'footer'
AND status = '1'
LIMIT 1");
if (!$db->affected_rows()) {
return;
}
$group = $db->fetch_assoc();
$cache->store('group_footer', $group, 86400);
}
$limit = ($group['adv_rotate'] == '0') ? ' LIMIT 1' : '';
if (!$advs = $cache->get('footer', 86400)) {
$db->query("SELECT adv_id, title, description, type, url, code,
image_type, image_url, image_ext, expire, blank
FROM #__adv
WHERE adv_group_id = ".(int) $group['adv_group_id']."
AND status = '1'".$limit);
if (!$db->affected_rows()) {
return adv_footer_splitted();
}
$advs = $db->fetch_rows();
$cache->store('footer', $advs, 86400);
}
$count = (count($advs)-1);
$index = ($group['adv_rotate'] == '1') ? rand(0, $count) : 0;
$adv = $advs[$index];
if ($adv['expire'] != '0000-00-00') {
if (time() > strtotime($adv['expire'])) {
return;
}
}
return display_adv_footer($adv, 'ads-footer');
}
function adv_footer_splitted()
{
$db = VF::factory('database');
$cache = VF::factory('cache');
$slugs = array('footer-1', 'footer-2', 'footer-3', 'footer-4');
$output = array();
$output[] = '<div class="ads-footer">';
foreach ($slugs as $slug) {
$group = FALSE;
if (!$group = $cache->get('group_'.$slug, 86400)) {
$db->query("SELECT adv_group_id, adv_rotate
FROM #__adv_groups
WHERE adv_group_slug = '".$slug."'
AND status = '1'
LIMIT 1");
if ($db->affected_rows()) {
$group = $db->fetch_assoc();
$cache->store('group_'.$slug, $group, 86400);
}
}
if ($group) {
$limit = ($group['adv_rotate'] == '0') ? ' LIMIT 1' : '';
if (!$advs = $cache->get($slug, 86400)) {
$db->query("SELECT adv_id, title, description, type, url, code,
image_type, image_url, image_ext, expire, blank
FROM #__adv
WHERE adv_group_id = ".(int) $group['adv_group_id']."
AND status = '1'".$limit);
if ($db->affected_rows()) {
$advs = $db->fetch_rows();
$cache->store($slug, $advs, 86400);
}
}
if ($advs) {
$count = (count($advs)-1);
$index = ($group['adv_rotate'] == '1') ? rand(0, $count) : 0;
$adv = $advs[$index];
$expired = FALSE;
if ($adv['expire'] != '0000-00-00') {
if (time() > strtotime($adv['expire'])) {
$expired = TRUE;
}
}
if ($expired === FALSE) {
$output[] = display_adv_footer($adv, 'adv-footer');
}
}
}
}
if ($output) {
return implode("n", $output).'</div>';
}
}
function display_adv_footer($adv, $class = false)
{
VF::factory('database')->query("UPDATE #__adv SET views = views+1 WHERE adv_id = ".$adv['adv_id']." LIMIT 1");
$rel = ' rel="nofollow"';
$open = ($class) ? '<div class="'.$class.'">' : '';
$close = ($class) ? '</div>' : '';
if ($adv['type'] == 'html') {
return $open.$adv['code'].$close;
} elseif ($adv['type'] == 'text') {
$title = ($adv['description'] != '') ? 'title="'.htmlspecialchars($adv['description'], ENT_QUOTES, 'UTF-8').'"' : '';
$target = ($adv['blank'] == '1') ? ' target="_blank"' : '';
return $open.'<a href="'.BASE_URL.'/adv/'.$adv['adv_id'].'/"'.$rel.$title.$target.'>'.htmlspecialchars($adv['title'], ENT_QUOTES, 'UTF-8').'</a>'.$close;
} elseif ($adv['type'] == 'image') {
$image_url = ($adv['image_type'] == 'url') ? $adv['image_url'] : MEDIA_URL.'/banners/'.$adv['adv_id'].'.'.$adv['image_ext'];
$target = ($adv['blank'] == '1') ? ' target="_blank"' : '';
return $open.'<a href="'.BASE_URL.'/adv/'.$adv['adv_id'].'/"'.$rel.$target.'><img src="'.$image_url.'" alt="" /></a>'.$close;
}
}