Wie Sie programmgesteuert erstellen einer node in Drupal 8?
Ich bin der Gestaltung eines neuen Moduls in Drupal 8. Es ist ein langfristiges Projekt, das nicht an die öffentlichkeit gehen für ein paar Monate mindestens, also verwende ich es als ein Weg, um herauszufinden, was es neues gibt.
In diesem Modul, ich möchte in der Lage sein, die programmgesteuert erstellen von nodes. In Drupal 7 ist, würde ich dies tun, indem Sie die Objekte, dann Aufruf von "node_submit" und "node_save".
Diese Funktionen nicht mehr vorhanden, in Drupal 8. Stattdessen werden laut der Dokumentation "Module und Skripte können programmgesteuert senden Knoten mit der üblichen form-API ein Muster." Ich bin an einem Verlust. Was bedeutet das? Ich habe Form-API zum erstellen von Formularen in Drupal 7, aber ich bekomme nicht, was die docs sagen hier.
Was ich Suche zu tun, ist programmgesteuert erstellen Sie mindestens einen und möglicherweise mehrere neue Knoten, basierend auf Informationen, die nicht direkt aus einem user-form präsentiert. Ich muss in der Lage sein:
1) geben Sie den Inhaltstyp
2) Geben Sie den URL-Pfad
3) stellen Sie eine beliebige andere Variablen, die vorher behandelt wurde durch die jetzt veralteten node_object_prepare()
4) Begehen das neue node-Objekt
Ich würde lieber in der Lage sein, dies zu tun in einer unabhängigen, stark abstrahierte Funktion, die nicht an einen bestimmten block oder form.
So was bin ich?
- Siehe
entity_create()
- entity_create() entfernt werden, in Drupal 9 nach Ihren link. Bessere Nutzung der Objekt-Art : Entity::create() oder Node::create() für einen Knoten.
- Yep, das ist wahr. Sie waren nicht veraltet, wenn ich schrieb den Kommentar, obwohl, Sie waren neu und glänzend 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
HTML:
D8 version von devel/devel_generate Modul ist ein gutes Beispiel dafür.
Vom devel_generate :
Mit formatierten text
Mithilfe von grep mit vor/nach code-Zeilen hat mir geholfen, herauszufinden, wie man einen Knoten mit 'full_html'.
Durchsuchen der Drupal core-code mit diesem :
Öffnen Sie dann die up - /tmp/temp-grep.txt in einem text-editor. Stöbern dort ein wenig, und Sie werden sehen :
Hinweis, wie 'Körper' jetzt wird ein array mit einem 'Wert' und ein 'format'.
RE: veraltete Entität erstellen
Hier ist ein kurzes Beispiel für die Benutzung ohne die deprecated-Funktionen. Dies ist besonders hilfreich für die dynamische Erstellung:
Herausgefunden. Für alle anderen mit diesem Problem, Knoten werden nun so behandelt, als Entitäten und die Entitäts-Modul ist nun Teil des core. Also mein code landete auf der Suche wie diese:
Beste Weg, um erstellen Sie Knoten in Drupal 8 über die Anwendung der core services