<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package template;

use baseq;

@ISA = qw ( baseq );

####################################################################
####         Konstruktor der Templateklasse
####         Argumente  : 
####         Returnwert : -
####################################################################
sub init {
	my $that = shift;
	my $class = ref($that) || $that;
	my $self = baseq-&gt;init(@_);
	bless $self, $class;	
   	$self-&gt;{template}    = $self-&gt;{id}+0;
    $self-&gt;{knr}	 = $self-&gt;{parent}-&gt;{knr}+0;
    $self-&gt;{htmlfile}  = "";
	$self-&gt;{qtface}   = "Helvetica";	
	$self-&gt;{qtsize}   = "+2";
	$self-&gt;{qtcolor}  = "#000000";
	$self-&gt;{atface}   = "Helvetica";	
	$self-&gt;{atsize}   = "+1";
	$self-&gt;{atcolor}  = "#000000";
	$self-&gt;{stface}   = "Helvetica";	
	$self-&gt;{stsize}   = "+0";
	$self-&gt;{stcolor}  = "#000000";
	$self-&gt;{shadowcolor}  = "#999999";
	
	my %hagrafik=( "BA" =&gt; $self-&gt;trans("HI46"), "VL" =&gt; $self-&gt;trans("HI47"), "SK" =&gt; $self-&gt;trans("HI48"), "PI" =&gt; $self-&gt;trans("HI49"));
	my @lagrafik = qw/BA PI VL SK/;

	my %hegrafik=( "BA" =&gt; $self-&gt;trans("HI46"), "VL" =&gt; $self-&gt;trans("HI47"), "PI" =&gt; $self-&gt;trans("HI49") );
	my @legrafik = qw/BA PI VL/;

	my %hmgrafik=( "BA" =&gt; $self-&gt;trans("HI46"), "VL" =&gt; $self-&gt;trans("HI47") );
	my @lmgrafik = qw/BA VL/;

	my %hsgrafik=( "SK" =&gt; $self-&gt;trans("HI48") );
	my @lsgrafik = qw/SK/;

	$self-&gt;{hsort} = { 0  =&gt; $self-&gt;trans("HI50"), 1  =&gt; $self-&gt;trans("HI51"), 2  =&gt; $self-&gt;trans("HI52")  };
	$self-&gt;{lsort} = ["0", "1", "2"];
	$self-&gt;{hschmuck}={0 =&gt; "nichts", 1 =&gt; "3D", 2 =&gt; "Schatten" };
	$self-&gt;{lschmuck}=["0", "1", "2"];

	$self-&gt;{htyp}={"E"  =&gt; $self-&gt;trans("HI32"),  "M"  =&gt; $self-&gt;trans("HI33"),
	       	       "T"  =&gt; $self-&gt;trans("HI34"),  "S3" =&gt; $self-&gt;trans("HI36d"),
				   "S4" =&gt; $self-&gt;trans("HI35a"), "S5" =&gt; $self-&gt;trans("HI35"),
				   "S7" =&gt; $self-&gt;trans("HI36"),  "S11"=&gt; $self-&gt;trans("HI36c"),
				   "D"  =&gt; $self-&gt;trans("HI36a"), "H"  =&gt; $self-&gt;trans("HI36b")	   };

	$self-&gt;{ltyp} = ["E", "D", "M", "S3", "S4", "S5", "S7", "S11", "T", "H"];

	$self-&gt;{hgrafik}={"E" =&gt; \%hegrafik , "D" =&gt; \%hegrafik , "M" =&gt; \%hmgrafik , "S" =&gt; \%hsgrafik , "T" =&gt; {} , "H" =&gt; {} };
	$self-&gt;{lgrafik}={"E" =&gt; \@legrafik , "D" =&gt; \@legrafik , "M" =&gt; \@lmgrafik , "S" =&gt; \@lsgrafik , "T" =&gt; [] , "H" =&gt; [] };

	return $self;
}
#"
####################################################################
####         Konstruktor der Fragenklasse
####         Argumente  : parent, umfid, fid
####         Returnwert : -
####################################################################
sub loadtmp {
   my $self = shift;
   my $force=shift;
   if ($self-&gt;{template} eq "") {$self-&gt;{template}=0}
   if ( (defined $self-&gt;{parent}-&gt;{template}) &amp;&amp; ($self-&gt;{template} == $self-&gt;{parent}-&gt;{template})  &amp;&amp; ! $force ) {
   ( $self-&gt;{tmpbeschr}, $self-&gt;{htmlfile},
    $self-&gt;{qtface}, $self-&gt;{qtsize}, $self-&gt;{qtcolor},
	$self-&gt;{atface}, $self-&gt;{atsize}, $self-&gt;{atcolor},
	$self-&gt;{stface}, $self-&gt;{stsize}, $self-&gt;{stcolor},
	$self-&gt;{shadowcolor} )  = $self-&gt;{parent}-&gt;copytemplate;

	$self-&gt;{RHfontcolor}=$self-&gt;{parent}-&gt;{RHfontcolor};
	$self-&gt;{RLfontcolor}=$self-&gt;{parent}-&gt;{RLfontcolor};
   }
   else {
	my $sql = "select beschr, file, qtface, qtsize, qtcolor, ".
		  "atface, atsize, atcolor, stface, stsize, stcolor, shadowcolor from templatehtm where nr=$self-&gt;{template}";
	( $self-&gt;{tmpbeschr},$self-&gt;{htmlfile},
    $self-&gt;{qtface}, $self-&gt;{qtsize}, $self-&gt;{qtcolor},
	$self-&gt;{atface}, $self-&gt;{atsize}, $self-&gt;{atcolor},
	$self-&gt;{stface}, $self-&gt;{stsize}, $self-&gt;{stcolor},
	$self-&gt;{shadowcolor} ) = $self-&gt;sqlselect($sql);
    $sql="select hexcode, name from farben where knr=0 or knr='$self-&gt;{knr}' order by knr,nr";
	my $sth=$self-&gt;sqlprepare($sql);
	my @Lcolor; my %Hcolor; my $hex; my $name;
	while ( ($hex, $name)=$sth-&gt;fetchrow_array) {push (@Lcolor, $hex); $Hcolor{$hex}=$name;}
        $self-&gt;{RHfontcolor}=\%Hcolor;
	$self-&gt;{RLfontcolor}=\@Lcolor;
   }
   return ;
}

