n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Всем привет. Как мне сделать, что бы в низу каждой новости был баннер, но не один и тот же, а разные? То есть если на странице 7 новостей, то и под каждой новостью у меня будет 7 разных баннеров. Что то я так и не понял как такое сделать Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор n0lik, попробуй в shortstory.tpl прописать: {banner_{news-id}} и создать все эти 7 баннеров в админке DLE В итоге у тебя под каждой новостью будет именно тот баннер, который ты хочешь. Не понял, ты про что? Это не выход. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 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} 1 Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 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 И не забудь очистить кэш. Всё 1 Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 12 января 2011 Рассказать Опубликовано: 12 января 2011 Автор Спасибо большое за помощь WWW.ZEOS.INЧто то не работает вариант с JS Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 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>то не работает, скорее всего проблемы из за кавычек Всё, разобрался, надо было просто двойные кавычки заменить на одинарные Ещё раз большое спасибо.И опять не то временами баннеры выводятся одинаковые как быть? Изменено 12 января 2011 пользователем n0lik Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 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 наклепать Изменено 12 января 2011 пользователем zgr Цитата Ссылка на сообщение Поделиться на других сайтах
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} Изменено 13 января 2011 пользователем zgr 1 Цитата Ссылка на сообщение Поделиться на других сайтах
n0lik 75 Опубликовано: 13 января 2011 Рассказать Опубликовано: 13 января 2011 Автор zgr, спасибо большое. Цитата Ссылка на сообщение Поделиться на других сайтах
izbushkin 3 Опубликовано: 2 февраля 2012 Рассказать Опубликовано: 2 февраля 2012 Вот бы такой ротатор баннеров был уже в стандартной версии движка... Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.