- #!/usr/bin/perl -w
- use CGI::FormBuilder;
- my $docroot = '../build/html';
- # TODO: check if protocol-agnostic URL works
- my $webroot = 'https://stadsvandring.dk/book-form';
- my $req_path = $docroot . '/book/index.tmpl';
- my $ack_path = $docroot . '/book/thanks/index.html';
- my $webmaster = 'webmaster@stadsvandring.dk';
- my $frontdesk = 'stadsvandring@stadsvandring.dk';
- my $helpdesk = 'webmaster@stadsvandring.dk';
- # Set this to 1 for a separate confirmation page
- my ($confirm) = 1;
- # Built-in email validation is too simplistic
- my $valid_email = '/^[+_A-Za-z0-9-]+(\.[+_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[_A-Za-z0-9-]+)$/';
- my $form = CGI::FormBuilder->new(
- lang => 'sv',
- title => 'Din næste stadsvandring',
- method => 'POST',
- fields => [qw/
- requests
- places
- time
- size
- name
- org
- email
- addr
- misc
- /],
- validate => {
- email => $valid_email,
- _email => $valid_email, #fake check to silence warning of variable used only once
- },
- required => [qw/
- name
- email
- requests
- /],
- messages => ':sv_SE',
- # submit => ['Submit'],
- action => $webroot, #avoids loosing submitted values when redirected from other site
- );
- $form->field(
- name => 'requests',
- label => 'Önskemål om tur',
- type => 'textarea',
- rows => 3,
- );
- $form->field(
- name => 'places',
- label => 'Önskemål om start och– slut på turenlokalitet',
- type => 'textarea',
- rows => 3,
- );
- $form->field(
- name => 'time',
- label => 'Datum och tid',
- );
- $form->field(
- name => 'size',
- label => 'Gruppstorlek',
- );
- $form->field(
- name => 'name',
- label => 'Namn',
- );
- $form->field(
- name => 'org',
- label => 'Företag eller institution',
- );
- $form->field(
- name => 'email',
- label => 'Mailadress',
- );
- $form->field(
- name => 'addr',
- label => 'Adress och telefonnummer',
- type => 'textarea',
- rows => 3,
- );
- $form->field(
- name => 'misc',
- label => 'Andra upplysningar om gruppen och andra önskemål om turen',
- type => 'textarea',
- rows => 6,
- );
- my ($form_required_text) = $form->{opt}{messages}{form_required_text};
- my ($mail_from) = $webmaster;
- my ($mail_to, $mail_subject);
- if ($form->submitted) {
- $infostring = "Tak for din booking-ansøgning ved stadsvandring.dk - du vil snarest blive kontaktet!";
- if ($form->validate) {
- $mail_to = $frontdesk;
- $mail_subject = 'stadsvandring.dk booking-ansøgning';
- } else {
- $mail_to = "$frontdesk, $helpdesk";
- $mail_subject = 'FEL i stadsvandring.dk booking-ansökan';
- $infostring .= "\n<P>NB! Det var en FEL i en eller flere af telterne. Din ansökan blev sendt alligevel, men vi anbefaler at du checker igen at blanketten er korrekt udfyldt og sender den igen.";
- $confirm = 0;
- };
- # Abuse subject to add additional headers
- # $mail_subject .= "\n" . 'Content-Type: text/plain; charset="ISO-8859-1";';
- # $mail_subject .= "\n" . 'Content-Transfer-Encoding: 8bit';
- $form->mailresults(
- to => $mail_to,
- from => $mail_from,
- subject => "$mail_subject",
- );
- if ($confirm) {
- $infostring .= "\n<P>Følgende informationer blev sendt:";
- $form->{opt}{messages}{form_confirm_text} = "$infostring";
- print $form->confirm(
- header => 1,
- template => $ack_path
- );
- } else {
- printhack( $form->render(
- header => 1,
- sticky => (! $form->validate),
- #FIXME text => $infostring,
- template => $req_path
- ));
- }
- } elsif ($ENV{'FORMBUILDER_NOHEADER'}) {
- printhack( $form->render(
- header => 0,
- template => $req_path
- ));
- } else {
- printhack( $form->render(
- header => 1,
- template => $req_path
- ));
- }
- # fix charset in header
- sub printhack {
- $_ = shift;
- s,charset=\Kiso\-8859\-1,utf-8,;
- print $_;
- }
|