Ananke-Template
view release on metacpan or search on metacpan
Template.pm view on Meta::CPAN
#!/usr/bin/perl
package Ananke::Template;
use strict;
our $VERSION = '1.4';
my @my;
# Processo para facilitar o print do template
sub view_template {
my ($template_dir,$template_file,$vars,$to_file) = @_;
my $return;
my $template = new Ananke::Template($template_dir);
$return = $template->process($template_file,$vars,$to_file);
return $return if ($to_file == 1);
undef $template_dir; undef $template_file; undef $vars;
undef $template; undef $to_file;
}
# Inicia modulo
sub new {
my($self,$templ_dir,$to_file) = @_;
# Grava dados
bless {
'TEMPL_DIR' => $templ_dir,
}, $self;
}
# Processa página
sub process {
my($self,$file,$vars,$to_file) = @_;
my($fdata,$output,$my,$return);
$self->{TEMPL_FILE} = $file;
# Retorna em var, sprintf
if ($to_file == 1) {
$self->{TO_RETURN} = 1;
undef $to_file;
}
$self->{TO_FILE} = $to_file;
@my = ();
$fdata = $self->load();
$output = $self->parse($fdata,$vars);
#$my = "my \$return;\n";
foreach (@my) {
$my .= $_->{value};
}
$output = $my.$output;
$return = eval $output;
#print $output."\n";
print $@ if ($@);
return $return if ($self->{TO_RETURN});
#open (FH,">/tmp/filexx");
#syswrite(FH,$output);
#close(FH);
}
# Trata arquivo
sub parse {
my($self,$fdata,$vars) = @_;
my(@t,$ndata,$output);
my $outype;
if ($self->{TO_FILE}) {
$output .= "open(OUTFILE,\">".$self->{TO_FILE}."\");";
$outype = "OUTFILE";
} else {
$outype = "STDOUT";
}
# Transfere dados para vars
foreach (keys %{$vars}) {
push(@my,{
var => "\$T$_",
value => "my \$T$_ = \$vars->{$_};\n"
});
( run in 0.539 second using v1.01-cache-2.11-cpan-5b529ec07f3 )