Wie Feld bei Erstellen eines Node befüllen?
Eingetragen von rhodes (631)
am 02.03.2019 - 12:39 Uhr in
am 02.03.2019 - 12:39 Uhr in
Hallo zusammen,
in einer Drupal 8 Installation soll beim Erstellen eines Node vom Typ "custom" ein Textfeld "identifier" automatisch befüllt werden. Das Feld ist für den Anwender nicht editierbar. Der Identifier besteht aus einem Zeitstempel und der node ID.
Dazu habe ich ein kleines Modul geschrieben. Allerdings habe ich jetzt festgestellt, dass ich weder bei hook_entity_create() noch bei hook_entity_insert() die Node ID zur Verfügung habe.
Bei hook_entity_presave() wäre sie da, aber dann wird das Feld bei jedem Editieren und Abspeichern des Node neu geschrieben.
Was könnte ich tun? Bin für jeden Tipp dankbar.
rhods
- Anmelden oder Registrieren um Kommentare zu schreiben
https://www.drupal.org/projec
am 02.03.2019 - 21:40 Uhr
https://www.drupal.org/project/computed_field (gibts für D8 (als Beta))
Edit: Über hook_entity_presave() kann man abfragen ob der Node neu ist (zumindest bei D7).
Drupal rockt!!!
Ionit
am 04.03.2019 - 08:55 Uhr
https://www.drupal.org/project/computed_field (gibts für D8 (als Beta))
Edit: Über hook_entity_presave() kann man abfragen ob der Node neu ist (zumindest bei D7).
hook_entity_presave() wird bei jedem Editieren und Abspeichern eines Node ausgeführt. Die Funktion soll aber nur bei der Neuanlage ausgeführt werden.
hook_entity_presave wird
am 04.03.2019 - 10:45 Uhr
hook_entity_presave wird IMMER ausgeführt.
<?php
if (!isset($entity->original)) {
$entity->field_bla = 'value';
}
?>
Darüber kanst Du abfragen ob die Entity neu ist oder schon vorhanden.
Schau Dir die Struktur mal mit Devel an (bei D8 habe ich das selbst noch nicht gemacht).
Drupal rockt!!!
Danke.
am 04.03.2019 - 12:54 Uhr
Danke.