Template ?

Template ? - PHP - Programmation

Marsh Posté le 14-06-2004 à 19:18:37    

Salut,
C'est la première fois que je fais des templates et j'ai un petit problème, voila ce qu'il y a dans mon fichier php :
 

Code :
  1. <?php
  2. $template = "template1";
  3. array(
  4. 'TEMPLATE' => '$template');
  5. include("template.tpl" );
  6. ?>


Dans mon fichier template.tpl :
 

Code :
  1. {TEMPLATE}


 
Malheureusement, à l'affichage, je vois {TEMPLATE} au lieu de template1...

Reply

Marsh Posté le 14-06-2004 à 19:18:37   

Reply

Marsh Posté le 14-06-2004 à 19:24:26    

Pas compris ton souci
 
Sois plus précis dans ta demande. Quel est l'utilisation exacte que tu veux en faire ?
Comment penses tu que cela fonctionne ?
Donne plus de code


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 14-06-2004 à 19:29:25    

Ben en fait, je voudrais faire afficher la variable $template dans le fichier template.tpl, or je sais que seuls les fichiers PHP peuvent le faire. Cependant, j'ai analiser un script de phpbb et je vois que pour faire afficher leur variable sur le browser à travers un fichier .tpl, ils font comme ça :  
array('TEMPLATE' => '$template');  
dans le fichier php et après ils mettent {TEMPLATE} dans un fichier template (ca devrait afficher la valeure de la variable $template).

Reply

Marsh Posté le 14-06-2004 à 19:42:57    

Il y a toute une machine là derrière.
Tu as du rater du code de phpBB.
 
Pour aller en simplifiant, regarde en détail la fonction preg_replace()
 
et étudies aussi cette fonction :

Code :
  1. <?php
  2. function applique_modele($motif, $remplacement, $ou) {
  3. $text = "";
  4. if (is_file($ou)) {
  5.  //cherche et remplace
  6.  $id = fopen($ou, "rb" );
  7.  while (!feof ($id)) {
  8.        $text .= fgets($id, 4096);
  9.       }
  10.       $text = preg_replace($motif, $remplacement, $text);
  11.       fclose($id);
  12. }
  13. return $text;
  14. }
  15. ?>


$motifs est un tableau contenant les motifs à remplacer dans ton fichier template
$remplacement est aussi un tableau qui contient le contenu à  afficher à la place des motifs
$ou est le fichier de template


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 14-06-2004 à 19:47:54    

Ah donc le principe en fait c'est d'ouvrir le fichier, prendre son contenu et remplacer la ou il y a {TEMPLATE} par les informations. Très interessant :) bon, je vais voir ce que ca donne

Reply

Marsh Posté le 14-06-2004 à 20:45:29    

Ca marche parfaitement :jap:


Message édité par PACMaN2002 le 14-06-2004 à 20:49:34
Reply

Marsh Posté le 14-06-2004 à 23:53:22    

tu peux aussi utiliser les bibliotheques de fonction pear qui t evite de parser le fichier a chaque fois  
 
tu ouvres ton template et tu fais un setVariable('nom_variable_dans_template',$variable)
 
+ d infos ici http://pear.php.net/
 

Reply

Marsh Posté le 15-06-2004 à 15:17:06    

En template Smarty est également une solution intéressante :  
http://smarty.php.net
 
(notamment quand vous avez des problèmes de version pear/php avec votre hébergeur sur un hébergement mutualisé qui fait que vous ne pouvez pas utiliser correctement Pear).


Message édité par KrisCool le 15-06-2004 à 15:18:00
Reply

Marsh Posté le 19-06-2004 à 00:08:57    

Kriscool a écrit :

En template Smarty est également une solution intéressante :  
http://smarty.php.net
 
(notamment quand vous avez des problèmes de version pear/php avec votre hébergeur sur un hébergement mutualisé qui fait que vous ne pouvez pas utiliser correctement Pear).

tres interessant smarty  je connaissais pas  merci  :jap:

Reply

Marsh Posté le 23-06-2004 à 10:07:27    

smarty est assez excellent. j'utilise plus que ça et je pourrais pas revenir en arrière (je viens de poster le même genre de message à l'instant dans un autre sujet ! :) )

Reply

Marsh Posté le 23-06-2004 à 10:07:27   

Reply

Marsh Posté le 23-06-2004 à 10:16:40    

Il est pas mal mais il est très très lourd ...
J'ai développé un moteur de templates du meme acabit que smarty mais en beaucoup beaucoup plus léger. Je le mettrais en gpl dans quelques temps.

Reply

Marsh Posté le 23-06-2004 à 11:01:56    

Si c'est vrai joli travail.
 
mais bon smarty y a quand même un système de précompilation, de cache etc. qui optimise les pages. les temps d'exécution restent très bas.
 
plus tout le "langage" smarty et ses plugins, ça fait quand même un sacré logiciel.
 
personnellement je ne le trouve pas si lourd. j'ai même testé le temps d'exécution des pages, une fois la page en cache (après la première 'compilation') c'est extrèmement rapide. On voit même la différence sur les pages où il y a les requêtes mysql, avec une légère augmentation du temps d'exécution (ça reste négligeable quand même).


Message édité par PunkRod le 23-06-2004 à 11:03:59
Reply

Marsh Posté le 23-06-2004 à 11:10:35    

j'ai aussi fait un systeme de caches tres pousses, et niveau rapidite, mon moteur n'a rien a envier a smarty ;)

Reply

Marsh Posté le 23-06-2004 à 11:19:56    

c'est lourd les templates.. C'est ce qui me rebute à en faire pour mon site :/


---------------
Saint Seiya  || La Livebox || Europe, débats, réflexions
Reply

Marsh Posté le 23-06-2004 à 16:04:16    

sur quoi vous vous basez pour dire que c'est "lourd" ?
 
temps de chargement/compilation ?
difficile à mettre en oeuvre ?
 
ou juste pas envie de faire face au changement... ?

Reply

Marsh Posté le 23-06-2004 à 17:57:33    

temps de chargement et utilisation cpu


---------------
Saint Seiya  || La Livebox || Europe, débats, réflexions
Reply

Marsh Posté le 24-06-2004 à 15:26:59    

ah... la charge cpu j'ai pas testé, mais niveau temps de chargement smarty c'est d'la balle :o :)

Reply

Marsh Posté le 24-06-2004 à 23:38:00    

t'as pas du tester beaucoup de moteurs de templates ...

Reply

Marsh Posté le 24-06-2004 à 23:44:27    

Moi j'me casse pas la tête, ça fait la même chose que smarty et c'est très rapide : j'ai une classe template à instancier, celle-ci "include" le fichier template choisi et c'est tout.. Ce fichier contient simplement le XHTML avec des <?= $this->values['test'] ?> aux endroits dynamiques.. Pour les tableaux par ex, une boucle en PHP directement incluse dans le template fait l'affaire, c'est très propre et très performant je trouve..

Reply

Marsh Posté le 24-06-2004 à 23:45:43    

Tu nous en fais profiter ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 25-06-2004 à 01:58:39    

*Syl* : tout le monde peut faire la même chose que Smarty puisqu'au final Smarty ne fait rien d'autre que de générer un script php =)

Reply

Marsh Posté le 25-06-2004 à 09:33:44    

KrisCool a écrit :

*Syl* : tout le monde peut faire la même chose que Smarty puisqu'au final Smarty ne fait rien d'autre que de générer un script php =)

J'suis au courant, je l'avais testé quand je cherchais un moteur de templates, j'le trouvais rapide & sympa mais j'préférais quand même ma solution :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed