huggy a écrit :
"Perso je prefere utiliser soit des "themes" soit des "templates" pour mes pages"
>>> peux tu expliquer cette methode stp ?
|
Les templates sont des fichiers textes ou tu rentre par exemple ta mise en page. L'avantage des template c'est que tu peux definir des "variables" a l'interieur que tu pourras remplacer par la suite via php.
En gros c'est comme quand tu prevois ta mise en page. Du genre tu dessine 2 colonnes et tu dis que celle de gauche va contenir le menu et celle de droite va contenir la partie principale du site.
Dans une template tu va simplement ecrire la mise en page, mais au lieu d'ecrire tout de suite le menu ou les donnees, tu y ecris une variable.
Dans ton code php tu va charger la template, remplacer les variables a l'interieur de celle-ci et enfin renvoyer le resultat au browser.
L'enorme avantage c'est que le code html est separe du code php. Si apres tu veux modifier ta mise en page, tu ne modifie que la template, pas besoin de toucher au code php.
Personellement le systeme de templates que je recommande (meme pour les debutants) est TemplatePower http://templatepower.codocad.com/. Il a l'avantage d'etre assez facile d'access et assez rapide. Bien entendu il a moins de features qu'un Smarty, mais la plupart du temps TemplatePower suffit largement pour les utilisations de la pluspart des gens.
Les themes quand à eux sont deja un systeme plus avance. En gros c'est un (ou plusieurs) fichier(s) php qui vont definir la facon dont tu affiche le code html dont tu as besoin.
Les themes et les templates peuvent tres bien s'integrer l'une l'autre sans probleme.
Prenons un exemple.
J'ai un theme qui se nomme "Noel". Ce theme est represente par un repertoire qui porte comme nom "noel", dans ce repertoire il y a un fichier php "theme.php" qui defini plusieurs proprietes du themes (nom. date, autheur, etc...) ainsi que des fonctions specifiques au theme. Il y a ensuite un repertoire "templates" ainsi qu'un repertoire "images".
Donc on pourrait imaginer quelque chose comme ca :
Citation :
themes\noel
themes\noel\theme.php
themes\noel\theme.css
themes\noel\templates\
themes\noel\templates\index.tpl
themes\noel\templates\gallerie.tpl
themes\noel\images\
themes\noel\images\sapin.png
theems\noel\images\papanoel.png
|
Voila un exemple d'un theme "Noel" pour un site.
Dans le repertoire noel on trouve donc tout ce qui est en relation avec ce dernier.
Dans theme.php on trouve des fonctions specifiques. Par exemple imaginons que le site soit un site qui publie des nouvelles. On pourrait imaginer que chaque nouvelle est "encadree". Dans ce cas lorsqu'on veut afficher les news on pourrait avoir un code du genre :
Code :
- // On inclu les fichier necessaires
- require_once('config.php');
- require_once('mainfile.php');
- require_once("themes\$actualtheme\theme.php" );
- // On initialise le theme
- initTheme();
- // On recupere les news
- // ... $news est un tableau avec les news a afficher
- foreach ( $news as $val) {
- theme_afficheNews($val);
- }
- //On dit au theme que l'on a fini
- endTheme();
|
Bon je suis passe rapidement sur quelques details, mais ce qu'il faut retenir c'est qu'avec les themes et les templates on arrive a se separer totalement du code html dans le code php.
Par exemple moi dans mes themes j'ai une fonction "makeLink". Cette fonction prends plusieurs parametres et me ressorts un lien html (donc un <a href=....). J'aurais pu a chaque fois faire un bete echo. Mais grace a cette fonction je fais des verifications sur les composants du lien, il s'ensuit que tous mes liens sont des liens valides xhtml 1.1. Alors que si j'avais a chaque fois fait un echo, si j'avais cree un lien non valide j'aurais du le rechercher dans tout le code.
Voila, j'espere que je ne t'ai pas embrouilles avec mes explications tordues. Enfin pour les debutants je conseille de commencer par les templates. Cela vous permetera deja de faire beacoup de choses. Apres une fois que vous maitrisez mieux le php vous pourrez vous attaquer a la conception de votre systeme de themes (exercice assze fun je trouve )