| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
yes 19.05.2003 10:12
Без использования БД. Вся информация берётся из таблицы. Существует возможность разграничения по-группам (для разных размеров, мест расположения на странице...). Ограничение только по количеству баннеропоказов. По исчерпанию баннеропоказов показывается баннер по-умолчанию...@show[bid;bgroup;counter]
#######
####Содержит все записи из banner.cfg.
$all[^table::load[/banner.cfg]]
#######
####Содержит записи, соответствующие группе.
$bygroup[^all.select($all.group_id==$bgroup)]
#######
####Содержит записи, лимит которых не исчерпан.
$bylimit[^all.select($all.showed < $all.limit)]
#######
####Содержит записи, соответствующие группе, лимит которых не исчерпан.
$bygrouplimit[^all.select($all.group_id==$bgroup && $all.showed < $all.limit)]
#######
####Содержит таблицу с баннерами по-умолчанию.
$defbanner[^table::load[/defbanner.cfg]]
#######
####Начало обработки
^if($bid != 0){
$bselect[^bylimit.select($bylimit.id==$bid)]
^if(^bselect.count[]==1 && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}{
^if($bgroup !=0){
^switch[^bygroup.count[]]{
^case[0]{
$bselect[^defbanner.select($defbanner.group_id==$bgroup)]
}
^case[1]{
$bselect[^bygroup.select(^bygroup.line[]==1)]
^if(^bselect.count[]==1 && $bselect.showed < $bselect.limit && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}
^case[DEFAULT]{
^switch[^bygrouplimit.count[]]{
^case[0]{
$bselect[^defbanner.select($defbanner.group_id==$bgroup)]
}
^case[1]{
$bselect[^bygrouplimit.select(^bygrouplimit.line[]==1)]
^if(^bselect.count[]==1 && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}
^case[DEFAULT]{
$rndselect[^eval(^math:random(^bygrouplimit.count[])+1)]
$bselect[^bygrouplimit.select(^bygrouplimit.line[]==$rndselect)]
^if(^bselect.count[]==1 && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}
}
}
}
}{
^switch[^bylimit.count[]]{
^case[0]{
^switch[^all.count[]]{
^case[0]{}
^case[1]{
$bselect[^all.select(^all.line[]==1)]
}
^case[DEFAULT]{
$rndselect[^eval(^math:random(^all.count[])+1)]
$bselect[^all.select(^all.line[]==$rndselect)]
}
}
}
^case[1]{
$bselect[^bylimit.select(^bylimit.line[]==1)]
^if(^bselect.count[]==1 && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}
^case[DEFAULT]{
$rndselect[^eval(^math:random(^bylimit.count[])+1)]
$bselect[^bylimit.select(^bylimit.line[]==$rndselect)]
^if(^bselect.count[]==1 && $counter eq count){
$selcut[^all.select($all.id!=$bselect.id)]
$showed[^eval($bselect.showed+1)]
^selcut.append{$bselect.id $bselect.path $bselect.group_id $showed $bselect.limit $bselect.w $bselect.h $bselect.link}
^selcut.sort($selcut.id)
^selcut.save[/banner.cfg]
}
}
}
}
}
#######
####Вывод полученного баннера.
<a href="$bselect.link"><img src="$bselect.path" width="$bselect.w" height="$bselect.h" border="0"></a>Вызывается так: