parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

можит разберешся :))

мы мидведи 19.05.2003 09:38

Когда давно писал. Можно ограничивать по времени, по показам. А также процентый показ среди показываемых...........ой загнул :))
@baner_visibility[tip]
		^connect[$config.mysql_connect]{
		$baner[^table::sql{SELECT `id`, `dop_tip`, `proz`, `kolvo_pokaz`, `opisanie`, `date_dobav`, `max_pokaz`, `max_data`, `visibility` FROM `baner` WHERE `tip`='$tip'}]}
		$baner_prov[^table::create{id	dop_tip	proz	kolvo_pokaz	opisanie	date_dobav	max_pokaz	max_data}] 

		^baner.menu{
		^if($baner.visibility eq 1){
			^if($baner.dop_tip eq 3){
					^baner_prov.append{$baner.id	$baner.dop_tip	$baner.proz	$baner.kolvo_pokaz	$baner.opisanie	$baner.date_dobav	$baner.max_pokaz	$baner.max_data}
			}
			^if($baner.dop_tip eq 2){
					^if($baner.kolvo_pokaz >= $baner.max_pokaz){
					}{	^baner_prov.append{$baner.id	$baner.dop_tip	$baner.proz	$baner.kolvo_pokaz	$baner.opisanie	$baner.date_dobav	$baner.max_pokaz	$baner.max_data}}
			}
			^if($baner.dop_tip eq 1){
					$datatime[^date::create[^date.sql-string[]]] 
					$max_data[^date::create[$baner.max_data]] 
					^if($datatime >= $max_data){
					}{^baner_prov.append{$baner.id	$baner.dop_tip	$baner.proz	$baner.kolvo_pokaz	$baner.opisanie	$baner.date_dobav	$baner.max_pokaz	$baner.max_data}}
			}		
		}}
		
		
^if(def $baner_prov){
	
	$baner_zam[^table::load[/tmp/zamena_baner.cfg]]
			
	^if(^baner_prov.count[] eq 1){
		$rab[$baner_prov.opisanie]
		^mysql[UPDATE `baner` SET `kolvo_pokaz`='^eval($baner_prov.kolvo_pokaz+1)' WHERE `id`='$baner_prov.id']	
		^process{^rab.replace[$baner_zam]}
	}{
	
		^baner_prov.menu{$rab[$baner_prov.id]	$ban$rab(0)}
		
		$baner_cfg[^table::load[/tmp/baner.cfg]]
		^baner_cfg.menu{$rab[$baner_cfg.id]
											$rab2($ban$rab)
											$ban$rab(^eval($rab2+1))
		}
		
		$baner_pokaz[^table::create{id	pokaz	max_pokaz}] 
		^baner_prov.menu{$rab[$baner_prov.id]
												^baner_pokaz.append{$baner_prov.id	$ban$rab	$baner_prov.proz}
		}
		
		$baner_prov2[^table::create{id	dop_tip	proz	kolvo_pokaz	opisanie	date_dobav	max_pokaz	max_data}] 
		^baner_pokaz.menu{
			^if($baner_pokaz.pokaz <	$baner_pokaz.max_pokaz){
				^baner_prov.menu{^if($baner_prov.id eq $baner_pokaz.id){^baner_prov2.append{$baner_prov.id	$baner_prov.dop_tip	$baner_prov.proz	$baner_prov.kolvo_pokaz	$baner_prov.opisanie	$baner_prov.date_dobav	$baner_prov.max_pokaz	$baner_prov.max_data}}}
				
			}		
		}
		
		^switch[^baner_prov2.count[]]{ 
	    ^case[0]{
			$baner_cfg_new[^table::create{id}]
			^baner_cfg.menu{
				$rab(0)
				^baner_prov.menu{
					^if($baner_prov.id ne $baner_cfg.id){$rab(^eval($rab+1))}
					^if($rab == ^baner_prov.count[]){^baner_cfg_new.append{$baner_cfg.id}}																
				}						
			}
			$cm(^math:random(^baner_prov.count[]))
			^baner_prov.offset[set]($cm) 
			$rab[$baner_prov.opisanie]
			^mysql[UPDATE `baner` SET `kolvo_pokaz`='^eval($baner_prov.kolvo_pokaz+1)' WHERE `id`='$baner_prov.id']	
			^process{^rab.replace[$baner_zam]}
			^baner_cfg_new.append{$baner_prov.id}
			^baner_cfg_new.save[/tmp/baner.cfg]											
		}
  	    ^case[1]{
			$rab[$baner_prov2.opisanie]
			^mysql[UPDATE `baner` SET `kolvo_pokaz`='^eval($baner_prov.kolvo_pokaz+1)' WHERE `id`='$baner_prov.id']	
			^process{^rab.replace[$baner_zam]}
			^baner_cfg.append{$baner_prov2.id}
			^baner_cfg.save[/tmp/baner.cfg]
					
		} 
        ^case[DEFAULT]{
		$cm(^math:random(^baner_prov2.count[]))
		^baner_prov2.offset[set]($cm) 
			$rab[$baner_prov2.opisanie]
			^mysql[UPDATE `baner` SET `kolvo_pokaz`='^eval($baner_prov2.kolvo_pokaz+1)' WHERE `id`='$baner_prov2.id']	
			^process{^rab.replace[$baner_zam]}
			^baner_cfg.append{$baner_prov2.id}
			^baner_cfg.save[/tmp/baner.cfg]				
		} 
}				
	}	
}
Да ище там было три места для показов банеров какраз перемнная $tip показывало что за место