QWizard
view release on metacpan or search on metacpan
Generator/HTML.pm view on Meta::CPAN
['noexpand','datafn'],
['single','extension'],
['single','linktext']
]);
$self->add_handler('unknown',
\&QWizard::Generator::HTML::do_unknown,
[]);
$self->{'datastore'} = new QWizard::Storage::CGIParam;
$self->{'prefstore'} = new QWizard::Storage::CGICookie;
return $self;
}
sub init_cgi {
my $self = shift;
if (!exists($self->{'cgi'})) {
# we do this here late binding as possible for various reasons
$self->{'cgi'} = new CGI;
}
}
sub init_screen {
my ($self, $wiz, $title) = @_;
$self->init_cgi();
return if ($self->{'started'} || $wiz->{'started'});
$self->{'started'} = $wiz->{'started'} = $self->{'prefstore'}{'started'} =1;
$self->{'first_tree'} = 1;
my @otherargs;
if ($self->{'cssurl'}) {
push @otherargs, 'style', { src => $self->{'cssurl'}};
} elsif (!$self->{'nocss'}) {
push @otherargs, 'style', { code => $defaultcss };
}
print "Content-type: text/html\n\n" if (!$self->{'noheaders'} &&
!$wiz->{'noheaders'});
print $self->{'cgi'}->start_html(-title => escapeHTML($title),
-bgcolor => $self->{'bgcolor'}
|| $wiz->{'bgcolor'} || "#ffffff",
@otherargs);
if ($self->{'prefstore'}->{'immediate_out'} &&
$#{$self->{'prefstore'}->{'immediate_out'}} > -1) {
print @{$self->{'prefstore'}->{'immediate_out'}};
delete $self->{'prefstore'}->{'immediate_out'};
}
print $self->{'cgi'}->start_multipart_form(-name => $self->{'form_name'}),
"\n";
$self->{'wizard'} = $wiz;
}
# html always waits
sub wait_for {
my ($self, $wiz, $next, $p) = @_;
print $self->{'cgi'}->end_form();
Generator_base/Generator.pm view on Meta::CPAN
sub end_questions {}
sub do_pass {};
sub new {
die "should not be called directly\n";
}
sub init_default_storage {
my $self = shift;
$self->{'datastore'} = new QWizard::Storage::Memory();
$self->{'prefstore'} = new QWizard::Storage::Memory();
$self->{'tmpdir'} = "/tmp" if (!$self->{'tmpdir'});
}
# widgets that have fallbacks to more minimal widgets:
sub do_textbox {
my $self = shift;
$self->do_entry(@_);
}
sub do_paragraph {
Generator_base/Generator.pm view on Meta::CPAN
print STDERR "unknown argument type: $def->[0]\n";
}
}
return \@args;
}
# preferences
sub qwpref {
my $self = shift;
return $self->{'prefstore'}->access(@_);
}
# file uploads
sub qw_upload_fh {
my ($self) = shift;
my ($it);
my $ret;
if (ref($self) =~ /QWizard/) {
$it = shift;
if (!defined($self->{'generator'}));
}
bless($self, $class);
$self->qwsetdebug();
#
# Get the URI preference option and set our preferences.
#
my $npprefs = $self->{'npprefs'} || "";
$npprefs =~ s/&np-prefs=//;
parseprefs($self,$npprefs);
# remember ourselves for later usage
$qwcurrent = $self;
return $self;
}
#
# $wiz->run_hooks(NAME, HOOK_ARGS)
# runs all hooks bound to NAME with a passed reference to QWIZARD,
my $coderef = shift;
my @magic_args = @_;
my $hook_definition = {'code' => $coderef};
push @{$self->{'hooks'}{$hookname}}, $hook_definition;
if ($#magic_args > -1) {
$hook_definition->{'args'} = \@magic_args;
}
}
########################################################################
# parseprefs()
#
# Valid preferences and their values:
# pref_debug 0, 1
# pref_history dont, sidebar, frame
# pref_intro 0, 1
#
sub parseprefs {
my $self = shift; # Me.
my $prefs = shift; # Preference argument from URI.
my @preflist; # List of preferences.
my $pcnt; # Number of preferences.
my $prefstr; # Preference string.
#
# Break the URI preference argument up into individual preferences.
#
@preflist = split(',',$prefs);
$pcnt = @preflist;
#
# Examine each preference individually, ensuring the name and value
# are both valid.
#
for(my $ind=0;$ind<$pcnt;$ind++)
{
my @pieces; # Preference pieces.
my $prefname; # Name of preference.
$prefname = "pref_" . $pieces[0];
$prefval = $pieces[1];
#
# Check the validity of the preference name and value.
#
if($prefname eq "pref_debug")
{
if(($prefval != 0) && ($prefval != 1))
{
warn "QW:parseprefs: invalid value \"$prefval\" for preference \"$prefname\"\n";
next;
}
}
elsif($prefname eq "pref_history")
{
if(($prefval ne "dont") && ($prefval ne "frame") &&
($prefval ne "sidebar"))
{
warn "QW:parseprefs: invalid value \"$prefval\" for preference \"$prefname\"\n";
next;
}
}
elsif($prefname eq "pref_intro")
{
if(($prefval != 0) && ($prefval != 1))
{
warn "QW:parseprefs: invalid value \"$prefval\" for preference \"$prefname\"\n";
next;
}
}
else
{
warn "QW:parseprefs: unknown preference \"$prefname\"\n";
next;
}
#
# Set the preference value.
#
# warn "QW:parseprefs: setting \"$prefname\" to $prefval\n\n";
$self->qwpref($prefname,$prefval);
$self->qwparam($prefname,$prefval);
}
}
#
# Primary manipulation routines
#
sub get_primary {
( run in 0.611 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )