Перейти к публикации

Рекламные материалы


Рекомендованные сообщения

Всем привет.

Как мне сделать, что бы в низу каждой новости был баннер, но не один и тот же, а разные? То есть если на странице 7 новостей, то и под каждой новостью у меня будет 7 разных баннеров.

Что то я так и не понял как такое сделать :(

Ссылка на сообщение
Поделиться на других сайтах

n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE

В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь. :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE

В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь.

Не понял, ты про что? Это не выход.

Ссылка на сообщение
Поделиться на других сайтах

Ок, тогда попробуй так:

Открой engine/modules/show.short.php и найди строчку:

	while ( $row = $db->get_row( $sql_result ) ) {
и сразу под ней пропиши:
$tpl->set( '{rand}', rand ( 0, 9 ) );

А в шаблоне в файле shortstory.tpl пропиши тэг: {banner_{rand}}

Ну и создай в админке DLE 10 баннеров: {banner_0} {banner_1} и так до {banner_9}

Ссылка на сообщение
Поделиться на других сайтах


Ну или еще один вариант:

В main.tpl где-то после тэга {AJAX} пропиши такой код:


<script type="text/javascript">

var adt = [ "{banner_1}", "{banner_2}", "{banner_3}" ];


function rand ( min, max ) {

	return Math.floor ( Math.random() * ( max - min + 1 ) ) + min;

}

</script>

А в shortstory.tpl пропиши:

<script type="text/javascript">document.write ( adt [ rand ( 0, 2 ) ] )</script>

Ну и предварительно создай эти баннеры {banner_1}, {banner_2}, {banner_3} в админке DLE

И не забудь очистить кэш.

Всё :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Я перед тем, как писать сюда, проверил у себя лично. Напиши мне в ICQ и попробуем разобраться, что не так :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Я перед тем, как писать сюда, проверил у себя лично. Напиши мне в ICQ и попробуем разобраться, что не так

Дело в том, что если писать просто текст в место баннеров, то он выводится, а если добавлять код, типа

<a href="/dayving/44-federaciya-dajvinga.html"><img src="/uploads/banners/barracuda.gif" style="border: none;" alt="" /></a>

то не работает, скорее всего проблемы из за кавычек :(

Всё, разобрался, надо было просто двойные кавычки заменить на одинарные :)

Ещё раз большое спасибо.

И опять не то :( временами баннеры выводятся одинаковые :( как быть?

Изменено пользователем n0lik
Ссылка на сообщение
Поделиться на других сайтах

И опять не то временами баннеры выводятся одинаковые как быть?
А как же должно быть? :unsure:

Сейчас они выводятся рандомно

Ссылка на сообщение
Поделиться на других сайтах

А как же должно быть?

Сейчас они выводятся рандомно

В том то и дело, что надо разные что бы были.

:(

Ссылка на сообщение
Поделиться на других сайтах

В php это выглядит так:

  $banners = array();

  $i = 0; $limit = 1; $max = count($banners);

  if ($max>$limit) {

	while($limit>$i) {

	  $banner = array_rand($banners,1);

	  if (!in_array($tmp,$banners)) {$mybanners[] = $banner; ++$i;}

	}

	unset($banner);

  } else {

	foreach($banners as $r=>$z) $mybanners[] = $z;

	unset($r,$z);

  }

А кто знает хорошо JS, могут логику под него адаптировать, либо в php наклепать :)

Изменено пользователем zgr
Ссылка на сообщение
Поделиться на других сайтах

n0lik, к сожалению, в JS я не очень силён и мне в нем долго разбираться, поэтому как вариант, предложил свой любимый номер - готовый вывод через php :)

Код не идеален, конечно, но вполне рабочий. Заполните массив любым количеством вашей рекламы, например, так:

$banners = array(

  "Реклама 1",

  "Реклама 2",

  "Реклама 3"

);
Теперь ставьте количество выводимой рекламы, например, 2 штуки из вашего массива (где может быть хоть 20).
$limit = 2;
Далее генератор случайным образом берет один из материалов и заносит в массив вывода, если он там уже есть, то генерируется еще один и проверяется наличие. Таким образом в цикле генерируется массив случайных реклам, которые не повторяются на выводе. Далее выносим в шаблон сайта, вставив код в любую удобную страницу, например, index.php. Выглядит примерно так. Ищем:
$tpl->compile('main');
Выше добавляем:
$tpl->set('{mybanners}',$showbanners);
Еще выше наш код генерации рекламы. Вот он полностью:
  $banners = array();

  $i = 0; $limit = 1; $max = count($banners);

  if ($max>$limit) {

        while($limit>$i) {

          $banner = array_rand($banners,1);

          if (!in_array($banner,$banners)) {$mybanners[] = $banner; ++$i;}

        }

        unset($banner);

  } else {

        foreach($banners as $r=>$z) $mybanners[] = $z;

        unset($r,$z);

  }

  if (isset($mybanners) && is_array($mybanners) && $mybanners!=null) {

    $showbanners = implode('<br />',$mybanners);

  } else $showbanners = '';

  unset($mybanners,$limit,$max,$i);

Написал без проверки, по идее должен работать, отпишитесь, если что.

П.С. Забыл дописать: в любое место в шаблоне main.tpl используйте для вывода: {mybanners}

Изменено пользователем zgr
Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...