Comment auriez vous fait pour site mobile ?

Par sylvain, il y a 11 ans


Bonjour,
Je voulais savoir comment vous auriez traité ce point ?

J'ai un site et la version PC et smartphone est tres differente.
Sur la version smartphone, je veux carrement et pratiquement tout retirer pour ne garder que l'essentiel.
Je sais que boostrap permet par certains style de s'adapter vite fait. mais c'est de la performance gaché de mon point de vue, a telecharger des images pas bien dimenssionné et pire ca complexifie le code.

Aussi j'ai imaginé la possibilté dans le controller de detecter si c'est un smartphone charger le template optimisé pour mobile.
Ou dois je le prevoir plutot dans les vues .ctp ?

Merci

6 réponses

kozzy34, il y a 11 ans

Bonjour,

Tu peux effivement créer un thème pour les mobiles puis détecter automatiquement quand il doit être utilisé :

Tu auras besoin du composant RequestHandler dans ton app_Controller.php

var $components = array('RequestHandler');

Tu peux ensuite utiliser la fonction isMobile() du composant RequestHandler

function beforeRender() { if ($this->RequestHandler->isMobile()) { $this->view = "Theme"; $this->theme = "mobile"; } }
sylvain, il y a 11 ans

Merci @kozzy pour cette réponse. mais j'ai besoin d 'un peu de details. Dois je mettre dans mon repertoire les deux vues ?
par exemple dans /Pages/edit.ctp et edit_mobile.ctp ?
Globalement comment organiser mes repertoires ? est ce que c'est comme si j'utilisais un theme ?

kozzy34, il y a 11 ans

Je ne me suis pas penché sur l'arborescence des dossiers du thème mais je pense qu'il doit falloir faire un dossier pour ton thème et venir y placer les vues spécifique à celui ci, tu trouveras des explications ici : http://book.cakephp.org/2.0/fr/views/themes.html

sylvain, il y a 11 ans

j'aurais prefere avoir toute les vues dans un seul repertoire

Lartak, il y a 11 ans

Pour les themes, il faut que les vues et éléments se trouvent dans le dossier Themed situé dans le dossier View.
De cette manière, ça donnerait ceci :

  • View
    • Elements
    • Helper
    • etc ...
    • Pages
    • Posts
    • Themed
      • Mobile
        • Elements
        • Pages
        • Posts
        • etc ...

À savoir que si CakePHP ne trouve pas un fichier ou un élément dans le dossier du thème, il utilisera le fichier en dehors du dossier Themed.
Donc, pour les pages ou éléments ne nécessitants pas d'affichage particulier pour les mobiles, il n'est pas nécessaire de les refaire dans le dossier du thème.
Ensuite, pour définir un thème, il suffit par exemple de mettre :

$this->theme = 'Mobile';
sylvain, il y a 11 ans

Merci à vous deux