n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Всем привет. Как мне сделать, что бы в низу каждой новости был баннер, но не один и тот же, а разные? То есть если на странице 7 новостей, то и под каждой новостью у меня будет 7 разных баннеров. Что то я так и не понял как такое сделать Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь. Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь. Не понял, ты про что? Это не выход. Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Ок, тогда попробуй так: Открой 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} Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Ну или еще один вариант: В 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 И не забудь очистить кэш. Всё Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор Спасибо большое за помощь WWW.ZEOS.INЧто то не работает вариант с JS Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Я перед тем, как писать сюда, проверил у себя лично. Напиши мне в ICQ и попробуем разобраться, что не так Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор Я перед тем, как писать сюда, проверил у себя лично. Напиши мне в ICQ и попробуем разобраться, что не так Дело в том, что если писать просто текст в место баннеров, то он выводится, а если добавлять код, типа<a href="/dayving/44-federaciya-dajvinga.html"><img src="/uploads/banners/barracuda.gif" style="border: none;" alt="" /></a>то не работает, скорее всего проблемы из за кавычек Всё, разобрался, надо было просто двойные кавычки заменить на одинарные Ещё раз большое спасибо.И опять не то временами баннеры выводятся одинаковые как быть? Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 И опять не то временами баннеры выводятся одинаковые как быть?А как же должно быть? Сейчас они выводятся рандомно Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор А как же должно быть? Сейчас они выводятся рандомно В том то и дело, что надо разные что бы были. Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 В 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 наклепать Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор zgr, а поподробнее можно? про пхп Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 13 января 2011 Рассказать Опубликовано: 13 января 2011 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} Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 13 января 2011 Рассказать Опубликовано: 13 января 2011 Автор zgr, спасибо большое. Ссылка на сообщение Поделиться на других сайтах
izbushkin 3 Опубликовано: 2 февраля 2012 Рассказать Опубликовано: 2 февраля 2012 Вот бы такой ротатор баннеров был уже в стандартной версии движка... Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Архивировано
Эта тема находится в архиве и закрыта для публикации сообщений.