####################################################################
####         gibt seine Eigenschaften zurueck !
####         Argumente  : -
####         Returnwert : Templateeigenschaften
####################################################################
sub copytemplate {
	my $self = shift;
    return ( $self-&gt;{tmpbeschr}, $self-&gt;{htmlfile}, 
    $self-&gt;{qtface}, $self-&gt;{qtsize}, $self-&gt;{qtcolor},
	$self-&gt;{atface}, $self-&gt;{atsize}, $self-&gt;{atcolor},
	$self-&gt;{stface}, $self-&gt;{stsize}, $self-&gt;{stcolor},
	$self-&gt;{shadowcolor} );
}

####################################################################
####         Ermittelt eine neue fid und speichert sich
####         Argumente  : -
####         Returnwert : -
####################################################################
sub new {
	my $self = shift;
    $self-&gt;{tmpbeschr}   = "Neues Template";
	my $sql1 = "select max(nr) from templatehtm";
	$self-&gt;{template} = ($self-&gt;sqlselect($sql1))+1;
    my $sql2 = "insert into templatehtm values ( $self-&gt;{template}, $self-&gt;{knr}, ".
		   "'$self-&gt;{tmpbeschr}', '$self-&gt;{htmlfile}', ".
		   "'$self-&gt;{qtface}', '$self-&gt;{qtsize}', '$self-&gt;{qtcolor}', ".
		   "'$self-&gt;{atface}', '$self-&gt;{atsize}', '$self-&gt;{atcolor}', ".
		   "'$self-&gt;{stface}', '$self-&gt;{stsize}', '$self-&gt;{stcolor}', ".
		   "'$self-&gt;{shadowcolor}')";
	$self-&gt;sqldo($sql2);
}

