voila, je suis en train de bosser sur un site et j'ai besoin de faire une gestion de modeles, c'est a dire proposer plusieurs mises en pages, avec des styles differents
pour ca, je voudrais faire des fichiers main.tpl du style
<html>
<head>
<title>(HEAD:NAME) : (HEAD:TITLE)</title>
(HEAD:TAGS)
</head>....................
et ensuite mon script recupere le style selectionne par le visiteur et modifie les (HEAD:xxx), (BODY:xxx) par le contenu a afficher
j'ai une fonction qui me genere tous les tableaux associatifs qui reprensent les blocs a remplacer : $HEAD, £BODY ...
j'ai donc par exemple :
$HEAD['NAME'], $HEAD['TITLE'], $HEAD['TAGS'] ......
il faudrai donc maintenant que je trouve une fonction qui me remplace les chaines (xxx:yyy) de main.tpl par l'element $xxx['yyy']
POINT IMPORTANT : la fonction ne doit pas appliquer ce remplacement a la chaine ajoutee
je m'explique : (je simplifie la notation)
supposons que main.tpl contienne (a)(b).
si je veux remplacer (a) par "nom" et (b) par "prenom", ca m'affichera "nomprenom" , ca c'est normal
maintenant si je remplace (a) par "(b) nom" on a 2 cas :
=> soit la chaine a remplacer est cherchee depuis le debut de la derniere chaine ajoutee : ca remplace deja (a) d'ou "(b) nom(b)", puis le 1er (b) d'ou "prenom nom(b)" puis le 2e (b) d'ou "prenom nomprenom" CA JE VEUX PAS !!!
=> soit la chaine a remplacer est cherchee a partir de la fin de la derniere chaine ajoutee : ca remplace deja (a) d'ou "(b) nom(b)" puis cherche depuis le premier caractere apres "nom" donc modifie le 2e (b) d'ou "(b) nomprenom" C'EST CA QUE JE VEUX !!!
En fait, j'utilise cette technique pour generer les differents blocs qui constitue la page affichee. Mon soucis c'est que mon site c'est une sorte de site commercial partage entre plusieurs commercants. chaque commercant gere ces produits et, par grande Malchance_avec_une_majuscule, si un commercant utilise dans un de ses textes, un de mes identifiants de mise en page, je ne veux pas qu'il soit traduit par la fonction en question. dans ce cas, le "faux" identifiant doit etre affiche tel quel.
j'esperes avoir ete clair :-)
pouvez vous m'aider ????
merci d'avance