[Bio] / WebApplication / WebLayout.pm Repository:
ViewVC logotype

Annotation of /WebApplication/WebLayout.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (view) (download) (as text)

1 : paarmann 1.1 package WebLayout;
2 :    
3 :     use strict;
4 :     use warnings;
5 :    
6 : paczian 1.3 use WebConfig;
7 :    
8 : paarmann 1.1 use HTML::Template;
9 :    
10 :     1;
11 :    
12 :     sub new {
13 : paczian 1.3 my ($class, $tmpl_path) = @_;
14 :    
15 :     my $tmpl = $tmpl_path || TMPL_PATH.'WebLayoutDefault.tmpl';
16 :     my $frame = TMPL_PATH.'WebLayoutFrame.tmpl';
17 :    
18 :     my $self = { 'template' => HTML::Template->new(filename => $tmpl,
19 :     die_on_bad_params => 0),
20 :     'frame' => HTML::Template->new(filename => $frame),
21 :     'title' => '',
22 :     'javascript' => [],
23 :     'css' => [],
24 :    
25 :     };
26 : paarmann 1.1
27 :     bless($self, $class);
28 :    
29 :     return $self;
30 :     }
31 :    
32 : paczian 1.3
33 : paarmann 1.1 sub set_content {
34 : paczian 1.3 $_[0]->frame->param( TITLE => $_[1]->{'title'} );
35 :    
36 :     my @warn = map { { MSG => $_ } } @{$_[1]->{'warnings'}};
37 :     my @info = map { { MSG => $_ } } @{$_[1]->{'info'}};
38 :    
39 :     $_[0]->template->param( CONTENT => $_[1]->{'content'});
40 :     $_[0]->template->param( MENU => $_[1]->{'menu'});
41 : paarmann 1.4 $_[0]->template->param( USER => $_[1]->{'user'});
42 : paczian 1.3 $_[0]->template->param( WARNINGS => \@warn );
43 :     $_[0]->template->param( INFO => \@info );
44 :     }
45 :    
46 :    
47 : parrello 1.5 sub set_variable {
48 :     $_[0]->template->param( $_[1] => $_[2]);
49 :     }
50 :    
51 :    
52 : paczian 1.3 sub add_javascript {
53 :     if ($_[1]) {
54 :     push @{$_[0]->{'javascript'}}, { 'JSFILE' => $_[1] };
55 :     }
56 :     }
57 :    
58 :     sub add_css {
59 :     if ($_[1]) {
60 :     push @{$_[0]->{'css'}}, { 'CSSFILE' => $_[1] };
61 :     }
62 : paarmann 1.1 }
63 :    
64 :     sub output {
65 :     my $self = shift;
66 :    
67 : paczian 1.3 $self->frame->param( BODY => $self->template->output() );
68 :     $self->frame->param( JAVASCRIPT => $self->{'javascript'} );
69 :     $self->frame->param( CSS => $self->{'css'} );
70 :    
71 :     return $self->frame->output();
72 : paarmann 1.1 }
73 :    
74 : paarmann 1.2 sub template {
75 : paczian 1.3 return $_[0]->{'template'};
76 :     }
77 : paarmann 1.1
78 : paczian 1.3 sub frame {
79 :     return $_[0]->{'frame'};
80 : paarmann 1.1 }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3