Wie bearbeite ich Massenfelder oder die Taxonomie von Knoten?

8

Ich arbeite an einer Site, die Bulk-Tagging auf Knoten benötigt. Der D8-Core-View-Bulk-Operations-Port ist "einfach" ( https://www.drupal.org/node/1823572 ) und enthält keine "Entitätswerte ändern", die ich für diesen Benutzerfall in D7 verwendet habe. Es gibt keine D8-getaggte Version von Contrib VBO, die ich finden kann.

Mein spezieller Anwendungsfall ist, dass ich Gruppen von Blog-Posts mit einzelnen Begriffen markieren muss. Ich habe ungefähr 2000 Knoten aus WordPress importiert und muss neue Tags auf sie anwenden. Sobald die Backlog-ID markiert ist, brauche ich keine Massenbearbeitung mehr. (Aber ich bin sicher, dass viele Leute ähnliche Anwendungsfälle haben, wie Massenbearbeitungsfelder oder Tags, die keine einmaligen Aufgaben sind.)

Aktionen sind Teil von Core, sodass möglicherweise benutzerdefinierte Aktionen für meinen Anwendungsfall geschrieben werden können (Tag-Knoten mit Taxonomiebegriff X, Y oder Z). Diese Dokumentation scheint die vielversprechendste zu sein. https://www.drupal.org/node/2020549

Kann jemand bestätigen, dass dies der beste Weg ist, Knoten in großen Mengen zu bearbeiten, oder gibt es einen anderen Ansatz, den ich in Betracht ziehen sollte?

Aidan Foster
quelle

Antworten:

6

Drupal Core bietet diese Funktionalität nicht. Sie müssen sie also selbst implementieren.

Ja, Sie können dazu Ihr eigenes Aktions-Plugin implementieren. Sie können auch über ein Formular auswählen, welches Tag Sie anwenden möchten. Schauen Sie sich das Plugin zum Löschen von Knoten an, das ein Bestätigungsformular verwendet. Sie können jedoch alle gewünschten Funktionen in diesem Formular implementieren.

Beachten Sie, dass dem Drupal-Kern eine weitere wichtige Funktion für Ihren Anwendungsfall fehlt. Die Möglichkeit, eine Massenaktion auf mehr als eine Seite anzuwenden. Das Beste, was Sie tun können, bis ein Port des Contrib-Moduls vorhanden ist, um die Anzahl der Zeilen pro Seite zu erhöhen, sodass Sie ihn weniger oft wiederholen müssen.

Berdir
quelle
1
Ich habe das Contrib-Modul vor ein paar Monaten portiert - drupal.org/project/views_bulk_edit
benjy
3

Berdirs Antwort ist richtig, Sie müssen Ihre eigene Aktion schreiben.

Ich fand diesen Artikel äußerst nützlich, um dies schnell zu erreichen.

Grundsätzlich können Sie beim Erstellen und Registrieren einer neuen Aktion ein Bestätigungsformular angeben, z. B. "Sind Sie sicher, dass Sie dies tun möchten?". Sie können ein Formular für diese Phase bereitstellen, das weitere Informationen akzeptiert und diese Informationen dann verwendet, um eine Stapeloperation für die Knoten / Entitäten auszuführen, deren IDs durchlaufen wurden.

Beachten Sie, dass, wie Berdir feststellte, die Aktion zum Ausführen eines Massenvorgangs über mehrere Seiten hinweg (meines Wissens) immer noch fehlt.

autopoietisch
quelle
1

Ansichten-Massenoperationen ( https://www.drupal.org/project/views_bulk_operations ) bieten ein spezielles Ansichtsfeld, in dem Sie Felder ändern können

Auch Bulk_update_fields verspricht genau das. Es ist ein neues Modul für Drupal 8 und scheint mit einigen Warnungen zu funktionieren (in meinem Fall)

Sie können es eigenständig installieren content/nodeund als Aktion verwenden. bulk update fields to another valueWenn Sie einen view bulk operationsüberschreibenden content/nodePfad installiert haben , können Sie die Ansicht bearbeiten, und es ist eine neue Aktion verfügbar (die aktiviert werden muss).

GiorgosK
quelle