le-goret Posté 22 Novembre 2006 Posté 22 Novembre 2006 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
genmin Posté 23 Novembre 2006 Posté 23 Novembre 2006 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 ?
xpatval Posté 23 Novembre 2006 Posté 23 Novembre 2006 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
genmin Posté 23 Novembre 2006 Posté 23 Novembre 2006 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 ?
le-goret Posté 24 Novembre 2006 Auteur Posté 24 Novembre 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant