• Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: JonMagon  
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Реклама между новостями, постами
Реклама между новостями, постами
Модератор форума
Сообщение # 1 | 09:55:00
Иногда возникает необходимость вставить информационные или рекламные блоки между материалами в модулях.
Здесь рассмотрим разные способы, применимые именно для модулей.



Все способы, кроме первого НЕ работают при включенной функции:
«Использовать аякс для переключателей страниц»




Информационный блок (или блоки) можно добавить между материалов несколькими принципиальными методами:

1. При помощи условных системных операторов юКоз.
2. При помощи JavaScript.
3. Комбинированный - и то и другое.

Рассмотрим все варианты по порядку, и примеры использования.



Способ первый: При помощи условных системных операторов юКоз.
А именно: при помощи оператора $ID$ - выводит номер равный ID материалу и арифметического оператора % выводящий целочисленный остаток от деления на число (результат всегда целочисленный).

Пример кода:
Код
<?if($ID$%6='0')?>
<div class="advBox">
...моя реклама...
</div>
<?endif?>


Код вставляется в шаблон Вид материалов и выводится если ID материала кратно 6 - то бишь остаток от деления на шесть == 0. Делитель - цифра шесть - естественно, можно изменить на свою.

Примеры исчислений:
Истинно ли данное условие: $ID$%6='0'
При: ID == 6;
6/6=1,0 - после запятой ноль - остаток == 0. Равенство верно.
---
При: ID == 36;
36/6==6,0 - после запятой ноль - остаток == 0. Равенство верно.
---
При: ID == 32;
32/6?5,3 - после запятой НЕ ноль - остаток ? 0. Равенство НЕ верно.
При 32 остаток == 2. Почему? вспоминаем...
Потому что, максимальное целое кратное шести число из 32 - это 30 (6*5==30) остаток будет == 2 (32-30==2).

Вот и весь принцип.

Если у вас материалы идут более-менее подряд, блок будет выводится каждый шестой материал.
Число можно ставить любое целое.

Так же, можно использовать информер случайных данных или ротатор банеров:

Пример кода:
Код
<?if($ID$%6='0')?>
<div class="advBox">
<script type="text/javascript" src="http://ваш_сайт.ру/informer/2-1"></script>
</div>
<?endif?>


С этим способом, думаю, все понятно )




Способ второй (2-0): При помощи JavaScript. Простейший вариант:

Пример кода:
Код
<div id="advBox" style="display:none;">
...моя реклама #1...
</div>
<script type="text/javascript">
$('#allEntries table.eBlock:eq(1)').after($('#advBox').css('display','block'));
</script>

Где:
<div id="advBox" style="display:none;"> - Информационный блок скрываем при помощи стилей, и скриптом его добавляем после второго материала.
table.eBlock:eq(1) - порядковый номер таблицы с классом eBlock, отсчет с нуля. Естественно, номер можно изменить.

Код добавляется в шаблон, в котором должен выводиться, после оператора $BODY$.

Важно:

Класс таблицы - eBlock - может, и скорее всего будет, не совпадать с классом вашей таблицы. Так что, скрипт редактируем под себя, а именно, открываем шаблон Вид материалов данного модуля, где будем применять, и ищем первый блок или таблицу с классом, если нет просто добавляем. Корректируем скрипт.

Например:
Для каталога файлов, стандартный код вот такой:
Код
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="eBlock"><tr><td style="padding:3px;">
<?if($MODER_PANEL$)?>
...и т.д...
</div></td>
</tr></table>

- с этим кодом все нормально, работать будет, так как есть таблица с классом eBlock

А вот для шаблона Game Crusade, для того же каталога, код вот такой:
Код
<div style="float:left; width:100%;">
<h4><b>[ </b><?if($CATEGORY_NAME$)?> <A href="$CATEGORY_URL$">$CATEGORY_NAME$</A><?endif?><b> ]</b> <i>»</i><span> <A href="$ENTRY_URL$">$TITLE$</A></span></h4>
...и т.д...
<div class="sep1"></div>
</div>

