|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : septembre 2008 Messages : 97 ![]() |
Bonjour,
J'ai développé un site web avec symfony et je dois a présent rajouter une interface spécifique pour l'ipad. J'aimerais donc rajouter une vue pour chaque action qui serait utilisée selon le client détecté. Pour l'instant, je vois 3 solutions: -créer de nouveau modules spécifiques iPad, ce qui implique une duplication du code des actions. -enregistrer le type de client à la connexion sur le site et pour chaque action rediriger selon cette variable vers la vue qui va bien. Je ne pense pas que ca soit très propre car il faudrait rajouter des if un peu partout et expliciter chaque renvoie de vues dans les actions. -enregistrer le type de client à la connexion sur le site et dans chaque vue tester cette variable et afficher soit le code "normal" soit le code pour ipad. Ce qui implique que le code des vues pour iPad soit dans les mêmes fichiers que les vues "normales" et de plus je vais devoir inclure mes Javascript et CSS directement dans le code de la et ne pas pouvoir utiliser les fichiers view.yml. Voila je pense qu'il doit y avoir une meilleur façon de faire avec symfony mais je n'ai rien trouver actuellement. Le mieux, je pense, serait de pouvoir créer les mêmes vues que celle existante avec un préfixe iPad et que le helper pour afficher la vue de l'action de symfony s'occupe automatiquement d'utiliser la bonne en fonction d'une variable de session. Qu'en pensez-vous?
__________________
Il y a 10 sortes de gens dans le monde: ceux qui comprennent le binaire et les autres. |
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je ne sais pas ce que l'iPad nécessite comme format pour son affichage.
Maintenant, tu peux spécifier une css particulière pour l'utilisation sur un mobile (en général). Ceci pourrait permetre de déjà bien attendrir ton problème. Si non, il faut savoir que les vues dans symfony ne portent pas le bon nom On trouve en général successIndex.php, en fait le nom devrait être successIndex.html.php mais comme html est le paramètre par défaut et que c'est presque le seul à être utilisé, on peut l'omettre et on en oublie qu'il existe. Tu peux donc avoir, pour une même action plusieurs template suivant le protocol que tu veux utiliser. Ce système pourrait être détourné pour ton ipad avec deux templates successIndex.html.php pour tous et successIndex.ipad.php pour ton ipad. Tu as tout un chapitre dans jobeet qui en parle.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : septembre 2008 Messages : 97 ![]() |
J'ai utilisé le tutoriel jobeet pour chaque site que j'ai fait en symfony (3), mais je n'ai rien vue qui m'aiderait a ce sujet. Je vais y retourner et le relire merci de ta réponse.
Par contre comment ferais tu pour choisir quel template afficher entre ton indexSuccess.html.php et indexSuccess.iPad.php ? Faire plusieurs templates avec des noms différents n'est pas un souci, mais j'aimerais automatiser l'utilisation de tel ou tel template selon une variable ou autre qui m'éviterait de devoir a chaque affichage faire un test pour spécifier le template à utiliser.
__________________
Il y a 10 sortes de gens dans le monde: ceux qui comprennent le binaire et les autres. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Utiliser les media queries me semble être la solution la plus adaptée à ce que tu souhaite faire.
Tu n'a rien à changer coté symphony , juste modifier ton css pour qu'il s'adapte au support visé. CA à l'avantage d'être utilisable sur les navigateur le suppportant sans pour autant impacter les autres plus anciens |
|
00
|
|
|
#5 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Regarde dans le jours 15 du tutorial jobeet.
@grunk C'est ma première solution. Mais uniquement si tu peux utiliser le même DOM entre les deux affichage, ce qui n'est pas toujours possible si les contraintes techniques sont trop fort. En fait, il peut même être utile, pour certains modules très spécialisés, d'avoir deux modules différents.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : septembre 2008 Messages : 97 ![]() |
Merci de vos réponses
Je pense finalement dissocier complètement le site pour iPad du site normal en créant de nouveaux modules. En effet, vu les spécificités il s'avère que les actions peuvent différés et ne me ramèneront peut être pas toutes les mêmes données a afficher étant donné la différence de taille d'écran et de fonctionnalités. Je vais tenter de descendre la code commun au niveau du modèle pour éviter la redondance.
__________________
Il y a 10 sortes de gens dans le monde: ceux qui comprennent le binaire et les autres. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com