####################################################################
####         Speichert sich mit Update
####         Argumente  : evtl Fragentext und Fragentyp
####         Returnwert : -
####################################################################
sub store {
	my $self = shift;
	my $sql = "update templatehtm set knr=$self-&gt;{knr} , beschr='$self-&gt;{tmpbeschr}', ".
		  "file='$self-&gt;{htmlfile}', ".
		  "qtface='$self-&gt;{qtface}', qtsize='$self-&gt;{qtsize}', qtcolor='$self-&gt;{qtcolor}', ".
		  "atface='$self-&gt;{atface}', atsize='$self-&gt;{atsize}', atcolor='$self-&gt;{atcolor}', ".
		  "stface='$self-&gt;{stface}', stsize='$self-&gt;{stsize}', stcolor='$self-&gt;{stcolor}', ".
		  "shadowcolor='$self-&gt;{shadowcolor}' where nr=$self-&gt;{template}";
	$self-&gt;sqldo($sql);
}

####################################################################
####         Löscht sich und alle seine Antworten der Probanden
####	     aus der DB
####         Argumente  : -
####         Returnwert : -
####################################################################
sub delete {
	my $self = shift;
	my $sql  = "delete from template where nr=$self-&gt;{template}";
        $self-&gt;sqldo($sql);
}

####################################################################
####         Schreibt ins Logfile
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub log {
	my ($self, $emer, $TEXT) = @_;
        $self-&gt;printlog($emer, "T[$self-&gt;{template}] $TEXT");
}

####################################################################
####         Gibt den Text im Questionfont zurück
####         Argumente  : Text
####         Returnwert : -
####################################################################

sub qfont {
	my $self = shift;
        return "&lt;FONT FACE=\"$self-&gt;{qtface}\" SIZE=\"$self-&gt;{qtsize}\" COLOR=\"$self-&gt;{qtcolor}\"&gt;".shift()."&lt;/FONT&gt;";
}

####################################################################
####         Gibt den Text im Antwortfont zurück
####         Argumente  : Text
####         Returnwert : -
####################################################################

sub afont {
	my $self = shift;
        return "&lt;FONT FACE=\"$self-&gt;{atface}\" SIZE=\"$self-&gt;{atsize}\" COLOR=\"$self-&gt;{atcolor}\"&gt;".shift()."&lt;/FONT&gt;";
}

####################################################################
####         Gibt den Text im Standardfont zurück
####         Argumente  : Text
####         Returnwert : Text mit Font-Tags
####################################################################
sub sfont {
	my $self = shift;
        return "&lt;FONT FACE=\"$self-&gt;{stface}\" SIZE=\"$self-&gt;{stsize}\" COLOR=\"$self-&gt;{stcolor}\"&gt;".shift()."&lt;/FONT&gt;";
}

####################################################################
####         Gibt den Text im Standardfont aber klein zurück
####         Argumente  : Text
####         Returnwert : Text mit Font-Tags
####################################################################
sub smfont {
	my $self = shift;
        return "&lt;FONT FACE=\"$self-&gt;{stface}\" SIZE=0 COLOR=\"$self-&gt;{stcolor}\"&gt;".shift()."&lt;/FONT&gt;";
}

####################################################################
####         Formatiert einen Text aus der Hilfedatei
####         Argumente  : Text
####         Returnwert : Text mit Font-Tags und BRs
####################################################################
sub format {
	my $self = shift;
        my $txt=shift;
	my $qfont=$self-&gt;qfont; my $afont=$self-&gt;afont;
	$qfont=~s/&lt;\/FONT&gt;//i;
	$afont=~s/&lt;\/FONT&gt;//i;

	$txt=~s/&lt;QFONT&gt;/$qfont/g;
	$txt=~s/&lt;AFONT&gt;/$afont/g;
    $txt=~s/\r*\n/&lt;BR&gt;\r\n/g;	
	$txt=~s/Ä/&amp;Auml;/g;
	$txt=~s/Ö/&amp;Ouml;/g;
	$txt=~s/Ü/&amp;Uuml;/g;
	$txt=~s/ä/&amp;auml;/g;
	$txt=~s/ö/&amp;ouml;/g;
	$txt=~s/ü/&amp;uuml;/g;
	$txt=~s/ß/&amp;szlig;/g;
	$txt=~s/&lt;\$(\w+)&gt;/$self-&gt;{$1}/g;
	return "&lt;TABLE&gt;\n".$self-&gt;TR([ $self-&gt;sfont("\n$txt\n") ])."&lt;/TABLE&gt;\n";
}

