#!/usr/bin/perl -w # # finale version use GD; use Twn; use CGI qw(:standard); use strict; my $file= param('file'); $file ||=''; my $bgfile = param('bgfile'); $bgfile ||=''; # image, das allein angezeigt wird my $img = param('img'); $img ||=''; # hier: steps, schritte in der sequenz. my $step = param('schritt'); $step ||=1; my $bstep; # step fuer das textimage #my $diversion = param('diversion'); #$diversion ||='a'; # die hyperlinks pro stufe (je 3?) my @l1=('Erinnerung'); my @l2=('Persönlichkeit', 'Schädlicher Raum','Operator'); my @l3=('Komplex', 'Zeit', 'gedacht', 'eingebaut','verrucht'); my @l4=('Geschlecht','Motiv', 'Text','schlampig','Religion', 'Existenz'); my @l5=('Boneli-Test', 'Identität', 'Kunstwerk','Erwartungen','Bild', 'Indizien','Fakten','Individuum','Gewißheit','vernünftig','konsistent'); my @l6=('Kontrolle', 'Agent', 'Bild', 'Apparat'); my @l7=('Tagkind', 'Schwebewagen', 'Hypnose', 'Der', 'Schädliche','Raum','Spuren', 'Motiv','Film','Kontrolle','Atelier','versammeln','Veränderung'); my @l8=('illusioinär','Nachtkind','Geist','sexuell','Agenten','Minsky','Intelligenz', 'Glauben','Produkt','Ornstein','Modell','Selbstbild','schlau'); my @l9=('1.','2.','3.','4.','5.','6.','7.','8.','9.'); my $ipath='images/'; my $tpath='txt/'; my $txt; # datei mit dem text my $scriptname = 'schatten.xhtml'; my $text; unless ($step) { $file=''; $bgfile=''; $img=$ipath.'laeufer1.jpg'; } else { my $wackel = int(rand(5))-2; if ((($step+$wackel)>0) and (($step+$wackel)<10)) { $bstep=$step+$wackel; } else { $bstep = $step; } $bstep = $step if $step <7; $bgfile=$ipath.'laeufer'.$step.'.jpg' if ($step <10); $file=$ipath.'laeufer'.$bstep.'.png'; $file=$ipath.'laeufer1.png' if $step == 1; $file=$ipath.'laeufer2.png' if $step == 2; } if ($step == 10) { $bgfile=''; $file=$ipath.'laeufer10.png'; } # texte kommen aus eigenen dateien. TODO norm fuer leerzeilen finden. # weiters ueberlegen wie links eingesetzt werden. # regex fuer text dateinamen: [0-9][a-z].txt wobei: 0..9 ist step, a-z ist diversion my $diversion; my $r=int(rand(3)); $diversion = 'a' if $r==0; $diversion = 'b' if $r==1; $diversion = 'c' if $r==2; #$diversion = 'a'; $txt=$tpath.$step.$diversion.'.txt'; my $filltext; # fuege leerzeilen ein if ($step==1) { for (0 .. 12) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==2) { for (0 .. 9) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==3) { for (0 .. 17) { for (1 .. 195) { $filltext.=" "; }; } ;} if ($step==4) { for (0 .. 11) { for (1 .. 195) { $filltext.=" "; }; } ;} if ($step==5) { for (0 .. 11) { for (1 .. 195) { $filltext.=" "; }; } ;} if ($step==6) { for (0 .. 5) { for (1 .. 195) { $filltext.=" "; }; } ;} if ($step==7) { for (0 .. 5) { for (1 .. 195) { $filltext.=" "; }; } ;} if ($step==8) { for (0 .. 10) { for (1 .. 195) { $filltext.=" "; }; } ;} open(FILE, "< $txt") || die($txt , $!); while (){ $filltext.=$_; } close(FILE) || die(' error: ', $!); if ($step==1) { for (0 .. 40) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==2) { for (0 .. 30) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==3) { for (0 .. 35) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==4) { for (0 .. 40) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==5) { for (0 .. 40) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==6) { for (0 .. 40) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==7) { for (0 .. 60) { for (1 .. 240) { $filltext.=" "; }; } ;} if ($step==8) { for (0 .. 20) { for (1 .. 240) { $filltext.=" "; }; } ;} $step++; $step = 0 if ($step == 11); # zwischenraeume im text formatieren # hack: alle benoetigten spaces werden in ein zeichen verwandelt, das sonst nicht vorkommt. $filltext =~ s/ /Y/g; if ($file) { open(FILE, "< $file") || die(' error: ', $!); my $image = newFromPng GD::Image('FILE') || die(' error: ', $!); close(FILE) || die(' error: ', $!); $text = Twn::giveme($image, $filltext); $text =~ s/ä/\ä/g; $text =~ s/ö/\ö/g; $text =~ s/ü/\ü/g; $text =~ s/Ä/\Ä/g; $text =~ s/Ö/\Ö/g; $text =~ s/Ü/\Ü/g; $text =~ s/ß/\ß/g; # einrueckungen $text =~ s/----/\ \ \ \ /g; # html formatierte leerzeile am ende #for ( 0 .. 198) { $text.=' ' }; for ( 0 .. 239) { $text.=' '; }; my @c; @c = @l1 if ($step == 2); @c = @l2 if ($step == 3); @c = @l3 if ($step == 4); @c = @l4 if ($step == 5); @c = @l5 if ($step == 6); @c = @l6 if ($step == 7); @c = @l7 if ($step == 8); @c = @l8 if ($step == 9); @c = @l9 if ($step == 10); unless ($step ==10) { foreach my $hyperlink (<@c>) { $text =~ s/$hyperlink/$hyperlink<\/a>/; } } else { $text =~ s/1\./1.<\/a>/; $text =~ s/2\./2.<\/a>/; $text =~ s/3\./3.<\/a>/; $text =~ s/4\./4.<\/a>/; $text =~ s/5\./5.<\/a>/; $text =~ s/6\./6.<\/a>/; $text =~ s/7\./7.<\/a>/; $text =~ s/8\./8.<\/a>/; $text =~ s/9\./9.<\/a>/; } } print 'Content-type: text/html Die Schatten der Ideen '; if ($bgfile) { print ""; } else { print "
"; } print ""; print "
"; print $text if $text; # zeige das image file (in diesem fall ein grosses jpeg) als img mit link auf naechsten step print " \"$step\"" if ($img); print "
"; exit;