2

Ok, donc j'ai ma commande en ligne, c'est un module que j'ai appelé 'olo'. Ce dont j'ai besoin maintenant, c'est de construire une version mobile de notre site Web, une mise en page et un design totalement différents.Zend Framework: Comment utiliser MVC pour notre site Web mobile

Maintenant, comment puis-je utiliser la puissance de MVC, qui m'a vendu une fois que j'ai commencé?

Je souhaite utiliser toutes les différentes classes de contrôleurs que j'ai déjà créées dans le module OLO.

En ce moment j'ai commencé le développement de notre site Web mobile, il est placé comme un autre module appelé «mobile». C'est construit avec jQuery Mobile, et j'ai déjà fait pas mal de choses; info-pages, formulaire de contact, etc.

Tous les appareils mobiles sont actuellement redirigés vers domain.tld/m avec .htacces mobile dectection. Ceci est fait pour soutenir la vue complète du site Web si elle est liée à partir de la version mobile.

Répondre

4

Avec Zend Framework 1.11 zend a introduit le wurfl adapter qui est basé sur Zend_Http_UserAgent.

Il vous permet de détecter les périphériques mobiles et d'amorcer différentes dispositions. Il ya un HOW TO sur youtube qui est venu avec la newsletter de zend décembre 2010: http://www.youtube.com/watch?v=_A8yg73tqOY

Vous n'avez pas besoin d'utiliser des modules différents! Juste des fichiers de mise en page différents!

+0

De ce que je peux comprendre votre chemin est celui d'aller. Si je voudrais donner aux utilisateurs mobiles un lien vers notre site Web non mobile, cela pourrait-il être fait avec la configuration wurfl? – Phliplip

+0

Oui, vous pouvez fournir un lien simple quelque part dans le pied de page peut-être qui définit un drapeau en utilisant le registre zend et vérifiez ce drapeau où vous vérifiez les appareils mobiles, http://www.dotkernel.com/dotkernel/disable-automatic-wurfl- redirect/ –

+0

Nice, c'est très intéressant. Je ne suis pas sûr si je vais l'utiliser en ce moment, je pense qu'il faudra un peu de réécrire beaucoup de code existant. – Phliplip

3

Personnellement, j'utiliserais le plugin du contrôleur frontal. Faire cela à l'intérieur du bootstrap est un pas trop tôt dans un processus qui m'inquiète.

Ecrivez un plugin qui connecte preDispatch() et utilise Zend_Http_UserAgent pour trouver si l'application est accessible via un périphérique mobile. Ensuite, vous pouvez set view script path dans un autre répertoire. Par exemple, disons par défaut est votre répertoire de vue en cours, mobile est votre nouveau répertoire de vue. Vous Clonage juste la structure et de modifier des fichiers et il devrait faire l'affaire :)

application/ 
    modules/ 
    olo/ 
     controllers/ 
     modules/ 
     views/ 
     scripts/ 
      default/ 
      mobile/ 
+0

Ok, je devrais peut-être mentionné cela, mais j'ai un [.htaccess détection mobile] (http://detectmobilebrowser.com/) qui redirige tous les appareils mobiles à 'domain.tld/m' et un routes.ini- fichier qui gère/m et tous les sous-chemins. Mais votre commentaire sur les différents répertoires dans le répertoire des scripts est probablement utile. – Phliplip

+0

Vous pouvez également correspondre à celle en utilisant un routeur (ne pas rappeler quelle méthode exacte, mettra à jour la réponse demain). De cette façon, tous vos contrôleurs et modèles restent les mêmes, et comme ArtWorkAD l'a déclaré, seules les mises en page sont modifiées. Jetez également un coup d'oeil à ses conseils, en utilisant wurfl ne serait pas mauvais non plus. Vous aurez moins de problèmes à l'avenir, puisque vous n'aurez pas besoin d'écrire deux fois pour les versions normale et mobile, parce que la logique reste la même :) – usoban

+0

J'ai accepté la réponse de @ArtWorkAD, mais vous avez également été très utile - Avez-rep som :) – Phliplip

3

Comme ArtWorkAD, vous pouvez utiliser dans Zend Framework 1.11 l'adaptateur wurfl qui vous permet de détecter l'agent utilisateur et de changer de disposition, mais cela signifie que chacun de vous doit être "universel". Je n'ai jamais été aussi "universel".

Ce que vous pouvez utiliser est le ContextSwitch de la vue http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch

Il vous permet de créer le contexte différent, il est l'habitude d'utiliser pour créer un fichier csv/xml. Disons que vous avez un contrôleur appelé Index avec une action appelée FooAction(), je suppose que vous avez déjà une vue scripts/index/foo.phtml

Vous pouvez créer un contexte appelé "mobile", ce qui vous permettra de créer une vue pour ce contexte comme celle scripts/index/foo.mobile.phtml. C'est comme changer la disposition mais pour une vue et avec l'adaptateur wurfl précédent, vous pouvez changer la disposition et changer automatiquement le contexte.

+0

J'ai accepté la réponse de @ArtWorkAD, mais vous m'avez aussi beaucoup aidé. – Phliplip

Questions connexes