Aller au contenu

De la génération de code html par php


le-goret

Sujets conseillés

Salut

Depuis quelques temps je m'interroge en terme de design de site web et notamment sur la génération du code html produisant la page finalement vue par l'internaute.

Jusqu'a présent j'utilisais des apis de récupération des infos (function get_students_list (&$params) {/*requete sql, connection, recuperation de la liste dans un tableau*/} )

ensuite j'utilisais un include _TPL_PATH.'/students_list.tpl.php' comprenant une boucle sur mon tableau $students_ary

du genre

<<<<<<<<<< students_list.tpl.php

...<select name="student_list"><?php$idstudent_selected = isset($_REQUEST['idstudent']) && isnumeric($_REQUEST['idstudent']) && $_REQUEST['idstudent']>0 ? $_REQUEST['idstudent']:0;foreach ($student_ary as $idstudent => $studentname){  $selected_str='';  if ($idstudent == $idstudent_selected){	$selected_str='selected="selected"';  }  echo '<option value="'.$idstudent.'">'.$studentname.'</option>'}?></select>

>>>>>>>>>>>>

donc si je récapitule un fichier php qui utilise des libs et inclut un tpl utilisant le résultat de ces libs.

comme je trouve que cette approche n'est pas très "propre" j'aurai voulu avoir votre opinion.

Je pensais utiliser un principe du genre fichier php qui utilise des lib d'obtention de résultats suivi de lutilisation d'un lib d'affichage de résultats ...

et vous quelle approche avez vous ?

PS j'ai tapé lé code tel quel alors il y aura surement du parse error :)

Lien vers le commentaire
Partager sur d’autres sites

salut, en quoi tu trouve que ce n'est pas très propre comme code ?

ton problème c'est sur l'optimisation de ton code ou sur la 'propreté' du code html qu'il en résult ?

Lien vers le commentaire
Partager sur d’autres sites

Pour ma part, d'une manière générale, l'approche est simple: s'il y a génération du code html par php, il faut que la méthode reste compréhensible le plus rapidement possible, je m'explique: si j'utilise ce genre de "codage" afin de créer une page, lorsque je dois m'y replonger quelques temps (mois, année..) plus tard, à des fins de modifications voulues par le client, je ne dois pas perdre trop de temps à comprendre ce que j'ai pu faire à la créaton première. Donc, la simplicité avant tout...

xpatval

Lien vers le commentaire
Partager sur d’autres sites

je suis entièrement d'accord avec toi xpatval, mais tout ca n'est qu'une question d'habitude. si tu as tel ou tel habitude de travailler et que celle-ci ne change pas biensur, tu t'y retrouvera toujours non ?

Lien vers le commentaire
Partager sur d’autres sites

Effectivement le mieux est de conserver ses habitudes .... si elles sont bonnes... je m'explique.

On a un template générique qui affiche un tableau de 3 lignes et 3 colonnes.

On initialise donc un jeu de variable nécessaire a l affichage du tableau.

ensuite

include _TPL.'montableau.tpl.php'

Maintenant si on veut rajouter le meme tableau jute en dessous.

On doit ré initialiser le jeu de variables précédents et re inclure

include _TPL.'montableau.tpl.php'

Le fait est que sur des include successifs, il faut bien renseigner tout le jeu de variables précédemment utilisé voire mettre quelques variables a "" ou vide.

Bref .... sur un script php on aura

<?php

$var1=1;

$var2=2;

$var3=6;

include _TPL.'montableau.tpl';

$var1=12;

$var2=24;

$var3=68;

include _TPL.'montableau.tpl';

?>

et ca je trouve cela pas terrible.

L'idée que j'avais était plus une fonction

function  display_montableau(& $params){ if(isset($params['debug']) && $params['debug'] == 1) {echo '<!-- debut fonction '.__FUNCTION__.'-->';} echo '<table><tr><td>'.$params['var1'].'</td> <td>'.$params['var2'].'</td> <td>'.$params['var3'].'</td> </tr></table>'; if(isset($params['debug']) && $params['debug'] == 1) {echo '<!-- fin fonction '.__FUNCTION__.'-->';}}

a cette fonction on peut rajouter un test pour afficher si oui ou non toutes les variables sont initialisées et correctes ...

l'inconvénient majeur est que l on ne peut donner un template a un simple webmaster ou graphiste afin que lui modifie les templates...

par contre on peut réutiliser plus facilement la fonction...

la modification n'est pas majeure mais plutot significative ... enfin en toute honneteté je suis preneur de toute solution ... justement j'en recherche une meilleure que celle utilisée :blush:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...