Ecrire du code perl dans HTML [Linux]

Fermé
Messages postés
14
Date d'inscription
dimanche 20 février 2011
Statut
Membre
Dernière intervention
12 février 2013
-
Messages postés
5734
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
28 janvier 2022
-
Bonjour,
j'ai rencontré un probelem d'integration du code Perl dans un fichier .dtl
J'ai essayé plusieurs fois mais en vain .

<select name="test">
<:
open(test,"+<test.txt") || die ("Erreur d'ouverture") ;
while (<test>) {
printf ("<option >%d</option>",$_);
print <option> $_ </option>;
}
close(test);
:>
</select>
j'ai aussi essayé avec <!--include file="test.pl" --> encore entre <% %> mais toujours sans resultat .
Merci d'avance pour votre aide ^^

5 réponses

Messages postés
5734
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
28 janvier 2022
966
Salut nanouss_nanouss,

C'est quoi un fichier ".dtl" ?

Si tu as Apache, et que tu veux lui faire exécuter du Perl, tu peux le faire avec CGI, ou mieux, avec le module mod_perl de Apache (à installer si ce n'est pas fait).

Tu peux alors faire des trucs comme cela :

$ cat mapage.html   
#!/usr/bin/perl    

use strict;    
use warnings;    

my $date = localtime();    

print <<EOF    
Content-Type: text/html    

<html>    
<head><title>My page about date</title></head>    
<body>    
<h3>Today's date is</h3>    
<p>$date</p>    
</body>    
</html>    
EOF;

et "mapage.html" est exécutée par Apache mod_perl pour restituer le code html dynamique.

Bien sûr, mieux vaut modulariser le Header, utiliser les fonctions mod_perl pour envoyer les headers http, modulariser Footer, séparer le code Perl du code Html, etc. C'est juste un exemple pour te donner une idée :-)


Dal
Messages postés
14
Date d'inscription
dimanche 20 février 2011
Statut
Membre
Dernière intervention
12 février 2013

Merci pour votre réponse :)
.DTL: Dynamic Template Language
je veux integrer directement le code Perl dans HTML.
Messages postés
5734
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
28 janvier 2022
966
Salut nanouss_nanouss,

Cela ne serait pas le "langage" de template propre au logiciel de gestion de tickets OTRS ?


Dal
Messages postés
14
Date d'inscription
dimanche 20 février 2011
Statut
Membre
Dernière intervention
12 février 2013

alors DTL est propre à OTRS !!!
Oui c'est exactement ça, je suis entrain de faire des modifications sur OTRS.
Merci pour l'information
Messages postés
5734
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
28 janvier 2022
966
Salut nanouss_nanouss,

Oui, le "DTL" de OTRS est propre à OTRS. Je n'ai jamais pratiqué ce logiciel, mais en cherchant sur leur site, on trouve la documentation suivante sur la syntaxe de leur système de Template :

http://doc.otrs.org/developer/2.0/en/html/c494.html

Le principe est que tu sépares le code Perl du code du template, où tu peux insérer des variables, définir des blocs,... C'est ce que j'en comprend.

Tu ne peux donc pas mettre du Perl dans le Template. C'est exactement le but opposé du fonctionnement du système de template : séparer le code de la forme de présentation.

Pour faire ta boucle et insérer ta boite d'options dynamiques "<option>", je pense que tu dois définir un "block" dans le template. Inspire toi de ce que tu vois là http://doc.otrs.org/developer/2.0/en/html/c494.html#block :

- tu crées un "block" pour tes lignes <option> qui sera répété avec les variables à insérer
- les variables proviendront du contenu d'un hash que tu peut créer dans le module Perl qui sera chargé d'appeler le template, comme indiqué dans l'exemple

Si tu modifies un template existant, ce template doit être appelé par un module Perl qui existe déjà (ou alors tu crées un nouveau module appelant ce Template, je ne sais pas ce que tu fais). Il faut créer ton hash avec les variables à insérer dans ce module.


Dal