| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
yes 19.04.2003 14:46 / 19.04.2003 14:50
Решил попробовать сочинить банерокрутилку. Задумка такая:@barabanner[bid;bgroup]
#######
####Содержит все записи из 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)]
#######
####Начало обработки
^if($bid != 0){
$bselect[^bylimit.select($bylimit.id==$bid)]
^if(^bselect.count[]==1){
$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]{}
^case[1]{
$bselect[^bygroup.select(^bygroup.line[]==1)]
^if(^bselect.count[]==1 && $bselect.showed < $bselect.limit){
$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]{
$rndselect[^eval(^math:random(^bygroup.count[])+1)]
$bselect[^bygroup.select(^bygroup.line[]==$rndselect)]
}
^case[1]{
$bselect[^bygrouplimit.select(^bygrouplimit.line[]==1)]
^if(^bselect.count[]==1){
$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){
$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){
$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){
$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>Буду рад выслушать Ваши мнения.