Je commence juste un thème réactif basé sur Omega, en me concentrant sur la mise en page mobile au début.
Il y a certains blocs qui seront probablement jugés trop `` lourds '' pour être inclus dans la disposition mobile, et d'autres blocs devront être introduits spécifiquement pour cette disposition (menus édulcorés, barre utilisateur atténuée, etc.).
Je pourrais facilement masquer les blocs indésirables sur la mise en page mobile avec CSS, et inclure les blocs spécifiques aux mobiles sur la mise en page par défaut et masquer ceux-ci (ils ne sont donc affichés que pour les mobiles), mais cela semble être une façon de penser à l'envers il. Si les blocs ne sont pas affichés, la surcharge supplémentaire qu'ils encourent serait vraiment inacceptable (surtout compte tenu du nombre de requêtes de base de données supplémentaires que le contenu des blocs masqués ajouterait).
Je pense qu'il doit y avoir un bon moyen propre d'intercepter le processus de prise de décision de bloc au début de la création de la page, et d'exclure / inclure des blocs basés sur une certaine détection d'OS, mais je dessine un blanc sur la façon dont cela pourrait être possible.
Je vais aussi ajouter le fait que Varnish tourne devant ce site, ce qui devrait rendre les choses plus amusantes :)
Existe-t-il des modules / stratégies connues qui peuvent vous aider?
Je dois ajouter que l'utilisation du module Context n'est pas une option car le site est déjà à part entière, et le déplacer dans Context serait une entreprise énorme à ce stade.
Réponses:
Comme indiqué dans les commentaires déjà, cela vous oblige à configurer le vernis pour ne pas mettre en cache uniquement sur l'URL de la demande, mais aussi varier sur l'agent utilisateur. Il existe un exemple pertinent dans le wiki de vernis, VCLExampleNormalizeUserAgent .
Une fois que la demande fait n'atteint le site, vous devez déterminer quels blocs pour montrer et ne pas montrer. Je ne considérerais pas moins comme un désastre de le faire avec eval , donc les options les plus courantes qui restent alors sont le contexte et les panneaux .
Avec le site déjà construit. refaire toutes les pages / placement de bloc avec l'un ou l'autre module n'est probablement pas une option, mais avec un profileur, et en appliquant 80-20 , il pourrait être possible de réaliser des gains de performances significatifs en refaisant des pages spécifiques uniquement.
la source
Je ne peux pas entrer dans beaucoup de détails, car je n'ai utilisé aucun des modules depuis des lustres (je crée tous mes sites avec Context dès le départ et je n'ai pas pris en compte quelque chose que je n'ai pas construit pour un alors, je n'ai pas eu ce problème auparavant), mais je pense que vous devriez être capable de mettre quelque chose ensemble avec Mobile Tools and Spaces.
Les espaces
Outils mobiles
La page du projet pour MT indique cependant qu'il n'est pas prêt pour la production, ce qui pourrait être un problème - cela dépend de la dernière mise à jour, car le dernier commit était ce mois-ci.
*ÉDITER
J'AI OUBLIÉ COMPLÈTEMENT CELLES-CI!
Browscap
Bloc Browscap
Browscap dépend de la configuration de votre serveur, mais si vous pouvez l'utiliser, le deuxième module vous donne des paramètres de visibilité supplémentaires pour chaque bloc sur la page d'édition de bloc.
la source
vous pouvez utiliser un support de navigateur croisé jQuery pour obtenir la résolution d'écran:
Ajoutez un script PHP simple pour afficher les paramètres du bloc associé.
la source
Vous pouvez utiliser Mobile Detect Block, mais je suis actuellement à la recherche d'une solution qui fonctionne avec la largeur de la fenêtre et
AdaptiveTheme
les requêtes média du module Breakpoints afin de ne pas dupliquer ce code et alourdir le téléchargement de l'utilisateur final plus qu'il ne l'est. J'ai également eu des résultats mitigés avec Mobile Detect ne détectant pas sur un appareil avec lequel je l'ai testé, ce qui le rend plutôt inutile comme Browscap s'il ne peut pas fournir des résultats fiables.Certaines discussions ont amené certaines personnes à vouloir s'éloigner de Browscap pour une raison ou une autre, d'où le passage à Mobile Detect .
la source