In D7 haben wir eine Ansicht für Knoten erstellt, wobei jedes Feld eine eigene Anzeige hat. Jede Anzeige erstellt einen Block, der in einer beliebigen Region der Site platziert werden kann. Aber Ansichten sind natürlich SQL-lastig.
Jetzt ist Drupal 8 alles andere als schick. Wie zeigt Drupal 8 die Felder eines Knotens in verschiedenen Bereichen der Seite an?
Bearbeiten: Mein aktueller Versuch besteht darin, ein benutzerdefiniertes Modul zu erstellen, das einen Block für jedes angegebene Feld bereitstellt.
Ctools in D8 enthält ein experimentelles Modul namens Chaos-Werkzeugblöcke , mit dem Sie dies in jedem Seitenmanager- Variantenlayout tun können.
Dies ist sehr nützlich, wenn Sie eine Knotenvariante erstellen, um einen Inhaltstyp anzuzeigen.
Nachdem Sie es aktiviert haben, können Sie ein beliebiges Feld des angezeigten Knotens hinzufügen. Sie sehen eine vollständige Liste der unter "Inhalt" verfügbaren Felder, wenn Sie auf Block hinzufügen klicken.
Der Nachteil ist, dass das Modul experimentell ist und nicht viel Dokumentation verfügbar ist.
Hier ist ein aktiver Thread dazu https://www.drupal.org/node/2809213
Modulseite https://www.drupal.org/project/ctools
Ich habe es selbst versucht und es funktioniert gut.
Ich hoffe, dies hilft Ihnen oder jedem, der nach einer Lösung für diese Art von Szenario sucht.
quelle
Ich denke, es gibt keine Best Practice dafür, vielleicht nicht einmal eine gute Practice, aber es ist nicht unmöglich, ein paar Optionen zu befolgen
Für mich ist dies die beste Option: Sie können einen Block erstellen, der den aktuellen Knoten lädt und Ihr gewünschtes Knotenfeld anzeigt. Auf diese Weise können Sie problemlos über die Benutzeroberfläche verwalten (Ihr Block mit 'node_type' select und 'field_name' select ist einfach und schnell zu erledigen).
Beginnen Sie mit der Bearbeitung 1
Hier meine Implementierung dieses Blocks, testen und kommentieren Sie bitte die Ergebnisse
Edit beenden 1
Oder ... holen Sie Ihr Feld ein
preprocess_region
und laden Sie eine Variable (dies ist leicht zu demonstrieren).Und in Ihrer Zweigdatei verwenden
VORSICHT:
In Zukunft können Sie dieses Feld nicht mehr entfernen. Wenn Sie es entfernen, wird Ihre Seite beschädigt. Erläuterung:
$node->get('field_descricao')
wird keine Null auswerten, dannnull->view()
= kaputte Seite. Selbst wenn Sie sich darum kümmern, kann jemand oder sogar Sie dies vergessen und es wird Ihnen Kopfschmerzen bereiten, warum diese Informationen nicht mehr angezeigt werden.quelle
getCacheContexts
). Wenn ein Knoten mit einem bestimmten Typ vorhanden ist, wird ein Feld gerendert. Und ja, wenn Sie zum zweiten Mal besuchen, wird der Cache verwendet. Wenn Sie den Knoten ändern, wird Ihr Block neu erstellt (getCacheTags
). In diesem Fall (Blockabrufknoteninformationen) muss das Blockobjekt die Cache-Informationen überschreiben. Andernfalls wird Ihr Block nur einmal erstellt und überall verwendet.Anstatt das Layout und den Seitenleistenbereich des Themas zu verwenden, können Sie eines der folgenden Module verwenden und ein Panel- oder Display-Suite-Layout mit einem Seitenleistenbereich erstellen. Anschließend können Sie die benötigten Knotenfelder und anderen Blöcke in die Seitenleiste und in andere von Ihnen erstellte Regionen einfügen.
Panels
Display Suite
quelle
Das Feldblock- Modul macht so ziemlich das, was Sie verlangen. Damit kann jedes Feld in einem beliebigen Entitätstyp / Bundle als Block in der Region angezeigt werden, die Ihnen gefällt.
quelle
Wenn Sie die Schnellbearbeitungsfunktion verwenden möchten, können Sie verschiedene Ansichtsmodi über die Benutzeroberfläche erstellen und verwenden (unter Struktur / Anzeigemodi / Ansichtsmodi). Das heißt, Sie sind nicht nur auf die Modi Teaser und Vollansicht beschränkt. Sie können Ihre benutzerdefinierten Ansichtsmodi auch in Ansichten verwenden. Und so gerenderte Inhalte enthalten alle erforderlichen Kontextlinks.
quelle
In Drupal 7 habe ich genau das Gleiche getan wie in Alex: Ansichten erstellen, um Inhalte in Blöcken zu platzieren. Ich fand diesen Thread auf der Suche nach einer Möglichkeit, QuickEdit zum Laufen zu bringen.
Display Suite und ViewModes scheinen die Antwort zu sein.
Dies scheint mir der sauberste Weg zu sein: Mit der Drupal 8-Version von Display Suite können Sie Felder von Knoten zu Blöcken hinzufügen.
Vollständige Anweisungen finden Sie unter https://www.drupal.org/node/2754967 . Diese Methode erspart das Erstellen einer Reihe von Ansichten und ermöglicht die Inline-Bearbeitung.
quelle