Ich möchte Inhaltseditoren die Möglichkeit geben, einem bestimmten Knoten einen Feed (möglicherweise Twitter, Tumblr usw.) hinzuzufügen. Ich möchte Absätze verwenden, weil ich möchte, dass sie diesen Feed zwischen verschiedenen anderen Inhalten ablegen können.
Das Absatzpaket hätte nur ein Feld, um die Ressourcen-URL zu akzeptieren. Ich würde die gesamte notwendige Verarbeitung hinter den Kulissen durchführen und den formatierten Inhalt über eine Zweigvorlage an den Knoten zurücksenden.
Ich habe eine Version, die mit einem Block anstelle eines Absatzbündels arbeitet, und ich möchte dasselbe benutzerdefinierte Modul verwenden, um einen Absatz zuzulassen, aber ich bin mir in Drupal 8 nicht sicher, wie ich dies am besten strukturieren soll.
Das Beste, was ich mir einfallen lassen kann, ist eine Vorverarbeitungsfunktion eines sort-preprocess_node oder eines preprocess_paragraph (von dem ich glaube, dass er in D8 existiert), die das Ganze starten würde, aber ich habe mich gefragt, ob es eine Art Basis-Entity-Klasse gibt hat eine Methode, die ich überschreiben kann oder so. (Ähnlich wie die BlockBase-Klasse die "build" -Methode hat.)
template_preprocess_paragraph(&$variables)
und es gibttemplate_preprocess_paragraph__PARAGRAPH_TYPE(&$variables)
auch.Antworten:
Ein Absatz ist eine Inhaltsentität mit Feldern, die in der übergeordneten Entität angezeigt wird. Es wird genau derselbe Mechanismus verwendet, der als Knoten, Kommentare usw. angezeigt wird. Durch Feldformatierer.
Sie können Ihr eigenes Feldformatierer-Plugin implementieren, das Ihr (Link?) Feld nach Belieben transformiert. Sie erhalten Feldelemente und müssen ein Render-Array zurückgeben. Das ist die einzige Einschränkung.
Wie alle Plugins ist es eine Klasse mit einer Anmerkung in einem bestimmten Namespace / Ordner. Der Standardformatierer für Linkfelder ist LinkFormatter . Die wichtigste Methode ist viewElements () .
quelle