Ich versuche zu lernen, wie man das Caching von Panels einrichtet. Ich habe ein Video über das Beherrschen des Drupal-Cachings gesehen und ich habe das Buch von Earl Miles über Panels und Ansichten, Drupals Bausteine , aber leider gibt es kein spezielles Kapitel zum Caching.
Ich habe also ein Panel, das das Benutzerprofil überschreibt, und in diesem Panel habe ich eine Variante, die eine Reihe von Ansichten-Inhaltsfenstern enthält. Ich möchte diese Inhaltsbereiche pro angezeigtem Benutzerprofil zwischenspeichern, da sie natürlich für jeden angezeigten Benutzer unterschiedlich sein sollten.
Jedes dieser Inhaltsfenster verfügt über einen Kontextfilter für die UID "Inhalt: Autor" .
Der Wert wird Panels von der Eingabeoption Argument in Ansichten bereitgestellt , für die die UID-Quelle für Inhalt: Autor auf Von Kontext und Erforderlicher Kontext auf Benutzer-ID festgelegt ist :
In Panels kann ich auf dem Bildschirm " Einfacher Cache- Konfiguration" für die Granularität " Argument" oder " Kontext" auswählen. Der Hilfetext lautet wie folgt:
Wenn "Argumente" ausgewählt sind, wird dieser Inhalt pro einzelnem Argument in der gesamten Anzeige zwischengespeichert. Wenn "Kontexte" ausgewählt sind, wird dieser Inhalt für jeden eindeutigen Kontext im Bereich oder in der Anzeige zwischengespeichert. Wenn "weder", gibt es nur einen Cache für diesen Bereich.
In Ansichten wird die Option jedoch als Argumenteingabe bezeichnet, und der von mir ausgewählte Wert stammt aus dem Kontext . Beschäftige ich mich also mit einem Argument oder einem Kontext?
Wenn möglich, wäre sowohl eine allgemeine Antwort, die den Unterschied zwischen Argument und Kontext in diesem Fall beschreibt, als auch eine spezifische Antwort auf meine Frage fantastisch.
Antworten:
Haftungsausschluss: Normalerweise finde ich, dass das Setup so einfach ist, dass die Unterscheidung nicht erforderlich ist. Daher muss ich zugeben, dass meine praktischen Erfahrungen begrenzt sind und ich mich im Folgenden irren könnte.
Arguments
, basieren auf der URL.node/5
wird separat zwischengespeichertnode/7
, da 5 sich von 7node/5/7
unterscheidet. Wenn Sie einen solchen Pfad haben möchten, ist dies ein weiterer Cache.Contexts
werden im Allgemeinen von abgeleitetArguments
, und in den obigen Beispielen ist es sehr wahrscheinlich, dass die Caches genau gleich sind, unabhängig davon, welche Cache-Option man auswählen würde. JedochContexts
kann auch aus (mindestens) drei anderen Quellen stammen,Relationships
manuell definiert diejenigen, und der Sonderfall, der angemeldete Benutzer.Wenn Ihr Kontext sowohl ein Knoten aus der URL als auch ein Benutzer aus einem
entity reference
Knoten auf dem Knoten ist, hat Ihr Kontext zwei eindeutige Entitäten oder zwei Kontexte, aber nur ein Argument.Man wählt also
Context
oderArgument
abhängig davon, ob der Cache irgendwelche "zusätzlichen" Kontexte in Frage stellen soll oder nicht.Leider ist die Terminologie zwischen den beiden Modulen nicht genau gleich. Panels ruft dynamische Teile der URL-Argumente auf und erstellt daraus Kontexte. Ansichten bedeutet etwas näher an einem Funktionsargument, wenn es sich auf Argumente bezieht, und in diesem speziellen Fall leitet es das Argument aus einem Kontext ab, der von Panels übergeben wird.
quelle