CGI::Lazy::Template - CGI::Lazy::Template documentation


CGI-Lazy documentation Contained in the CGI-Lazy distribution.

Index


Code Index:

LEGAL

Top

NAME

Top

CGI::Lazy::Template

SYNOPSIS

Top

	use CGI::Lazy;

	my $q = CGI::Lazy->new('/path/to/config/file');

	print $q->template('topbanner1.tmpl')->process({ mainTitle => 'Main Title', secondaryTitle => 'Secondary Title', versionTitle => 'version 0.1', messageTitle => 'blah blah blah', });

DESCRIPTION

Top

CGI::Lazy::Template is pretty much just a wrapper to HTML::Template. It takes a template name as its single argument, and has a single useful method: process, which takes a hashref of variables to shuffle together with the template for subsequent printing to the browser.

METHODS

Top

boilerplate (widget)

Returns a boilerplate object for generating boilerplate templates for widget. See CGI::Lazy::Template::Boilerplate for details.

widget

A CGI::Lazy widget of some kind.

config

Returns CGI::Lazy::Config object

q

Returns CGI::Lazy object.

new (q, template)

Constructor.

q

CGI::Lazy object

template

Template file name. File must be in the template directory as specified by the config file.

process (vars)

Shuffles values contained in vars together with template for output.

vars

hashref of variables expected by template


CGI-Lazy documentation Contained in the CGI-Lazy distribution.

package CGI::Lazy::Template;

use strict;

use HTML::Template;
use CGI::Lazy::Globals;
use CGI::Lazy::Template::Boilerplate;

#----------------------------------------------------------------------------------------
sub boilerplate {
	my $self 	= shift;
	my $widget 	= shift;

	return CGI::Lazy::Template::Boilerplate->new($self, $widget);
}

#----------------------------------------------------------------------------------------
sub config {
	my $self = shift;

	return $self->q->config;
}

#----------------------------------------------------------------------------------------
sub q {
	my $self = shift;

	return $self->{_q};
}

#----------------------------------------------------------------------------------------
sub new {
	my $class = shift;
	my $q = shift;
	my $tmplname = shift;
	

	my $self = {_q => $q, _tmplname => $tmplname};

	bless $self, $class;

	eval {
		$self->{_template} = HTML::Template->new( 
							filename => $self->config->tmplDir."/".$tmplname, 
							die_on_bad_params => 0,
						);
	};

	if ($@) {
		$self->q->errorHandler->tmplCreateError;
		exit;
	}

	return $self;
}

#----------------------------------------------------------------------------------------
sub process {
	my $self = shift;
	my $vars = shift;

	eval {	
		$self->template->param($vars);
	};

	if ($@) {
		$self->q->errorHandler->tmplParamError($self->tmplName);
		exit;
	}
	
	my $output;

	eval {
		$output = $self->template->output;
	};

	if ($@) {
		$self->q->errorHandler->tmplParamError($self->tmplName);
		exit;
	}

	return $output;
}

#----------------------------------------------------------------------------------------
sub template {
	my $self = shift;

	return $self->{_template};
}

#----------------------------------------------------------------------------------------
sub tmplName {
	my $self = shift;

	return $self->{_tmplname};
}

1

__END__