Was ist der Unterschied zwischen Rules, Context und Trigger
am 23.08.2014 - 18:17 Uhr in
Hallo zusammen,
zur Zeit versuche ich gerade mit Display Suite warm zu werden, da ich meine Website gerne in Richtung responsive bringen möchte (siehe hier: https://swsblog.stanford.edu/blog/why-not-panels, aber mit dem Zen Theme und nicht mit dem Open Framework).
Hier wird im Zusammenhang mit Display Suite immer wieder auf das Context-Modul verwiesen. Bisher habe ich nur Rules in Verbindung mit Conditional Rules für die "Website-Logik" im Einsatz. Ich finde das Rules, Context und Trigger sich sehr ähnlich sind.
Jetzt stecke ich gerade etwas in einer "Sinnkrise" und vielleicht habt ihr mir eine Antwort ;-)
Was ist der Unterschied zwischen Rules, Context und Trigger?
In welchem Anwendungsfall setzt ihr Rules, Context und Trigger einzeln oder kombiniert ein und warum?
Danke schon mal für eure Antworten.
- Anmelden oder Registrieren um Kommentare zu schreiben
Das Context Modul kannst du
am 23.08.2014 - 22:47 Uhr
Das Context Modul kannst du dir in etwa wie das Blockmodul vorstellen aber mit sehr viel mehr Möglichkeiten.
Man kann einzelne oder mehrere Blöcke/Regionen zur gleichen Zeit etc. ein-und abschalten.
Wenn man Rules benutzt, braucht man das Trigger Module. Rules ist wie Action/Trigger mit mehr Möglichkeiten.
Trigger kannst du also von deiner Liste streichen. Rules ist da um Aktionen auszulösen wenn bestimmte Dinge passieren.
zB eine Warenkorbberechnung oder schicke E-Mail wenn User das und das macht. Führe Berechnung durch etc-
Alle die Module werden für responsive Design nicht benötigt.
Mit Display Suite liegst du schon richtig wenn du komplexe Layouts erstellen/willst. Für ganz simple Inhalte braucht man aber auch das nicht.
Ich würde an deiner Stelle noch das Field Group Module installieren. Mit Display Suite + Field Group kann man schon viel machen.
Ich selber kombinere oft Display Suite, Field Group und Context.
WEBTRANSFORMER
Goekmen schrieb Das Context
am 24.08.2014 - 11:24 Uhr
Das Context Modul kannst du dir in etwa wie das Blockmodul vorstellen aber mit sehr viel mehr Möglichkeiten.
Man kann einzelne oder mehrere Blöcke/Regionen zur gleichen Zeit etc. ein-und abschalten.
Werden die Blocks dann trotzdem noch gerendert, wenn sie ausgeschaltet sind? Wenn ich das richtig nachgelesen hab, wird beim "normalen" Blocks-Modul der Block auch dann von der Template-Engine gerendert, wenn er ausgeblendet ist. Nur wird es halt nicht angezeigt. Gerade bei einer mobilen responsive Site nicht sehr gut für die Performance. Wie verhält sich das context Modul in dieser Situation?
Ich würde an deiner Stelle noch das Field Group Module installieren. Mit Display Suite + Field Group kann man schon viel machen.
Stimmt, Field Group ist klasse :-)
Vielen Dank für deine Antwort :D
meine Drupal-Websites:
http://www.mathetreff-online.de
http://www.globewheeler.com
Nein, Sie werden nicht
am 24.08.2014 - 13:43 Uhr
Nein, Sie werden nicht gerendert. Mit dem Context Modul alleine kann man aber nur von Haus aus Blöcke und Regionen je nach Bedingung ein-und ausschalten.
Es gibt keine responsive Erkennung des Gerätes oder der Auflösung bzw. nur in Kombination mit weiteren Modulen.
Das was du vermutlich versuchst zu erreichen, hat meiner Meinung nach nicht mit responsive zu tun. Du willst anscheinend nur Blöcke rendern unter bestimmten Bedingungen. Diese vorgehensweise geht sicherlich auch, aber eigentlich sollte man das doch mit CSS lösen?!?
Wenn du 2 verschiedene Blöcke erstellst mit dem gleichen Inhalt, dann ist es nicht mehr wirklich responsiv. Das ist jedenfalls meine persönliche Meinung.
WEBTRANSFORMER
Goekmen schrieb Nein, Sie
am 24.08.2014 - 14:24 Uhr
Nein, Sie werden nicht gerendert. Mit dem Context Modul alleine kann man aber nur von Haus aus Blöcke und Regionen je nach Bedingung ein-und ausschalten.
Es gibt keine responsive Erkennung des Gerätes oder der Auflösung bzw. nur in Kombination mit weiteren Modulen.
Das was du vermutlich versuchst zu erreichen, hat meiner Meinung nach nicht mit responsive zu tun. Du willst anscheinend nur Blöcke rendern unter bestimmten Bedingungen. Diese vorgehensweise geht sicherlich auch, aber eigentlich sollte man das doch mit CSS lösen?!?
Wenn du 2 verschiedene Blöcke erstellst mit dem gleichen Inhalt, dann ist es nicht mehr wirklich responsiv. Das ist jedenfalls meine persönliche Meinung.
Ich dachte mir halt, manche Blöcke bei einem kleinen Display auszublenden, damit der User nicht kilometerlang scrollen muss. Wenn ich es per mediaquery ausblende, wird es ja von drupal trotzdem verarbeitet, auch wenn es als letzter Schritt von CSS wieder ausgeblendet wird. Somit muss Drupal hier für nix arbeiten, was zu Lasten der Performance geht. Deshalb ist imho die Lösung von Context so eine Art Kompromiss. Aber du hast definitiv recht, dann ist es nicht mehr komplett responsive. Mal sehen, was ich da am besten hin bekomme. Auch was mir DS so für Möglichkeiten bietet.
meine Drupal-Websites:
http://www.mathetreff-online.de
http://www.globewheeler.com
Das Ausblenden wegen der
am 24.08.2014 - 14:45 Uhr
Das Ausblenden wegen der Bildschirmgröße geht im Zusammenspiel der Module Kontext und Breakpoints. Es gibt dann allerdings Probleme mit dem Caching. Das muß dann speziell angegangen werden.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
dercheffe schrieb Ich dachte
am 24.08.2014 - 16:59 Uhr
Ich dachte mir halt, manche Blöcke bei einem kleinen Display auszublenden, damit der User nicht kilometerlang scrollen muss. Wenn ich es per mediaquery ausblende, wird es ja von drupal trotzdem verarbeitet, auch wenn es als letzter Schritt von CSS wieder ausgeblendet wird. Somit muss Drupal hier für nix arbeiten, was zu Lasten der Performance geht. Deshalb ist imho die Lösung von Context so eine Art Kompromiss. Aber du hast definitiv recht, dann ist es nicht mehr komplett responsive. Mal sehen, was ich da am besten hin bekomme. Auch was mir DS so für Möglichkeiten bietet.
Das kann gut mit Frameworkss wie Bootstrap lösen, wo es z.B. "Helper Classes" existieren für solche Fälle.
Beipsiel:http://getbootstrap.com/css/#responsive-utilities
Man kann zB den Blöcken dann mehrere Klassen geben. Je nach Auflösung wird dann der Block ein-oder ausgeblendet.
WEBTRANSFORMER