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
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";
}
}
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 :
À 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';
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 ?
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