Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Баннеры на форуме [3]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (4): « 1 2 [3] 4 »   

> Описание: как их вешать
Bard
Отправлено: 19 Декабря, 2005 - 14:14:40
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Ray Wen пишет:

Ну вроде все... пробуйте...

Либо количество баннеров необходимо прописать в текстовике, чтобы менять только текстовик, либо предется для внесения изменений переписывать оба фаила...
Ктомуже (возможно, тут утверждать не буду) обращение к фаилу будет замедлять процесс обработки скрипта.

Предлагаю следующий код (опробован, работает)
CODE:
<?

$max=5; //число баннеров

//задаем список линков для баннеров
$mlink=array(1=>
"http://tvoyweb.ru/forums/",
"http://chto-to2.ru/",
"http://chto-to3.ru/",
"http://chto-to4.ru/",
"http://chto-to5.ru/");

//задаем список картинок для баннеров
$mimg=array(1=>
"http://example.tvoyweb.ru/banners/tvoyweb.gif",
"http://chto-to.ru/banner/banner_2.gif",
"http://chto-to.ru/banner/banner_3.gif",
"http://chto-to.ru/banner/banner_4.gif",
"http://chto-to.ru/banner/banner_5.gif");

//генерация номера выдаваемого баннера № 1
mt_srand(time()+(double)microtime()*1000000);
$bann1= mt_rand(1,$max);

//генерация номера выдаваемого баннера № 2
do {
mt_srand(time()+(double)microtime()*1000000);
$bann2= mt_rand(1,$max);
}
while ($bann2==$bann1);

//генерация номера выдаваемого баннера № 3
do {
mt_srand(time()+(double)microtime()*1000000);
$bann3= mt_rand(1,$max);
}
while ($bann3==$bann1||$bann3==$bann2);

//количество отображаемых баннеров определяется наличием строк 37 39 41 для уменьшения кол-ва баннеров удалите лишние строки (41 для двух баннеров или 41 и 39 для одного)
$counters = <<<CNT
<a href="$mlink[$bann1]"><img src="$mimg[$bann1]"></a>

<a href="$mlink[$bann2]"><img src="$mimg[$bann2]"></a>

<a href="$mlink[$bann3]"><img src="$mimg[$bann3]"></a>

CNT;
?>

Данный код для отображения трех баннеров из пяти возможных, естественно может быть легко отредактирован для отображения и меньшего и большего количества баннеров.
 
 Top
Ray Wen Администратор
Отправлено: 19 Декабря, 2005 - 14:46:05
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




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

Не надо изобретать велосипед, погляди на свой код... Что если база вырастет до 100-200 баннеров, не запутаешься где какой и чья картинка? А если больше захочешь на экран вывести, будешь весь код лопатить, который вместе с базой разрастется не на один экран? Закатив глазки
 
 Top
Bard
Отправлено: 19 Декабря, 2005 - 16:23:43
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Ray Wen извини, не хотел тебя задеть Улыбка
Просто не разобрался в твоем коде Растерялся
Изобретал велосипед я для практики в php, я ж в нем ничего вообще не понимал, теперь хоть что-то знаю Язычок
А почему в .txt, вроде этот форум все в php держит (опять же не критика, а просто ворос, понять хочу).
И раз уж мы признали, что твой вариант лучше, то может еще и в административку засунем опцию пополнения базы (чтобы не лезть по ftp)?
(Сейчас попробую твой вариант у себя, о работоспособности отпишу. Или ты его уже проверил?)

Кстати в продолжение темы...
Говорят есть какие-то баннерные движки, где можно задать не только баннеры в немеренных количествах, но еще и процент вероятности отображения каждого баннера.
Кто что об этом знает? Расскажите!
 
 Top
Ray Wen Администратор
Отправлено: 19 Декабря, 2005 - 17:37:50
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




Bard
В каком файле все равно хранить, хоть .tpl... проверять не проверял, банеры мне как-то не очень нужны, сейчас только заметил что скобки в
Цитата:
if(isset($array[$rnd])){
не хватает...
Насчет движков не знаю... и в админку все это засовывать ни времени ни особого желания нету... Если хочешь, можешь хорошо попрактиковаться... Подмигивание
 
 Top
Bard
Отправлено: 27 Января, 2006 - 08:07:26
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Ray Wen, решился реализовать твой вариант (до этого все времени небыло).
Подскажи пожалуйста, как прописать текстовик, если он лежит в папке banners, которая находится в корневой папке форума (forum)?

И еще, я не разобрался есть ли у тебя проверка, чтобы одинаковые баннеры в одну сесиию (единовременно) не появлялись?
 
 Top
Ray Wen Администратор
Отправлено: 27 Января, 2006 - 11:28:26
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




Bard
Так и пиши... $array=file('banners/banners.txt'Подмигивание;
Там вроде на все есть проверки...
 
 Top
Bard
Отправлено: 30 Января, 2006 - 13:45:30
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Ray Wen, не устаю благодарить тебя за помощь!
СПАСИБО!

И у меня еще вопросик:

Твой вариант отлично работает, но баннеры получаются "приклеенные" друг к другу (тоесть рядом один с другим). Как бы их немного раздвинуть? Вставить между ними небольшой промежуток...

Помоги пожалуйста!
 
 Top
Bard
Отправлено: 30 Января, 2006 - 14:39:26
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




Сделал все, как ты сказал. Получилось
CODE:
<?

$array=file('banner/banners.txt'); //этот самый txt
$ban=3; // колличество баннеров
$max=count($array)-1;
$counters='';
for($i=0;$i<$ban;$i++){
mt_srand(time()+(double)microtime()*1000000);
$rnd= mt_rand(0,$max);
if(isset($array[$rnd])){
$banner=explode(":|:",$array[$rnd]);
unset($array[$rnd]);
$counters.="<a href='$banner[1]'><img src='$banner[0]' alt='$banner[2]' border=0></a>";
}else{
$i--;
}
}

CNT;
?>


Работает, но нверху, в поле над "Вы вошли как" появилось слово Array.
Где-то чего-то нехватает...
А чего? (скобочку я добавил)
 
 Top
Ray Wen Администратор
Отправлено: 30 Января, 2006 - 15:12:25
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




Bard пишет:
Как бы их немного раздвинуть? Вставить между ними небольшой промежуток...

CODE:
$counters.="<a href='$banner[1]'><img src='$banner[0]' alt='$banner[2]' border=0></a> ";

Bard пишет:
Работает, но нверху, в поле над "Вы вошли как" появилось слово Array.

Где-то переменную задел нужную... Попробуй везде $banner заменить на $baner... И CNT; убери, это тут не нужно...
 
 Top
Bard
Отправлено: 30 Января, 2006 - 15:38:09
Post Id



Full Member


Покинул форум
Сообщений всего: 164
Дата рег-ции: Нояб. 2005  
Откуда: Москва, Россия

Карма 0




А чем код написанный тобой для "раздвигания баннеров отличается от того что был?
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« Моды, хаки, скины и дополнения »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0478]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33