Apache2-Translation
view release on metacpan or search on metacpan
lib/Apache2/Translation/Admin.pm view on Meta::CPAN
$prov->commit
};
if($@) {
if( $@ eq "__RETRY__\n" ) {
$prov->rollback;
redo RETRY;
}
$r->log_reason( "$@" );
my $err="$@";
$err=~s/[\n\0-\37\177-\377]/ /g;
$r->err_headers_out->{'X-Error'}=$err;
$prov->rollback;
$prov->stop;
$key=$okey;
$uri=$ouri;
return Apache2::Const::SERVER_ERROR;
}
}
$prov->stop;
return $I->xfetch($r, $key, $uri);
}
sub handler : method {
my ($I, $r)=@_;
unless( ref($I) ) {
$I=$I->new(r=>$r);
}
my $uri=$r->uri;
$uri=~s!^.*/!/!;
unless( $uri eq '/' or $uri eq '/index.html' ) {
my $f=$I->static.$uri;
return Apache2::Const::NOT_FOUND unless( -f $f and -r _ );
my $re=$I->types_re;
if( $f=~m!\.($re)$!i ) {
$r->content_type($I->types->{lc $1});
} else {
$r->content_type('text/plain');
}
$r->sendfile($f);
return Apache2::Const::OK;
}
unless( defined $I->provider ) {
$I->_fetch_provider_LWP if(length $I->provider_url);
die "ERROR: Cannot resolve translation provider\n"
unless(ref $I->provider);
}
$r=Apache2::Request->new($r);
$r->content_type('text/html; charset=UTF-8');
my $a=$r->param('a');
if( $a eq '' ) {
return $I->xindex($r);
} elsif( $a eq 'fetch' ) {
return $I->xfetch($r);
} elsif( $a eq 'update' ) {
return $I->xupdate($r);
} else {
return Apache2::Const::NOT_FOUND;
}
return Apache2::Const::OK;
}
1;
__END__
( run in 3.943 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )