Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: confucius le le 07-05-2006 a 17:17:10

Titre: Fonctionnement d'un moteur template
Posté par: confucius le le 07-05-2006 a 17:17:10

Bonjour à tous,

Je m'intéresse à l'utilisation de template pour mon site. Après lecture de différents tuto sur phpdébutant et le siteduzéro, j'ai toujours du mal à saisir le fonctionnement d'un moteur de template. J'ai bien saisi l'utilité que je trouve géniale mais j'ai énormément de mal pour la mise en oeuvre.

Auriez vous des explications, d'autres sites à visiter ou des conseils pour que j'arrive à mieu apréhender l'utilisation d'un moteur de template.
Egalement m'orienter vers un moteur de template également car j'ai vu qu'il y en avait plusieurs et que les codes changeait en fonction.

Amicalement,
Matt

Titre: Re:Fonctionnement d'un moteur template
Posté par: tavman le le 08-05-2006 a 14:31:42

Tu veut en faire un ou tu veut en utiliser un ??

En fait, pour en faire un, c'est pas si compliquer que ca... Commence par apprendre l'utilisation des class (tu fait une class template et après t'es tranquil).

Après, c'est juste des str_replace (en gros) qui te permettent de faire en sorte que
du texte {ma_variable} du texte
devienne :
du texte bonjour du texte

t'as juste fait un
str_replace("{ma_variable}", "bonjour" $String);

pour faire des boucles, il faut d'abord que tu découpe ta chaine de caractères...

En fait, si tu veut qu'on t'aide, faudrai etre un peu plus précis... sinon si il faut t'expliquer tout sur les templates, on n'a pas fini...

Titre: Re:Fonctionnement d'un moteur template
Posté par: Shain le le 08-05-2006 a 15:02:19

Personnellement pour mes développements j'utilise le moteur de template Smarty. J'ai fait une petite journée de recherche et de tests l'été derniers et c'est celui qui me semblait fonctionner le mieux parmis ceux que j'ai essayés.

Titre: Re:Fonctionnement d'un moteur template
Posté par: tavman le le 08-05-2006 a 22:12:05

Moi j'utilise le mien... il est pas forcément très épais mais j'ai les fonctions de bases et comme je le connait, je peut l'adapter en cas de besoins (même si pour l'instant ca m'est pas arrivé).... J'ai le changement des mots, les boucles et les conditions... Que rajoutter de plus ?

Et puis franchement, c'est pas compliquer a faire un moteur de templates... J'avoue que j'en n'ai pas testé beaucoup avant de faire le mien mais...

Titre: Re:Fonctionnement d'un moteur template
Posté par: confucius le le 09-05-2006 a 09:43:47

Je ne sais pas si j'ai pour le moment les capacité de faire le mien, c'est que j'ai essayé de m'y mettre avec des exemples de phpdébutant et du siteduzero, j'ai eut des erreurs de parse error que je n'ai pas réussi à corriger. Et essayant de comprendre le code et le tuto j'avoue que l'histoire de class n'est pas très claire pour moi.

Je cherche des ressources pour comprendre comment c'est codé afin de bien saisir les corrections à apporter. Tant qu'a créer mon site autant que je le fasse le mieu possible :)

Je voulais savoir aussi est ce que l'on peut quand même intégré du code php dans la partie xhtml, le moteur le comprend où il est impératif de séparer entièrement les 2 codes ?
Et surtout ce que je recherche c'est comment organiser la stucture d'un site (comment ranger tout cela sur le serveur, si en fait on fait une source html et une source php et que l'on fait des appels via une base de données).

Disons que cette histoire de template m'interesse beaucoup mais soulève beaucoup d'interogation sous jacente du à mon niveau de débutant et mon manque d'expérience.
Je n'ai pas voulu prendre la solution d'un CMS car cela ne correspond pas à mes attentes envie et aussi une grosse part de curiosité vis à vis de la programmation et des standard :)

En tout cas si vous vous sentez le courage de poursuivre un peu plus loin l'introduction aux templates, je suis tout ouïe, merci !!

Matt

Titre: Re:Fonctionnement d'un moteur template
Posté par: tavman le le 15-05-2006 a 07:56:36

Bon alors...

En très gros, voici ce que doit faire la fonction principale de ton template :

- elle récupère une variable a modifier dans ton HTML
- elle récupère une valeur a mettre a la place de la variable
- elle récupère un morceau de HTML

- dans ce morceau de HTML, elle recherche la variable (le plus souvent, on rajoutte des ptits trucs un peu spéciaux genre des acolades autour ce qui donne {VARIABLE} ) dans le code HTML
- elle change ta variable par la valeur
- elle retourne un HTML

alors tu va me dire "oue mais ca, c'est tout con... suffit de faire un str_replace bien placé" et t'aura pas tort : j'ai jamais dit qu'elle était compliqué cette fonction.
Donc en gros, ca donne ceci :

function Modif_Texte ( $Var, $Val, $HTML) {
return str_replace("{" . $Var . "}", $Val, $HTML);
}

// test :
echo Modif_Texte("VAR", "bonjour", "{VAR} tout le monde");

et c'est tout.

Maintenant, tu peut aussi avoir envie de répéter une information en boucle (genre, pour faire un tableau).
Donc là, il faut que tu prenne un morceau de texte et que tu l'envoit X fois a la fonction toute a l'heure.

Donc déjà, faut savoir quelle partie de ton texte tu prend :

<!-- DEBUT BOUCLE_NUMERO_1 -->
{VAR}
<!-- FIN BOUCLE_NUMERO_1 -->

ce sont des notes HTML... C'est souvent ce qu'on met pour faire des boucles.

Donc tu as une fonction qui doit faire ceci :
- prendre une variable en paramètre
- prendre une LISTE de valeur en paramètres
- prendre du code en paramètre
- prendre un nom de boucle en paramère

avec tout ca, tu fait une recherche sur :
"<!-- DEBUT " . $NomDeBoucle . " -->"
et
"<!-- FIN " . $NomDeBoucle . " -->"

avec des fonctions simple du genre strchr(), strpos() et ensuite, t'as plus qu'a découper en utilisant substr() (et peut etre aussi utiliser strlen() ).

Une fois que t'as découper la partie qui t'interresse, tu commence par l'effacer de ton code HTML en conservant la place ou elle est (pour insérer les autres morceaux).
Ensuite, en fonction du nombre de valeurs que t'as dans ta liste, tu appel N fois Modif_Texte et tu colle au bon endroit...

Bon après, tu peut éventuellement rajoutter d'autres petits trucs genre des conditions (afficher une partie uniquement si la personne est connectée ou pas) en utilisant les mêmes principes.

Et puis je te conseil aussi d'utiliser des listes du style :
array (
"Var1" => "Valeur1",
"Var2" => "Valeur2",
)

pour pouvoir insérer plusieurs variables en même temps (sinon tu va te faire chier dans les boucles et les conditions).

Voila, je peut pas t'aider plus que ca sauf a te refiler des codes que t'as déjà certainement vu...

Bonne chance a toi.

Titre: Re:Fonctionnement d'un moteur template
Posté par: confucius le le 15-05-2006 a 09:42:11

Yes merci, c'est déjà un début d'explication très interessant. Je vais travailler dans ce sens. J'aurais surement des questions plus précise que maintenant.

Merci de ton attention.

Matt


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.