patch HTML::Template pour ajouter %ENV

Utilisant activement le module perl HTML::Template, mais il me manquait une gestion des variables d'environements de façon à passer des informations de handlers perl au template.

%ENV

Les variables d'environnement s'utilisent avec le hashage %ENV en perl.

Le serveur HTTP apache utilise massivement les variables d'environnements pour donner les informations sur la connexion au script client.

Handler perl

Les handlers perl sont des fonctions s'intégrant dans le flux de traitement d'une connexion HTTP par apache. Il permettent de courcicuiter le traitement "normal" pour y ajouter toutes les fonctionnalités imaginables.

Ces handlers perl peuvent modifier les variables d'environnements très simplement et ainsi passer des paramètres aux outils qui suivront.

HTML::Template

HTML::Template permet de gérer des templates web et fonctionne à partir de variables passées par les scripts perl au moteur du template.

Mon problème est que je voulais passer des variables au template sans passer par le script perl, mais directement par le handler perl (ce qui évite de réécrire tous les scripts). Le but est de pourvoir modifier le code HTML suivant le navigateur en fixant une variable $ENV{NAVIGATEUR}.

Le patch

Le patch est simple et s'applique sur le fichier Template.pm (en version 2.9).

diff HTML-Template-2.9/Template.pm HTML-Template-2.9.patched/Template.pm
982a983
>                env => 1,
2687a2689,2696
> 	if($options->{env}) {
> 		foreach my $param (keys %{$self->{param_map}}) {
> 			if(exists($ENV{uc($param)})) {
> 				$self->param( $param, $ENV{uc($param)} );
> 			}
> 		}
> 	}
> 

Connecté

Sites obsolètes

Formulaire de contact

Formulaire de contact emailsec