Je conçois actuellement un site Internet distillant une information pratique et donc dont les visiteurs viendront potentiellement souvent via leur mobile/PDA.
Afin de favoriser la navigation pour l’un et pour l’autre j’aimerais avoir deux affichage différents.
Mon site est à peu près conçu selon le modèle MVC : j’ai des fichiers PHP Contrôleurs (contenant uniquement de la logique métier, des accès aux objets, les algorithmes, etc.) et des fichiers PHP Vues (contenant majoritairement de l’HTML et des echo PHP).
Parallèlement à cela, mon site utilise des
CSS.
Plusieurs méthodes :
Deux jeu de fichiers Vues (une pour les visites depuis PC classiques et une, plus légère, pour les mobiles/PDA)
Dans chaque fichier Vue où il doit y avoir une différence entre les deux support : on mets utilise des structures if/else
Deux fichiers CSS différents (facile, mais limité parce qu’on ne peut pas gérer finement les éléments qu’on veut ou pas)
via css tu peux pas mal limiter les éléments affichés non ? media="" gère les pda ? suffit de coller des hidden partout où tu veux pas afficher.
Néanmoins c’est pas forcément al bonne méthode, car je suppose que tu veux probablement avoir une version mode “lofi” avec moins de graphismes et plus rapide à télécharger… du coup deux jeux de fichiers à faire ? ou, si tu fais des templates, deux types de templates avec tes pages qui détectent quel template utiliser pour parser un page ?
Oui, le CSS peut indiquer de ne pas afficher certains éléments mais ils sont quand même téléchargés par le client :-/
J’en suis donc à deux jeux de fichier d’affichage ou un seul mais où chaque fichier détecte ce vers quoi il va être envoyé (PC ou mobile léger) et choisit adéquatement.
oui le css c’est pas la bonne méthode, mais t’utilises pas un système de templates ? Ca te fait qu’un fichier de traitement php et si il détecte un type de navigateur particulier il renvoit les données formatée via le template qui va bien.
Startide > Si par système de templates tu parles d’un truc où le code HTML est entrecoupé de plusieurs affichages de variables (généralement des string) générées/calculées auparavant dans un fichier PHP “de traitement” : Oui (et mes fichiers “template” sont des Vues)
Je vais pas mal galérer avec deux jeux je pense…
Tu dis que c’est plus rapide parce que … ? Il n’y aurait qu’un seul if/else à faire (au choix du jeu de fichiers Vue) et pas plusieurs (un voire plus) dans chaque fichier Vue ?
Je dirais que ça sera plus rapide que des if/else car tu auras plein d’exceptions à gérer, etc. En gros, ton serveur va être un chouia plus long, c’est tout.
Pour moi, tu ne t’adresses pas à la même audience. Donc c’est censé de séparer les deux. Et si ça semble fastidieux d’avoir deux types de fichiers, je pense pas que ce soit une si grosse contrainte - sachant que tu peux toujours factoriser le code.
Ceci étant, faut voir les différences entre le mode normal et le mode mobile surtout. Car bon si c’est du genre wap/html, là y a clairement pas photo
Edité le 09/02/2008 à 03:22
perso j’opterais pour deux sites totalement différents en déterminant ce qui est un mobile et ce qui ne l’est pas dès le départ avec un RewriteCond %{HTTP_USER_AGENT} histoire que ce soit apache qui gère l’aiguillage