- здесь работать не будет, так как нет ни таблицы, ни класса.

Что бы работало, нужно дополнить, а именно:
Прописать класс верхнему блоку, и отредактировать скрипт.

Вот так - добавляем класс:
Код
<div class="eBlock" style="float:left; width:100%;">
<h4><b>[ </b><?if($CATEGORY_NAME$)?> <A href="$CATEGORY_URL$">$CATEGORY_NAME$</A><?endif?><b> ]</b> <i>»</i><span> <A href="$ENTRY_URL$">$TITLE$</A></span></h4>
...и т.д...
<div class="sep1"></div>
</div>


Редактируем скрипт:
Код
<script type="text/javascript">
$('#allEntries div.eBlock:eq(1)').after($('#advBox').css('display','block'));
</script>


Вот теперь, будет работать.


Способ второй (2-1): При помощи JavaScript. Вариант чуть посложнее, со случайной выборкой.

Пример кода:
Код
<div id="advBox" style="display:none;">
<div class="advCont">...моя реклама #1...</div>
<div class="advCont">...моя реклама #2...</div>
<div class="advCont">...моя реклама #3...</div>
<div class="advCont">...моя реклама #4...</div>
<div class="advCont">...моя реклама #5...</div>
</div>
<script type="text/javascript">
$('#allEntries table.eBlock:eq(1)').after($('#advBox div.advCont:eq('+Math.floor(Math.random()*5)+')').css('display','block'));
</script>

Где:
$('#advBox div.advCont:eq('+Math.floor(Math.random()*5)+')') - случайная выборка из общего количества рекламных блоков.
$('#allEntries table.eBlock:eq(1)') - после какого блока добавляем.

Все остальное - то же, что и в примере выше.

Скрипт выводит случайный блок рекламы после второго материала. Добавляется, так же, в шаблон, после оператора $BODY$.


Способ второй (2-2): При помощи JavaScript. Вариант с использованием информеров.
Для вывода информации или рекламы, можно использовать информеры, например информер случайных данных, или любые другие.

Например:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/informer/2-1',function(d){
         $('#allEntries table.eBlock:eq(1)').after($('<div id="advBox"/>').html(d.substring(16,d.length-3)));
};);
</script>

Где:
$.get('http://ваш_сайт.ру/informer/2-1',function(d){};); - ссылка на ваш информер. Обычно имеет вид: http://ваш_сайт.ру/informer/2-1.

Так же, добавляется в шаблон, после оператора $BODY$

Важно!
Информеры можно использовать только свои, то бишь, со своего домена.


Способ второй (2-3): При помощи JavaScript. Случайная выборка из блоков с рекламой на отдельной странице, или из файла.

Для блоков с рекламной можно использовать отдельную страницу. Со станицы удобнее, потому что проще редактировать и добавлять информацию.

Для этого создается отдельная страница (в ПУ - редактор страниц) и в контент, через стандартную форму добавления, помещаются блоки с заданным классом (или id).
Данную страницу (с блоками) желательно закрыть от индексации, делается это добавлением в хеад страницы (между тегами и ) метатега robots или через файл robots.txt.

Метатег добавляется через условие:
Код
<title>$SITE_NAME$ - $MODULE_NAME$</title>
<?if($URI_ID$='page4')?>
<meta name="robots" content="noindex,nofollow" />
<?endif?>

Где:
4')?> - ID вашей страницы - можно узнать по адресу: http://ваш_сайт.ру/index/0-4 - последняя цифра после тире и есть ID страницы (для модуля index - страницы сайта).

Структура информационных блоков такая:
Код
<div class="advCont">...моя реклама #1...</div>
<div class="advCont">...моя реклама #2...</div>
<div class="advCont">...моя реклама #3...</div>
<div class="advCont">...моя реклама #4...</div>
<div class="advCont">...моя реклама #5...</div>


