Здравствуйте! Сегодня покажу как улучшить баннеролисталку!
Задача — возможность вставлять код от любых баннерообменников, а также кол-во дней показа баннера!
Итак начнем!
Открываем файл admin\components\banners\backend.php
После строк
Добавляем:
Далее после:
Добавить:
Потом примерно на 168 строке
Заменяем на
На строках 301-303 заменяем
На следующее
Строки 321-325
Меняем на
Потом ПЕРЕД следующим кодом
Вставляем
И после
Вставить нужно
Все с файлом admin\components\banners\backend.php покончено!
Идем далее...
Открываем файл — core/cms.php
Ищем функции public function getBanner($position) и public function getBannerById($id)
И полностю заменяем их на:
Далее в файле templates/ваш_шаблон/basic/js/basic.js добавим в конце следующее:
И обязательно делаем запрос к БД
Вот и все у нас теперь модернизированная система баннерокрутилки!
Вопросы установки пишите — отвечу! Кому пригодиться — ставьте плюсы!
Задача — возможность вставлять код от любых баннерообменников, а также кол-во дней показа баннера!
Итак начнем!
Открываем файл admin\components\banners\backend.php
После строк
if ($opt == 'submit'){ if (!empty($_REQUEST['title'])) { $title = $_REQUEST['title']; } else { error("Укажите название баннера!"); } $link = $_REQUEST['link']; $typeimg = $_REQUEST['typeimg']; $maxhits = $_REQUEST['maxhits']; $maxuser = 0; $published = $_REQUEST['published']; $position = $_REQUEST['position'];
$html = $_REQUEST['html'];
if ($opt == 'update'){ $id = $_REQUEST['item_id']; if (!empty($_REQUEST['title'])) { $title = $_REQUEST['title']; } else { error("Укажите название баннера!"); } $link = $_REQUEST['link']; $typeimg = $_REQUEST['typeimg']; $maxhits = $_REQUEST['maxhits']; $maxuser = 0; $published = $_REQUEST['published']; $position = $_REQUEST['position'];
$html = $_REQUEST['html'];
$sql = "UPDATE cms_banners SET position = '$position', title = '$title', published = '$published', maxhits = '$maxhits', maxuser = '$maxuser', typeimg = '$typeimg', link = '$link' WHERE id = '$id'";
$sql = "UPDATE cms_banners SET position = '$position', title = '$title', published = '$published', maxhits = '$maxhits', maxuser = '$maxuser', typeimg = '$typeimg', link = '$link', maxday = '$maxday', html = '$html' WHERE id = '$id'";
<td><strong>Ссылка баннера: </strong><br /> <span class="hinttext">Не забывайте "http://" для внешних ссылок!</span> </td> <td><input name="link" type="text" id="link" size="45" value="<?php echo @$mod['link'];?>"/></td>
<td><strong>Тип баннера: </strong></td> <td><select name="typeimg" id="typeimg" onchange="chantype(this.value);"> <option value="image" <?php if(@$mod['typeimg']=='image') { echo 'selected'; } ?>>Изображение (gif, jpg)</option> <option value="swf" <?php if(@$mod['typeimg']=='swf') { echo 'selected'; } ?>>Flash (swf) (468x60)</option> <option value="html" <?php if(@$mod['typeimg']=='html') { echo 'selected'; } ?>>HTML текст</option> <option value="code" <?php if(@$mod['typeimg']=='code') { echo 'selected'; } ?>>Баннер-код</option> </select></td> <script type="text/javascript"> function chantype (type) { if (type=='image'||type=='swf') { htmlval = $('#html').val(); $('#html').attr('disabled','disabled').val(''); $('#link').attr('disabled','').val(linkval); $('#picture').attr('disabled','').val(); } else { linkval = $('#link').val(); $('#link').attr('disabled','disabled').val(''); $('#picture').attr('disabled','disabled').val(''); $('#html').attr('disabled','').val(htmlval); }; } </script>
<td><strong>Тип баннера: </strong></td> <td><select name="typeimg" id="typeimg"> <option value="image" <?php if(@$mod['typeimg']=='image') { echo 'selected'; } ?>>Изображение (gif, jpg)</option> <option value="swf">Flash (swf) (468x60)</option> </select></td>
<td><strong>Ссылка баннера: </strong><br /> <span class=" <td><strong>hinttext">Не забывайте "http://" для внешних ссылок!</span> </td> <td><input name="link" type="text" id="link" size="45" value="<?php echo @$mod['link'];?>" <? if(@$mod['typeimg']=='html'||@$mod['typeimg']=='code') { echo 'disabled="disabled"'; } ?>/></td>
<td><strong>Максимум показов: </strong><br /> <span class="hinttext">Установите "0" для бесконечного количества</span> </td> <td><input name="maxhits" type="text" id="maxhits" size="5" value="<?php echo @$mod['maxhits'];?>"/> раз.</td>
<td><strong>HTML код: </strong><br /> <span class="hinttext">Впишите свой код или код баннерной сети</span> </td> <td><textarea name="html" id="html" cols="30" rows="4" <?php if(@$mod['typeimg']=='html'||@$mod['typeimg']=='code') { echo ' '; } else { echo 'disabled="disabled"'; } ?>><?php echo @$mod['html'];?></textarea></td> </tr> <tr>
<td><strong>Максимум показов: </strong><br /> <span class="hinttext">Установите "0" для бесконечного количества</span> </td> <td><input name="maxhits" type="text" id="maxhits" size="5" value="<?php echo @$mod['maxhits'];?>"/> раз.</td> </tr> <tr>
<td><strong>Дней показов: </strong><br /> <span class="hinttext">Установите "0" для бесконечного количества</span> </td> <td><input name="maxday" type="text" id="maxday" size="5" value="<?php echo @$days;?>"/> дней.</td> </tr> <tr>
Идем далее...
Открываем файл — core/cms.php
Ищем функции public function getBanner($position) и public function getBannerById($id)
И полностю заменяем их на:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Возвращает код баннера с минимальный количеством показов для указанной позиции * @param string $position * @return html */ public function getBanner($position){ $inDB = cmsDatabase::getInstance(); $html = ''; //get active banners with enough hits // Текущяя дата и время $sql = "SELECT * FROM cms_banners WHERE position = '$position' AND published = 1 AND ((maxday > '$nowdate') OR (maxday = '0000-00-00 00:00')) AND ((maxhits > hits) OR (maxhits = 0)) ORDER BY hits ASC LIMIT 1"; $rs = $inDB->query($sql); if ($banner['typeimg']=='image'){ $html = '<a href="/gobanner'.$banner['id'].'" title="'.$banner['title'].'" target="_blank"><img src="/images/banners/'.$banner['fileurl'].'" alt="'.$banner['title'].'"/></a>'; } if ($banner['typeimg']=='swf'){ $html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="468" height="60">'."\n". '<param name="movie" value="/images/banners/'.$banner['fileurl'].'?banner_id='.$banner['id'].'" />'."\n". '<param name="quality" value="high" />'."\n". '<param name="FlashVars" value="banner_id='.$banner['id'].'" />'."\n". '<embed src="/images/banners/'.$banner['fileurl'].'?banner_id='.$banner['id'].'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60">'."\n". '</embed>'."\n". '</object>'; } if ($banner['typeimg']=='html'||$banner['typeimg']=='code'){ $html = '<div id="bannerclick" onmouseover="banclk();" rel="'.$banner['id'].'">'.$banner['html'].'</div>'; } if ($html) { $inDB->query("UPDATE cms_banners SET hits = hits + 1 WHERE id=".$banner['id']); } } return $html; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Возвращает код баннера по ID * @param int $id * @return html */ public function getBannerById($id){ $inDB = cmsDatabase::getInstance(); $html = ''; $sql = "SELECT * FROM cms_banners WHERE id = $id LIMIT 1"; $rs = $inDB->query($sql); if ($banner['typeimg']=='image'){ $html = '<a href="/gobanner'.$banner['id'].'" title="'.$banner['title'].'"><img src="/images/banners/'.$banner['fileurl'].'" alt="'.$banner['title'].'"/></a>'; } if ($banner['typeimg']=='swf'){ $html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="468" height="60">'."\n". '<param name="movie" value="/images/banners/'.$banner['fileurl'].'?banner_id='.$banner['id'].'" />'."\n". '<param name="quality" value="high" />'."\n". '<param name="FlashVars" value="banner_id='.$banner['id'].'" />'."\n". '<embed src="/images/banners/'.$banner['fileurl'].'?banner_id='.$banner['id'].'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60">'."\n". '</embed>'."\n". '</object>'; } if ($banner['typeimg']=='html'||$banner['typeimg']=='code'){ $html = $banner['html']; } } return $html; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
oneclc = 0; function banclk() { $('#bannerclick > *').click( function() { if (oneclc==0) { var id = $('#bannerclick').attr('rel'); $.get('/modules/banner/banner.php',{ id:id }); }; oneclc = 1; }); }
ALTER TABLE `cms_banners` ADD `maxday` DATETIME NOT NULL , ADD `html` TEXT NOT NULL ;
Вопросы установки пишите — отвечу! Кому пригодиться — ставьте плюсы!
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
Реклама #
Интересующаяся 15 лет назад #
Юра 15 лет назад #
Часто мы используем код от Гугла и Яндекс директа - теперь это возможно и в Инстанте( с помощью этой модернизации)!
Эдуард Исламов 15 лет назад #
Для полного счастья желательно ещё прикрутить подконтрольное количество показов и кликов...
Юра 15 лет назад #
15 лет назад #
Юра 15 лет назад #
Авторские права мои, вы их не покупали! Лучше бы сами что-то подобное выложели нежели обзываться!
15 лет назад #
Да уж... Надурил с "заказом" украл предоплату - верни деньги!
15 лет назад #
Если хотите с ним иметь дело, то заключайте безопасную сделку через WEBLANCER - а ни то, он Вас надурит, как меня.
Арбитраж вас рассудит.
Юра у нас человек не надежный, говорит одно, получается другое...
Выложу переписку с ним сюда
15 лет назад #
15 лет назад #
MonAmur 15 лет назад #
сейчас с Юрой договорился о создании грабилки rss. если посчитает нужным его выложить - я не против. сам выкладывать не буду. автор же он...
15 лет назад #
Anonimus 15 лет назад #
15 лет назад #
P.S. Доработки полезные Юре +1. Спасибо
15 лет назад #
lezginka.ru 15 лет назад #
Юра, а не проще было сами измененные файлы выложить.
а можно сделать, чтобы при каждом новом открытии страницы банеры менялись.
Типа: один раз открыл страницу показал банер гугла, следующий раз открыл страницу от бегуна ?
Юра 15 лет назад #
В конце есть ссылка на архив!
а можно сделать, чтобы при каждом новом открытии страницы банеры менялись.
Типа: один раз открыл страницу показал банер гугла, следующий раз открыл страницу от бегуна ?
Оно так и есть! Каждый раз новый баннер! У меня по крайней мере так работает!
15 лет назад #
Теперь ещё каталог кто-нибудь поднакачал бы, вообще красота будет)
15 лет назад #
Такая беда только у меня одного?
Юра 15 лет назад #
15 лет назад #
Юра 15 лет назад #
15 лет назад #
Юра 15 лет назад #
Каким патчем? Может перезаписал файлы компонента Баннеры?
15 лет назад #
Юра 15 лет назад #
Заново залей файлы с моего архива!
15 лет назад #
Виктор 15 лет назад #
Ведь в таком в таком виде, во-первых, движок его не станет выполнять, а во-вторых, нигде не сказано что его нужно добавить в модули.
Виктор 15 лет назад #
с banner.php разобрался.
lezginka.ru 13 лет назад #
schved 13 лет назад #
seyfer 13 лет назад #
Anonim 13 лет назад #
В том, проблема, что баннеры, это не модули. Хочется иметь в разделе "баннеры" всю рекламу системы. Единую. В том числе, совместить бы баннеры с компонентом "реклама" который тут тоже есть!
Будет здорово!
rulestyle 12 лет назад #
ivanish 12 лет назад #
ivanish 12 лет назад #
Там и статистика и любые форматы и при откручивании баннера - автовставка адсенса и кабинет рекламодателя. Короче серьезное решение + трафф с серверов гугла.
Константин Г. 11 лет назад #