Wie programmiere ich einen Knoten in Drupal 8?

7

Ich entwerfe ein neues Modul in Drupal 8. Es ist ein langfristiges Projekt, das zumindest für ein paar Monate nicht veröffentlicht wird, also benutze ich es, um herauszufinden, was es Neues gibt.

In diesem Modul möchte ich programmgesteuert Knoten erstellen können. In Drupal 7 würde ich dies tun, indem ich das Objekt erstelle und dann "node_submit" und "node_save" aufrufen würde.

Diese Funktionen sind in Drupal 8 nicht mehr vorhanden. Stattdessen heißt es in der Dokumentation: "Module und Skripts können Knoten programmatisch mit dem üblichen Formular-API-Muster senden." Ich bin ratlos. Was bedeutet das? Ich habe die Formular-API verwendet, um Formulare in Drupal 7 zu erstellen, aber ich verstehe nicht, was die Dokumente hier sagen.

Ich möchte programmatisch mindestens einen und möglicherweise mehrere neue Knoten erstellen, basierend auf Informationen, die nicht direkt aus einem vom Benutzer bereitgestellten Formular stammen. Ich muss in der Lage sein:

1) Geben Sie den Inhaltstyp

an

2) Geben Sie den URL-Pfad an

3) Legen Sie alle anderen notwendigen Variablen fest, die zuvor vom jetzt veralteten node_object_prepare ()

verarbeitet wurden

4) Übernehmen Sie das neue Knotenobjekt

Ich würde es vorziehen, dies in einer unabhängigen, stark abstrahierten Funktion zu tun, die nicht an einen bestimmten Block oder eine bestimmte Form gebunden ist.

Also, was fehlt mir?

    
chapka 11.06.2014, 21:21
quelle

4 Antworten

2

Ich habe es herausgefunden. Für alle anderen Benutzer mit diesem Problem werden Knoten nun als Entitäten behandelt und das Entitätsmodul ist jetzt Teil von core. Also sah mein Code so aus:

%Vor%     
chapka 12.06.2014, 16:18
quelle
11

%Vor%
    
Rookie Rod 05.08.2015 04:56
quelle
5

Die D8-Version von devel / devel_generate hat ein gutes Beispiel dafür.

Von devel_generate :

%Vor%

Verwenden von formatiertem Text

Die Verwendung von grep mit Vorher / Nachher-Codezeilen hat mir geholfen, herauszufinden, wie man einen Knoten mit 'full_html' hinzufügt.

Suchen Sie den Drupal-Kerncode mit diesem:

%Vor%

Öffnen Sie dann /tmp/temp-grep.txt in einem Texteditor. Stochern Sie ein bisschen herum und Sie werden das sehen:

%Vor%

Beachten Sie, dass "body" nun zu einem Array mit einem "Wert" und einem "Format" wird.

    
David Luhman 18.11.2014 22:36
quelle
4

RE: veraltete Entität create

Hier ist ein kurzes Anwendungsbeispiel ohne die veralteten Funktionen. Dies ist besonders hilfreich für die dynamische Erstellung:

%Vor%     
Trey 08.03.2016 17:31
quelle

Tags und Links