Ну и сам скрипт:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/index/0-8',function(d){
         var o=$('div.advCont',d),i=Math.floor(Math.random()*o.length);
         $('#allEntries table.eBlock:eq(1)').after($('<div id="advBox"/>').html(o.eq(i)));
};);
</script>

Где:
$.get('http://ваш_сайт.ру/index/0-8',function(d){..};); - ссылка на вашу страницу, обычно имеет вид: http://ваш_сайт.ру/index/0- 8. Где «8» - ID страницы.
$('#allEntries table.eBlock:eq(1)') - после какого блока, от нуля, добавляется блок.
i=Math.floor(Math.random()*o.length); - определяем случайное число, от общего количества блоков.
o.eq(i) - делаем выборку блока по его индексу от случайного числа.

Добавляется, так же, в шаблон, после оператора $BODY$..)




Способ третий: комбинированный - и то и другое.

Ну а комбинировать можно как угодна, заменяя различный JS-функции операторами.
Например, использовать системный оператор:
Код
<?rnd(N)?>

- Возвращает случайное число от 0 до N-1, включительно.
Где:
N - целое число, от 0 до ... много.

А использовать можно так:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/index/0-8',function(d){
         var o=$('div.advCont',d),i=Math.floor(Math.random()*o.length);
         $('#allEntries table.eBlock:eq(<?rnd(11)?>)').after($('<div id="advBox"/>').html(o.eq(i)));
};);
</script>

Где:
$('#allEntries table.eBlock:eq(11)?>)') - количество материалов на странице + единица.
Случайный блок с рекламой выведется после случайного блока новостей.


Конечно, это далеко не все способы, но принцип рассмотрен - дальше уже ваша фантазия ..

© По мотивам материала: Реклама между новостями, постами
Сообщение отредактировал fflesh - Суббота, 06 Окт 2012, 19:44:08
fflesh
Сообщений: 1784
Сообщение # 2 | 09:55:00
Иногда возникает необходимость вставить информационные или рекламные блоки между материалами в модулях.
Здесь рассмотрим разные способы, применимые именно для модулей.



Все способы, кроме первого НЕ работают при включенной функции:
«Использовать аякс для переключателей страниц»




Информационный блок (или блоки) можно добавить между материалов несколькими принципиальными методами:

1. При помощи условных системных операторов юКоз.
2. При помощи JavaScript.
3. Комбинированный - и то и другое.

Рассмотрим все варианты по порядку, и примеры использования.



Способ первый: При помощи условных системных операторов юКоз.
А именно: при помощи оператора $ID$ - выводит номер равный ID материалу и арифметического оператора % выводящий целочисленный остаток от деления на число (результат всегда целочисленный).

Пример кода:
Код
<?if($ID$%6='0')?>
<div class="advBox">
...моя реклама...
</div>
<?endif?>


Код вставляется в шаблон Вид материалов и выводится если ID материала кратно 6 - то бишь остаток от деления на шесть == 0. Делитель - цифра шесть - естественно, можно изменить на свою.

Примеры исчислений:
Истинно ли данное условие: $ID$%6='0'
При: ID == 6;
6/6=1,0 - после запятой ноль - остаток == 0. Равенство верно.
---
При: ID == 36;
36/6==6,0 - после запятой ноль - остаток == 0. Равенство верно.
---
При: ID == 32;
32/6?5,3 - после запятой НЕ ноль - остаток ? 0. Равенство НЕ верно.
При 32 остаток == 2. Почему? вспоминаем...
Потому что, максимальное целое кратное шести число из 32 - это 30 (6*5==30) остаток будет == 2 (32-30==2).

Вот и весь принцип.

Если у вас материалы идут более-менее подряд, блок будет выводится каждый шестой материал.
Число можно ставить любое целое.

Так же, можно использовать информер случайных данных или ротатор банеров:

