
| Current Path : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/DivBasicF/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/DivBasicF/Run.pm |
package DivBasicF::Run;
use strict;
use Server::frezthaw;
use Time::HiRes qw(usleep);
# Sessions are persistent stores located at the server.
# Variables can be stored in it. The local stores for each
# formular are numerated.
sub new {
my $class = shift;
my $self = {};
my $objects = shift;
$self->{'OBJ'} = shift;
my $dbs = shift;
my $dbt = shift;
my $pars = shift;
$self->{'PARS'} = shift;
if ($objects) {
$self->{'FORMPAGE'} = $self->{'OBJ'}->oo("DivBasicF::FormPage","new");
} else {
$self->{'FORMPAGE'} = $self->{'OBJ'}->ff("DivBasicF::FormPage","new");
}
my @ee = (@$dbs,@$dbt);
my $o;
foreach $o (keys %$pars) {
push(@ee,$o);
push(@ee,$pars->{$o});
}
$self->{'OBJ'}->ff($self->{'FORMPAGE'},"init",@ee);
bless($self,$class);
return($self);
}
#*********************************************************************
sub formpage {
my $self = shift;
return($self->{'FORMPAGE'});
}
#*******************************************************************
sub run {
my $self = shift;
my $jump = $self->{'OBJ'}->ff($self->{'FORMPAGE'},"xvar","___jump___");
$self->goto($jump);
return($self->{'OBJ'}->ff($self->{'FORMPAGE'},"finish"));
}
#*******************************************************************
sub create_tables {
my $self = shift;
return($self->{'OBJ'}->ff($self->{'FORMPAGE'},"create_tables"));
}
#********************************************************************
sub goto {
my $self = shift;
my $jump = shift;
my @pars = @_;
$jump =~ /(.*)\:\:(.*)/;
my $jumpfile = $1;
my $jumpfunc = $2;
# print "TT: $jumpfile,$jumpfunc\n";
eval("use ".$jumpfile); print $@;
# warn($@);
# use $jumpfile;
if ($@) { $self->error($@); }
bless($self,$jumpfile);
eval("\$self->".$jumpfunc."(\@pars)"); print $@;
# $self->$jumpfunc(@pars);
if ($@) { print $@; } # $self->error($@); }
$self->{'OBJ'}->ff($self->{'FORMPAGE'},"close_session");
return(1);
}
#***********************************************************************
sub jff {
my $self = shift;
my $jumpfile = shift;
my $jumpfunc = shift;
if ( !$jumpfunc ) {
if ($jumpfile =~ /(.*)-(.*)/) {
$jumpfunc = $2;
$jumpfile = $1;
} else {
$jumpfunc = $jumpfile;
$jumpfile = "";
}
} else {
if (!$jumpfile) {
$jumpfile = $self->{'___JUMPFILE___'};
}
elsif ( ref($jumpfile) ) {
$jumpfile = ref($jumpfile);
}
}
return($jumpfile."::_".$jumpfunc);
}
#***********************************************************************
sub error {
my $self = shift;
my $text = shift;
print $text;
return(1);
}
#***********************************************************************
#***********************************************************************
sub xxxtest {
my $self = shift;
my $page = $self->formpage();
my $form = $page->form("-A",$self->jff($self,"START"));
$form->xvar("user","?system");
$form->xvar("password","?widor");
$form->xvar("lang","?");
$page->render_HTML(<<'TEXT_ENDE',"!> <!");
<HTML><BODY>
<FORM ACTION=@@-A>
!>Account:<! <INPUT TYPE=TEXT SIZE=20 NAME=@@-A-user>
Password: <INPUT TYPE=TEXT SIZE=20 NAME=@@-A-password>
<INPUT TYPE=submit VALUE="English" NAME=@@-A-lang>
<INPUT TYPE=submit VALUE="Deutsch" NAME=@@-A-lang>
</FORM>
</BODY></HTML>
TEXT_ENDE
}
1;