Ecrire du code perl dans HTML [Linux]

Fermé
nanouss_nanouss Messages postés 14 Date d'inscription dimanche 20 février 2011 Statut Membre Dernière intervention 12 février 2013 - 3 févr. 2012 à 11:31
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 4 févr. 2012 à 21:23
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 ^^
A voir également:

5 réponses

[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 1 099
Modifié par [Dal] le 3/02/2012 à 12:35
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
0
nanouss_nanouss Messages postés 14 Date d'inscription dimanche 20 février 2011 Statut Membre Dernière intervention 12 février 2013
3 févr. 2012 à 13:57
Merci pour votre réponse :)
.DTL: Dynamic Template Language
je veux integrer directement le code Perl dans HTML.
0
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 1 099
3 févr. 2012 à 17:08
Salut nanouss_nanouss,

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


Dal
0
nanouss_nanouss Messages postés 14 Date d'inscription dimanche 20 février 2011 Statut Membre Dernière intervention 12 février 2013
3 févr. 2012 à 21:24
alors DTL est propre à OTRS !!!
Oui c'est exactement ça, je suis entrain de faire des modifications sur OTRS.
Merci pour l'information
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 1 099
4 févr. 2012 à 21:23
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
0