Пример кода:
Код
<?if($ID$%6='0')?>
<div class="advBox">
<script type="text/javascript" src="http://ваш_сайт.ру/informer/2-1"></script>
</div>
<?endif?>


С этим способом, думаю, все понятно )




Способ второй (2-0): При помощи JavaScript. Простейший вариант:

Пример кода:
Код
<div id="advBox" style="display:none;">
...моя реклама #1...
</div>
<script type="text/javascript">
$('#allEntries table.eBlock:eq(1)').after($('#advBox').css('display','block'));
</script>

Где:
<div id="advBox" style="display:none;"> - Информационный блок скрываем при помощи стилей, и скриптом его добавляем после второго материала.
table.eBlock:eq(1) - порядковый номер таблицы с классом eBlock, отсчет с нуля. Естественно, номер можно изменить.

Код добавляется в шаблон, в котором должен выводиться, после оператора $BODY$.

Важно:

Класс таблицы - eBlock - может, и скорее всего будет, не совпадать с классом вашей таблицы. Так что, скрипт редактируем под себя, а именно, открываем шаблон Вид материалов данного модуля, где будем применять, и ищем первый блок или таблицу с классом, если нет просто добавляем. Корректируем скрипт.

Например:
Для каталога файлов, стандартный код вот такой:
Код
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="eBlock"><tr><td style="padding:3px;">
<?if($MODER_PANEL$)?>
...и т.д...
</div></td>
</tr></table>

- с этим кодом все нормально, работать будет, так как есть таблица с классом eBlock

А вот для шаблона Game Crusade, для того же каталога, код вот такой:
Код
<div style="float:left; width:100%;">
<h4><b>[ </b><?if($CATEGORY_NAME$)?> <A href="$CATEGORY_URL$">$CATEGORY_NAME$</A><?endif?><b> ]</b> <i>»</i><span> <A href="$ENTRY_URL$">$TITLE$</A></span></h4>
...и т.д...
<div class="sep1"></div>
</div>

- здесь работать не будет, так как нет ни таблицы, ни класса.

Что бы работало, нужно дополнить, а именно:
Прописать класс верхнему блоку, и отредактировать скрипт.

Вот так - добавляем класс:
Код
<div class="eBlock" style="float:left; width:100%;">
<h4><b>[ </b><?if($CATEGORY_NAME$)?> <A href="$CATEGORY_URL$">$CATEGORY_NAME$</A><?endif?><b> ]</b> <i>»</i><span> <A href="$ENTRY_URL$">$TITLE$</A></span></h4>
...и т.д...
<div class="sep1"></div>
</div>


Редактируем скрипт:
Код
<script type="text/javascript">
$('#allEntries div.eBlock:eq(1)').after($('#advBox').css('display','block'));
</script>


Вот теперь, будет работать.


Способ второй (2-1): При помощи JavaScript. Вариант чуть посложнее, со случайной выборкой.

Пример кода:
Код
<div id="advBox" style="display:none;">
<div class="advCont">...моя реклама #1...</div>
<div class="advCont">...моя реклама #2...</div>
<div class="advCont">...моя реклама #3...</div>
<div class="advCont">...моя реклама #4...</div>
<div class="advCont">...моя реклама #5...</div>
</div>
<script type="text/javascript">
$('#allEntries table.eBlock:eq(1)').after($('#advBox div.advCont:eq('+Math.floor(Math.random()*5)+')').css('display','block'));
</script>

Где:
$('#advBox div.advCont:eq('+Math.floor(Math.random()*5)+')') - случайная выборка из общего количества рекламных блоков.
$('#allEntries table.eBlock:eq(1)') - после какого блока добавляем.

Все остальное - то же, что и в примере выше.

Скрипт выводит случайный блок рекламы после второго материала. Добавляется, так же, в шаблон, после оператора $BODY$.


Способ второй (2-2): При помощи JavaScript. Вариант с использованием информеров.
Для вывода информации или рекламы, можно использовать информеры, например информер случайных данных, или любые другие.