####################################################################
####         Schreibt HTML
####         Argumente  : Der Inhalt als HTML
####         Returnwert : -
####################################################################
sub printhtml {
	my ($self, $TITLE, $INHALT, $FILE) = @_;
	$self-&gt;log(4,"Entering Template-&gt;printhtml");
    my $HEAD="Content-type: text/html\n\n";my $htmlfile;
	my $FORMTAG="\n&lt;FORM METHOD=\"$baseq::POST\" ENCTYPE=\"application/x-www-form-urlencoded\"&gt;\n";
	my $n="&lt;§§&gt;";
	my $META="&lt;META NAME=\"Author\" Content=\"prorara.web\"&gt;\n";	
		$self-&gt;log(4,"Oeffne Datei: ".$baseq::TEMPLATES.$self-&gt;{htmlfile}); 
		open (FILE, $baseq::TEMPLATES.$self-&gt;{htmlfile} ) or $self-&gt;log (1, "Konnte '".$baseq::TEMPLATES.$self-&gt;{htmlfile}."' nicht oeffnen");
		my $erg=read(FILE ,$htmlfile, 10000);
		close FILE;

	if (! defined $erg) {$self-&gt;log (1, "Konnte '".$baseq::TEMPLATES.$self-&gt;{htmlfile}."' nicht lesen"); }
	if ($erg == 10000) {$self-&gt;log (1, "'".$baseq::TEMPLATES.$self-&gt;{htmlfile}."' ist zu gross !"); }
	
	my $THEHIDDEN = $self-&gt;HD("umfid",$baseq::VARS{umfid}).
            $self-&gt;HD("fid",$baseq::VARS{fid}).
	        $self-&gt;HD("knr",$baseq::VARS{knr}).
	        $self-&gt;HD("pin",$baseq::VARS{pin}).
            $self-&gt;HD("pass",$baseq::VARS{pass}).
        $self-&gt;HD("helpkontext",$self-&gt;{helpkontext}).
           $self-&gt;HD("ausschl",$baseq::VARS{ausschl}).
           $self-&gt;HD("helpkontext",$self-&gt;{helpkontext}).
           $self-&gt;HD("grpid",$self-&gt;{grpid}).
           $self-&gt;HD("grplfd",$self-&gt;{grplfd});
       foreach (@{$self-&gt;{statselpin}}) { $THEHIDDEN.=$self-&gt;HD($_,1); }

    $htmlfile=~s/\r//g;
    $htmlfile=~s/\n/$n/g;
	$htmlfile=~s/(&lt;TITLE&gt;).*(&lt;\/TITLE&gt;)/$1$TITLE$2/i;						# Den TITEL ersetzen
	if ($self-&gt;{warntext} eq "") {$htmlfile=~s/&lt;WARN&gt;.*&lt;\/WARN&gt;//i;}					#Wenn kein Warnungstext
		else { $htmlfile=~s/&lt;WARN&gt;(.*)!.*!(.*)&lt;\/WARN&gt;/\n$1\n$self-&gt;{warntext}\n$2\n/i;}   # Sonst Warnungstext einsetzen
	
	if ($FILE eq "") {
				$htmlfile=~s/&lt;INHALT&gt;.*&lt;\/INHALT&gt;/$FORMTAG$THEHIDDEN$INHALT&lt;\/FORM&gt;\n/i;   #Inhalt einsetzen
        			$htmlfile=~s/$n/\n/g;
				print $HEAD.$htmlfile;
	}
	else {
      	$htmlfile=~s/&lt;INHALT&gt;.*&lt;\/INHALT&gt;/$INHALT/i;							#Inhalt einsetzen !
        $htmlfile=~s/$n/\n/g;
		open (FILE, "&gt;$FILE") or $self-&gt;log (2, "Konnte '$FILE' nicht oeffnen");
		print FILE $htmlfile;
		close FILE;
        }
}


####################################################################
####         nimmt die Änderungen aus dem Formular an
####         Argumente  : Zeiger auf Variablen
####         Returnwert : -
####################################################################
sub getbearb {
	my $self = shift;
	if ($baseq::VARS{tbut} eq $self-&gt;trans("BU13")){$self-&gt;htmlbearb;}
	elsif ($baseq::VARS{tbut} eq $self-&gt;trans("BU17") ){$self-&gt;htmlbearb;}
	elsif ($baseq::VARS{tbut} eq $self-&gt;trans("BU22") ){$self-&gt;templateansicht;}
	elsif ($baseq::VARS{tbut} eq $self-&gt;trans("BU24") ){$self-&gt;hilfe;}
	elsif ($baseq::VARS{tbut} eq $self-&gt;trans("BU1") ){
		$self-&gt;{tmpbeschr}=$self-&gt;fclean($baseq::VARS{tbeschr});
		$self-&gt;{htmlfile}=$self-&gt;fclean($baseq::VARS{tfile});
		$self-&gt;{qtface}=$self-&gt;fclean($baseq::VARS{tqtface});	
		$self-&gt;{qtsize}=$self-&gt;fclean($baseq::VARS{tqtsize});	
		$self-&gt;{qtcolor}=$self-&gt;fclean($baseq::VARS{tqtcolor});	
		$self-&gt;{atface}=$self-&gt;fclean($baseq::VARS{tatface});	
		$self-&gt;{atsize}=$self-&gt;fclean($baseq::VARS{tatsize});	
		$self-&gt;{atcolor}=$self-&gt;fclean($baseq::VARS{tatcolor});	
		$self-&gt;{stface}=$self-&gt;fclean($baseq::VARS{tstface});	
		$self-&gt;{stsize}=$self-&gt;fclean($baseq::VARS{tstsize});	
		$self-&gt;{stcolor}=$self-&gt;fclean($baseq::VARS{tstcolor});	
		$self-&gt;{shadowcolor}=$self-&gt;fclean($baseq::VARS{shadowcolor});	
		$self-&gt;store;
		$self-&gt;loadtmp(1);
        $self-&gt;htmlbearb;
	}
        elsif  ($baseq::VARS{tbut} eq $self-&gt;trans("BU23") ){$self-&gt;getfarben;}
    	elsif  ($baseq::VARS{tbut} eq $self-&gt;trans("BU21") ){$self-&gt;farbenbearb;}
        else {$self-&gt;htmlbearb;}
}


####################################################################
####         Gibt einen Hilfetext aus
####         Argumente  : -
####         Returnwert : -
####################################################################
sub hilfe {
	my $self = shift;
	my $file=$baseq::HELPPATH.$baseq::VARS{helpkontext}."-".$self-&gt;{sprache}.".help";
	$self-&gt;log(4,"Oeffne Datei: ".$file); 
	if ( open ( HELP,$file ) ){	
		while (my $x=&lt;HELP&gt;) {$txt.=$x;}
		close (HELP);
		$self-&gt;printhtml("Hilfe",$self-&gt;format($txt) );
	}
	else { 
		$self-&gt;printhtml("Hilfe",$self-&gt;qfont($self-&gt;trans("WA20")));
		$self-&gt;log(2,"Konnte '$file' nicht öffnen!");
	}
	$self-&gt;exit;
}

####################################################################
####         Gibt das Template zur Bearbeitung aus
####         Argumente  : Text
####         Returnwert : Text mit Font-Tags
####################################################################
sub htmlbearb {
	my $self = shift;
	$self-&gt;{warntext}="Template: ".$self-&gt;{tmpbeschr};
	$self-&gt;printhtml("Template ändern","&lt;TABLE&gt;".
	$self-&gt;TR([$self-&gt;sfont("Beschreibung:"), $self-&gt;TF("tbeschr",$self-&gt;{tmpbeschr},80) ]).	
	$self-&gt;TR([$self-&gt;sfont("Templatedatei:"), $self-&gt;TF("tfile",$self-&gt;{htmlfile},80) ]).	
	$self-&gt;TR([$self-&gt;sfont($self-&gt;trans("HI31e")),	$self-&gt;DDfcolor("shadowcolor", $self-&gt;{shadowcolor}) ]).
	"&lt;/TABLE&gt;\n".
    "&lt;TABLE&gt;\n".
	$self-&gt;TR(["&amp;nbsp;",$self-&gt;sfont("Typ"),$self-&gt;sfont("Gr&amp;ouml;&amp;szlig;e"),$self-&gt;sfont("Farbe")]).
	$self-&gt;TR([$self-&gt;sfont("Fragen:"),
		   $self-&gt;DDfface("tqtface",$self-&gt;{qtface}),
           $self-&gt;TF("tqtsize",$self-&gt;{qtsize},10),
           $self-&gt;DDfcolor("tqtcolor",$self-&gt;{qtcolor}) ]).
	$self-&gt;TR([$self-&gt;sfont("Antworten:"),
		   $self-&gt;DDfface("tatface",$self-&gt;{atface}),
           $self-&gt;TF("tatsize",$self-&gt;{atsize},10),
           $self-&gt;DDfcolor("tatcolor",$self-&gt;{atcolor}) ]).
	$self-&gt;TR([$self-&gt;sfont("Standard:"),
		   $self-&gt;DDfface("tstface",$self-&gt;{stface}),
           $self-&gt;TF("tstsize",$self-&gt;{stsize},10),
           $self-&gt;DDfcolor("tstcolor",$self-&gt;{stcolor}) ]).

      	"&lt;/TABLE&gt;\n".$self-&gt;HD("ktemplate",$self-&gt;{template}).
	
	$self-&gt;SMrow( ["tbut","kbut","tbut","tbut"], ["BU1","BU13","BU22","BU24"] ) );
       	$self-&gt;exit;

				$self-&gt;sfont($self-&gt;trans("HI31e")),
				$self-&gt;DDfcolor("shadowcolor", $self-&gt;{shadowcolor}),

}

####################################################################
####         Gibt die Farbpalette zur Bearbeitung aus
####         Argumente  : -
####         Returnwert : -
####################################################################
sub farbenbearb {
	my $self = shift;
	$self-&gt;{warntext}="Bitte bearbeiten Sie Ihre Farbeinstellungen";
        my $HTML="&lt;TABLE cellspacing=5&gt;\n"; my $hex; my $name; my @Lhex; my @Lname;
	$SQL="select hexcode, name from farben where knr=$self-&gt;{knr} order by nr";
	my $sth=$self-&gt;sqlprepare($SQL);
        while (($hex, $name)=$sth-&gt;fetchrow_array){push @Lhex,$hex; push @Lname, $name;}
        my $stcolor=$self-&gt;{stcolor}; unshift @Lhex,""; unshift @Lname,""; # ab 1 beginnen....
	for (my $x=1; $x&lt;(@Lhex+5); $x++) {
	  $self-&gt;{stcolor}=@Lhex[$x];
	  $HTML.=$self-&gt;TR([ $self-&gt;sfont("Beispiel"),
			    $self-&gt;TF("thex$x",$Lhex[$x],7),
			    $self-&gt;TF("tname$x",$Lname[$x],30) ]);
	}
 	$self-&gt;{stcolor}=$stcolor;
	$HTML.= "&lt;/TABLE&gt;\n".
	$self-&gt;HD("ktemplate",$self-&gt;{id}).
	$self-&gt;SMrow( ["tbut","kbut"] , ["BU23","BU13"] );

	$self-&gt;printhtml($self-&gt;trans("TI14"),$HTML);
	$self-&gt;exit;
}

####################################################################
####         Gibt die Farbpalette zur Bearbeitung aus
####         Argumente  : -
####         Returnwert : -
####################################################################
sub getfarben {
	my $self=shift;
        my ($a,$b);
	my $SQL="delete from farben where knr=$self-&gt;{knr}";
        $self-&gt;sqldo($SQL);
	my $key; my $valu; my @Lhex; my @Lname; my $x;
	while (($key, $valu)= each %baseq::VARS ) {
	  $x=0;($x)=$key=~/^thex(\d+)$/;
	  if ($valu ne "") {$Lhex[$x]=$valu;}
	  $x=0;($x)=$key=~/^tname(\d+)$/;
	  if ($valu ne "") {$Lname[$x]=$valu;}
	}
	for ($x=1; $x&lt;(@Lhex); $x++) {
             $a=$self-&gt;fclean($Lhex[$x]); $b=$self-&gt;fclean($Lname[$x]);
	     $self-&gt;sqldo("insert into farben values ($self-&gt;{knr}, $x, '$a', '$b')");
	}
        $self-&gt;farbenbearb;
}

####################################################################
####         Gibt das Template zur Bearbeitung aus
####         Argumente  : Text
####         Returnwert : Text mit Font-Tags
####################################################################
sub templateansicht {
	my $self = shift;
	$self-&gt;{warntext}="Template: ".$self-&gt;{tmpbeschr};
	$self-&gt;printhtml($self-&gt;trans("TI15"),$self-&gt;qfont("Bitte sagen uns ihre Meinung !")."\n&lt;BR&gt;\n&lt;TABLE&gt;\n&lt;TR&gt;&lt;TD&gt;".
	$self-&gt;afont(
	$self-&gt;RB("U1F1","U1F1A1")."&amp;nbsp;Antwort Nummer 1:\n".
	$self-&gt;TF("U1F1A1T","",50)."&lt;BR&gt;\n".
	$self-&gt;RB("U1F1","U1F1A2")."&amp;nbsp;Die zweite Antwort\n&lt;BR&gt;\n".
	$self-&gt;RB("U1F1","U1F1A3")."&amp;nbsp;Die dritte Antwort\n&lt;BR&gt;\n"	).
	"&lt;/TD&gt;&lt;TD&gt;\n&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;\n".
	"&lt;/TABLE&gt;\n&lt;BR&gt;\n".
	$self-&gt;HD("ktemplate",$self-&gt;{template}).
	"\n&lt;BR&gt;\n".$self-&gt;SM("tbut", "BU13")."&amp;nbsp;&amp;nbsp;&amp;nbsp;".
	$self-&gt;sfont("Text in Standardfarbe")  );
	$self-&gt;exit;
}

####################################################################
####         gibt eine DropDownliste der Schriftfarben zurueck
####         Argumente  : $self, name, selected, farbe fuer Grafik ?
####         Returnwert : HTMLstring
####################################################################
sub DDfcolor {
  my ($self,  $name, $sel, $grafik) = @_;
  my @acolor=@{$self-&gt;{RLfontcolor}};
  my %hcolor=%{$self-&gt;{RHfontcolor}};
  if ($grafik) {
	$hcolor{0}="egal";
	unshift @acolor,"0";
  }
  return $self-&gt;DD($name,\@acolor,$sel,\%hcolor); 
}

####################################################################
####         gibt eine DropDownliste der Fragennummern zurueck
####         Argumente  : $self, name, selected, farbe fuer Grafik ?
####         Returnwert : HTMLstring
####################################################################
sub DDordernum {
  my ($self,  $name, $sel) = @_;
  my %ordernums=%$baseq::RHordernums;
  my @o=sort {$ordernums{$a} &lt;=&gt; $ordernums{$b}} keys %ordernums;	
  return $self-&gt;DD($name,$baseq::RLordernums,$sel,$baseq::RHordernums); 
}

####################################################################
####         gibt eine DropDownliste der Schriftstile zurueck
####         Argumente  : -
####         Returnwert : HTMLstring
####################################################################
sub DDfface {
  my ($self, $name, $sel) = @_;
  return $self-&gt;DD($name,$self-&gt;{RLfontface},$sel); 
}


####################################################################
####         gibt eine DropDownliste der Schriftstile zurueck
####         Argumente  : -
####         Returnwert : HTMLstring
####################################################################
sub grafikhtml {
  my ($self,$sep) = @_;
  my $ID=$self-&gt;IDstr;
  $self-&gt;log(4,$self-&gt;{details}." -- ".$self-&gt;IDstr);
  my %grdata;
  my @TRANS=qw/lfd proz txt/;
  my $IDG= defined $baseq::VARS{$ID."G"} ? $baseq::VARS{$ID."G"} : $self-&gt;{grafik};
  my $IDS= defined $baseq::VARS{$ID."S"} ? $baseq::VARS{$ID."S"} : $self-&gt;{sort};
  my $IDV= defined $baseq::VARS{$ID."V"} ? $baseq::VARS{$ID."V"} : $self-&gt;{gschmuck};
  my $IDG= substr($IDG,0,2);
  if ($self-&gt;{details} ne "" &amp;&amp; $ID ne $self-&gt;{details}) {
	return $self-&gt;HD($ID."G", $IDG).
		   $self-&gt;HD($ID."S", $IDS).
		   $self-&gt;HD($ID."V", $IDV);
  }
  my $grafik=grafikm-&gt;init($self);
  my $zufz=int(rand 10000000)+1;
  my $filename=$baseq::UMFIMG.$ID.$IDG."S".$IDS."V".$IDV."P".$self-&gt;{grpid}."x".$self-&gt;{grplfd}."x$sep$zufz.gif";		
  $self-&gt;log(4,"Grafikdatei = $baseq::PATH.$filename / X=$X, IDG=$IDG, IDS=$IDS IDV=$IDV");
  $grdata{GRA}=$IDG;      
  $grdata{pid}=$self-&gt;{grpid};
  $grdata{plfd}=$self-&gt;{grplfd};
  $grdata{schmuck}= $IDV;
  $grdata{filename}=$baseq::PATH.$filename;
  $grdata{sorttype}=$TRANS[$IDS];
  $grdata{shadowcolor}=$self-&gt;{shadowcolor};
  $grdata{textformath}="&amp;T - &amp;P%";
  $grdata{textformatv}="Nr.&amp;L (&amp;Z) ";
  $grdata{nachkomma}=0;
  if ($IDG eq "SK") {	
		$grdata{schmuck}="";
		$grdata{nachkomma}=2;
		$grdata{textformath}="  &amp;T";
		$grdata{textformatv}="&amp;Z";
		$grdata{printN}=0;
  }
  $grafik-&gt;setdata(\%grdata);
  $self-&gt;makegrafik($grafik);  
  my $typ=substr($self-&gt;{typ},0,1); 
  my $HTML= $self-&gt;IMGsubmit($filename, "stbut".$grafik-&gt;{id})."&lt;BR&gt;\n".
	$self-&gt;sfont(
		" Grafik:".$self-&gt;DD($ID."G", $self-&gt;{lgrafik}{$typ}, $IDG, $self-&gt;{hgrafik}{$typ} ).
		" Sortierung:".$self-&gt;DD($ID."S", $self-&gt;{lsort}, $IDS, $self-&gt;{hsort} ).
		" Verzierung:".$self-&gt;DD($ID."V", $self-&gt;{lschmuck}, $IDV, $self-&gt;{hschmuck} ) );
  if ($ID eq $self-&gt;{details}) {$HTML.="&lt;HR&gt;\n".$self-&gt;grafikdetails; }
  $HTML.=$self-&gt;SM("stbut","BU58")."&amp;nbsp; &amp;nbsp;\n".$self-&gt;SM("stbut".$self-&gt;IDstr,"BU59")."\n";	
  return $HTML;
}

sub grafikdetails {};
</pre></body></html>