J'ai donc travaillé sur le template intermédiaire, je comptais faire un premier stop sur mes modifications, pour déjà valider ce qui a été fait. J'ai fait des choix qui sont peut être discutables, voilà pourquoi je fais ce post (pour en discuter donc). Voilà donc où j'en suis :
. Le template intermédiaire vient s'insérer (dans la logique) entre le template catalogue et le template de liste de produits. Ce dernier permettait en fait de définir l'apparence des éléments d'une liste de produits mais on ne pouvait jouer sur l'apparence de la liste elle même, la notion sur laquelle j'ai travaillé remédie à cela.
. Au niveau therminologie, je trouve que le terme productList utilisé pour le template produit n'est pas adéquate je parlerais donc plutot de productListItem alors que pour la nouvelle notion je parlerais là de productList.
. Au niveau paramétrage je n'ai strictement rien modifié, on paramètre toujours un template produit et un seul. Par contre les fichiers template (htm) existants ne jouent plus le même rôle. Ainsi ProductList.htm ne contient plus le template permettant de paramétrer l'apparence des produits dans la liste mais plutôt l'apparence de la liste elle-même, pour paramétrer l'apparence des produits on a un template "ProductListItem.htm". Cela vaut pour tout les templates, pour avoir une liste de produits on a donc DEUX template : <NomDuTemplate>.htm et <NomDuTemplate>Item.htm. Le premier pour l'apparence de la liste, le second pour l'apparence des éléments la composant.
. Pour le template de la liste on a les TOKEN suivant :
- LISTTITLE : titre de la liste de produits
- PAGENAV : navigation sur les pages de la liste
- PAGEINFO : page courante sur le nombre total de page
- PRODUCTS : liste des produits
. Pour le template des éléments de la liste, les TOKEN sont toujours les mêmes.
J'ai donc préféré ne pas ajouté de paramétrage supplémentaire et partir du principe qu'un template de liste de produits est constitué de deux fichiers, cela choque-t-il quelqu'un ?
Pour l'existant ça veut dire quoi ? J'avoue que c'est là qu'était mon principal problème dans tous les cas y'avait des impacts à l'intégration d'une telle notion. Ici quels sont-ils ? Si l'administrateur du site n'a pas changé les templates définis par défaut alors il n'y aura pas d'impact, car les fichiers templates vont être mis à jour correctement avec la nouvelle version. Par contre s'il a créer ses propres templates, il devra renommer ceux-ci. Par exemple, si j'ai un template MonTemplate.htm, je devrait le renommer en MonTemplateItem.htm et créer un template MonTemplate.htm qui sera un copier coller de ceux livrés (ProductList.htm par exemple). Là ça peu en facher certains, mais comment faire autrement ?
Au niveau du code, voici un apperçu des éléments modifiés :
. ProductList.ascx, modifications importantes le code "doublons" avec ProductDetail.ascx a été supprimé pour utilisé directement ProductDetail.ascx, intégration des nouveaux TOKEN. Ce usercontrol ne génère plus les éléments de la liste mais uniquement la liste elle-même. Les éléments de la liste sont créés par le usercontrol ProductDetail.ascx
. ProductDetail.ascx, deux nouvelles propriétés pour pouvoir l'utiliser directement par ProductList.ascx, InList (indiquant que le usercontrol se trouve dans une liste, on a donc des hyperlink de créés sur les titres alors qu'auparanvant nous ne les avions pas, on cache aussi les reviews lorsque l'on se trouve dans une liste...), Template (permettant de définir le template a utiliser).
. les différents templates ont été renommés en <NomTemplate>Item.htm, et de nouveaux template ont été créés pour avoir le niveau intermédiaire et avoir la même apparence que ce que l'on avait auparavant sans template intermédiaire.
Il n'y a pas d'autres fichiers impactés.
Voilà un premier jet, j'attends vos remarques.