Например:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/informer/2-1',function(d){
         $('#allEntries table.eBlock:eq(1)').after($('<div id="advBox"/>').html(d.substring(16,d.length-3)));
};);
</script>

Где:
$.get('http://ваш_сайт.ру/informer/2-1',function(d){};); - ссылка на ваш информер. Обычно имеет вид: http://ваш_сайт.ру/informer/2-1.

Так же, добавляется в шаблон, после оператора $BODY$

Важно!
Информеры можно использовать только свои, то бишь, со своего домена.


Способ второй (2-3): При помощи JavaScript. Случайная выборка из блоков с рекламой на отдельной странице, или из файла.

Для блоков с рекламной можно использовать отдельную страницу. Со станицы удобнее, потому что проще редактировать и добавлять информацию.

Для этого создается отдельная страница (в ПУ - редактор страниц) и в контент, через стандартную форму добавления, помещаются блоки с заданным классом (или id).
Данную страницу (с блоками) желательно закрыть от индексации, делается это добавлением в хеад страницы (между тегами и ) метатега robots или через файл robots.txt.

Метатег добавляется через условие:
Код
<title>$SITE_NAME$ - $MODULE_NAME$</title>
<?if($URI_ID$='page4')?>
<meta name="robots" content="noindex,nofollow" />
<?endif?>

Где:
4')?> - ID вашей страницы - можно узнать по адресу: http://ваш_сайт.ру/index/0-4 - последняя цифра после тире и есть ID страницы (для модуля index - страницы сайта).

Структура информационных блоков такая:
Код
<div class="advCont">...моя реклама #1...</div>
<div class="advCont">...моя реклама #2...</div>
<div class="advCont">...моя реклама #3...</div>
<div class="advCont">...моя реклама #4...</div>
<div class="advCont">...моя реклама #5...</div>


Ну и сам скрипт:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/index/0-8',function(d){
         var o=$('div.advCont',d),i=Math.floor(Math.random()*o.length);
         $('#allEntries table.eBlock:eq(1)').after($('<div id="advBox"/>').html(o.eq(i)));
};);
</script>

Где:
$.get('http://ваш_сайт.ру/index/0-8',function(d){..};); - ссылка на вашу страницу, обычно имеет вид: http://ваш_сайт.ру/index/0- 8. Где «8» - ID страницы.
$('#allEntries table.eBlock:eq(1)') - после какого блока, от нуля, добавляется блок.
i=Math.floor(Math.random()*o.length); - определяем случайное число, от общего количества блоков.
o.eq(i) - делаем выборку блока по его индексу от случайного числа.

Добавляется, так же, в шаблон, после оператора $BODY$..)




Способ третий: комбинированный - и то и другое.

Ну а комбинировать можно как угодна, заменяя различный JS-функции операторами.
Например, использовать системный оператор:
Код
<?rnd(N)?>

- Возвращает случайное число от 0 до N-1, включительно.
Где:
N - целое число, от 0 до ... много.

А использовать можно так:
Код
<script type="text/javascript">
$.get('http://ваш_сайт.ру/index/0-8',function(d){
         var o=$('div.advCont',d),i=Math.floor(Math.random()*o.length);
         $('#allEntries table.eBlock:eq(<?rnd(11)?>)').after($('<div id="advBox"/>').html(o.eq(i)));
};);
</script>

Где:
$('#allEntries table.eBlock:eq(11)?>)') - количество материалов на странице + единица.
Случайный блок с рекламой выведется после случайного блока новостей.


Конечно, это далеко не все способы, но принцип рассмотрен - дальше уже ваша фантазия ..

© По мотивам материала: Реклама между новостями, постами
Сообщение отредактировал fflesh - Суббота, 06 Окт 2012, 19:44:08
Napas8908
Сообщений: 3
Репутация: 0

Сообщение # 3 | 19:39:53
для блоков рекламы adsense какой способ будет лучше?
AlexPS
Сообщений: 275
Репутация: 79

Сообщение # 4 | 20:26:58
Napas8908, Я первый использовал

Все благодарности можно оставить в репутации

Yeeeeeeah
Сообщений: 10
Репутация: 7

Сообщение # 5 | 01:56:50
Спасибо , пригодилось))

Добавлено (25-Ноя-2012, 01:56:50)
---------------------------------------------
AlexPS, кстати да у меня тоже первый работает))


Продаю витрину ссылок buy-link . Цена витрины 2000 рублей! Могу продать через гаранта!

Мое портфолио - www.rav1on.ru
Agronom0500
Сообщений: 2
Репутация: 0

Сообщение # 6 | 02:11:41
Вставляю код рекламного блока от adsense на новый сайт, - не показывает. На старых сайтах работает. В чём причина?
cererra
Сообщений: 74
Репутация: 4

Сообщение # 7 | 22:31:10
Что за скрипт и почему мне поганят сайт, как заблокировать или поставить запрет доступа в с айт:http://familylock.ucoz.ru/
<script type="text/javascript" src="http://blogmarino4ka.ru/merian43.js"></script>

Я не обещаю, я делаю.
Алёна
noviczok
Сообщений: 2
Репутация: 4

Сообщение # 8 | 19:20:43
Доброго времени суток! Есть сайт, на нем выводится реклама Директа. Чтобы был понятен вопрос, вот ссылка на каталог статей: http://x-710.ru/publ В каждом кратком содержании статьи между заголовком и картинкой выводиться блок Директа с одним объявлением. Но сейчас это реализовано на уровне HTML, т.е. в каждой статье вручную проставлен код Директа в кратком содержании.
Как сделать точно такой же вывод, но по-человечески? Нигде не нашел возможности редактирования шаблона краткого содержания статьи, чтобы блоки появлялись автоматически.
koledg124g
Сообщений: 26
Репутация: -1

Сообщение # 9 | 15:38:33
noviczok,походу нет, меня тоже интересует этот вопрос, мож кто ответит? И Что-то на моем сайте не работают все эти способы, а так хотелось)

x1wyt
Сообщений: 22
Репутация: 6

Сообщение # 10 | 14:49:20
Как сделать чтобы реклама в всегда показывалась только после 1вой новости?
Drinko
Сообщений: 909
Репутация: 773

Сообщение # 11 | 18:04:51
Лакедемон
Сообщений: 21
Репутация: 0

Сообщение # 12 | 12:27:41
Подскажите пожалуйста способ прописать код между новостями в модулях "Видео" и "Фотоальбомы" для этого сайта : goldformat.ru.
Пробовал приведенные в примере первые два способа. В модуле "Каталог статей" эти коды работают отлично, а в модуле "видео" смещаются колонки относительно друг друга.

Спасибо.

Подборка видео приколов в "Золотом формате"
keynbr
Сообщений: 875
Репутация: 73
Уровень замечаний:

Сообщение # 13 | 11:51:35
Господа, а если я выложу сюда код материала и код который нужно вставить, вы поможете? А то что то я никак... wacko

Западная Украина, мы это уже проходили!
KaiLee
Сообщений: 5463
Репутация: 1135

Сообщение # 14 | 13:04:38
Лакедемон,
Потому что в модуле видео вывод материалов немного другой. Вам нужно использовать код так, чтобы не нарушать ряд блоков с метриалами и жестко задавать блоку рекламы ширину в целую строку.

keynbr,
Это вам тогда сюда.

В ЛС - только адреса и пароли. Все остальное - на форуме.
Студия | Шаблоны | Статьи
keynbr
Сообщений: 875
Репутация: 73
Уровень замечаний:

Сообщение # 15 | 14:12:10
Я там написал, а в ответ тишина. Ждемс

Западная Украина, мы это уже проходили!
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Реклама между новостями, постами
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: