Am un cod care rulează hook_node_update
. Acest cod preia revizuirea nodului salvat și compară valorile câmpurilor dintre nodul curent și revizuirea acestuia pentru a genera un fel de jurnal istoric (ce este șters/actualizat/adăugat).
Funcționează foarte bine, cu excepția câmpului paragraf...
Când codul meu încearcă să obțină revizuirea unui paragraf (recursiv), am primit de fiecare dată același paragraf în loc de vechea revizuire (deci nu există diferențe de înregistrat)
Aici este codul meu pentru a obține revizuirea unui nod salvat (funcționează bine). Acest cod este folosit și pentru paragrafe (nu funcționează)
$updated_entity
: nodul/paragraful în prezent în proces pentru a fi salvat
$old_entity
: revizuirea de comparat
$entitate_veche = $entitate_actualizată->original;
if (!$old_entity) {
$storage = $this->getStorage($updated_entity);
// nu este nevoie să testăm dacă este revizuibil, deoarece folosim numai Node și Paragrafe
if ($revision_id = $updated_entity->getLoadedRevisionId()) {
$old_entity = $storage->loadRevision($revision_id);
}
else {
//... manipularea unei noi entitati
]);
}
}
Acest cod, atunci când este aplicat la paragrafe, produce un $entitate_veche == $entitate_actualizată
Paragrafele sunt extrase din nodul salvat în prezent, după cum urmează:
$paragrafe = $entitate_actualizată->get($câmp_paragraf)->Entități de referință();
după aceea, ei devin $updated_entity
variabilă în funcția superioară care încearcă să obțină revizuirea...