Ich beginne gerade mit einem responsiven Thema, das auf Omega basiert, und konzentriere mich zunächst auf das mobile Layout.
Es gibt bestimmte Blöcke, die wahrscheinlich zu umfangreich sind, um sie in das mobile Layout aufzunehmen, und andere Blöcke, die speziell für dieses Layout eingeführt werden müssen (verwässerte Menüs, reduzierte Benutzerleiste usw.).
Ich könnte die unerwünschten Blöcke im mobilen Layout mit CSS leicht ausblenden und die mobilspezifischen Blöcke in das Standardlayout einbeziehen und diese ausblenden (so dass sie nur für Mobilgeräte angezeigt werden), aber das scheint eine ziemlich rückständige Denkweise zu sein es. Wenn die Blöcke nicht angezeigt werden, ist der zusätzliche Aufwand für sie inakzeptabel (insbesondere angesichts der Anzahl zusätzlicher Datenbankabfragen, die der Inhalt in ausgeblendeten Blöcken hinzufügen würde).
Ich denke, es muss eine saubere Möglichkeit geben, den Blockentscheidungsprozess zu Beginn des Seitenaufbaus abzufangen und Blöcke, die auf einer Betriebssystemerkennung basieren, auszuschließen / einzuschließen möglich.
Ich werde auch die Tatsache einwerfen, dass Varnish vor dieser Seite läuft, was die Dinge unterhaltsamer machen sollte :)
Gibt es Module / bekannte Strategien, die dabei helfen können?
Ich sollte hinzufügen, dass die Verwendung des Context-Moduls keine Option ist, da die Site bereits voll funktionsfähig ist und das Verschieben in den Context zu diesem Zeitpunkt ein gewaltiges Unterfangen wäre.
Antworten:
Wie bereits in den Kommentaren erwähnt, müssen Sie den Lack so konfigurieren, dass er nicht nur auf der Anforderungs-URL zwischengespeichert wird, sondern auch auf dem Benutzeragenten variiert. Es gibt ein relevantes Beispiel im Lack-Wiki, VCLExampleNormalizeUserAgent .
Sobald die Anfrage tatsächlich auf die Site gelangt ist , müssen Sie festlegen, welche Blöcke angezeigt und welche nicht. Ich würde es nicht weniger als eine Katastrophe betrachten, dies mit eval zu tun , daher bleiben als häufigste Optionen dann Context und Panels .
Mit der Website bereits gebaut. Das Wiederherstellen aller Seiten / Blockplatzierungen mit beiden Modulen ist wahrscheinlich keine Option, aber mit einem Profiler und der Verwendung von 80-20 ist es möglich, signifikante Leistungssteigerungen zu erzielen, indem nur bestimmte Seiten wiederholt werden.
quelle
Ich kann nicht auf viele Details eingehen, da ich beide Module seit Ewigkeiten nicht mehr verwendet habe Ich hatte dieses Problem zwar noch nicht, aber ich denke, Sie sollten in der Lage sein, mit Mobile Tools and Spaces etwas zusammenzustellen.
Räume
Mobile Tools
Auf der Projektseite für MT heißt es jedoch, dass es nicht für die Produktion bereit ist, was möglicherweise ein Problem darstellt. Dies hängt davon ab, wann es zuletzt aktualisiert wurde, da das letzte Commit in diesem Monat erfolgte.
*BEARBEITEN
ICH VERGESSE VOLLSTÄNDIG DIESES!
Browscap
Browscap-Block
Browscap hängt von Ihrer Serverkonfiguration ab. Wenn Sie es jedoch verwenden können, erhalten Sie im zweiten Modul zusätzliche Sichtbarkeitseinstellungen für jeden Block auf der Blockbearbeitungsseite.
quelle
Sie können eine Browser-übergreifende jQuery-Unterstützung verwenden, um die Bildschirmauflösung zu erhalten:
Fügen Sie ein einfaches PHP-Skript hinzu, um die Einstellung des zugehörigen Blocks anzuzeigen.
quelle
Sie könnten Mobile Detect Block verwenden, aber ich bin derzeit auf der Suche nach einer Lösung, die mit Fensterbreite und
AdaptiveTheme
Medienabfragen des Breakpoints-Moduls zusammenarbeitet, um diesen Code nicht zu duplizieren und den Endbenutzer-Download nicht mehr zu belasten, als er ist. Ich hatte auch gemischte Ergebnisse mit Mobile Detect, das auf einem Gerät, mit dem ich es getestet habe, nicht erkannt wurde, was es wie Browscap ziemlich nutzlos macht, wenn es keine zuverlässigen Ergebnisse liefern kann.In einigen Diskussionen möchten sich einige Leute aus dem einen oder anderen Grund von Browscap entfernen, weshalb sie auf Mobile Detect umsteigen .
quelle