Sto sviluppando un modulo per aggiornare i nodi (abilitare la revisione). Sembra così
$nodes = node_load_multiple(array(), array('type' => $bundleType));
foreach ($ndoes as $node){
$w = entity_metadata_wrapper('node',$node);
$w->MyFields->set($someValue);
$w->save();
}
Ha impostato correttamente i campi ma l'ID di revisione del nodo non è cambiato dopo $w->save()
.
Come posso aggiornare l'ID revisione?
$w->revision->set(1)
, è un modo manuale per far sapere al drupal che il nodo è stato aggiornato? Lo proverò.
$w->revision->set()
funziona. Sembra che fraintenda $w->save()
. Ho pensato che dovrebbe aumentare automaticamente l'ID di revisione durante il salvataggio. Esiste un modo per ottenere il prossimo ID revisione aumento? Grazie
revision->set(1)
dice al nodo di registrare una nuova revisione sulla modifica imminente / corrente del nodo. Non sono sicuro del motivo per cui il wrapper dei metadati non vede l'impostazione globale di creare una nuova revisione ..... ma l'impostazione del flag di revisione è una soluzione molto semplice come hai visto ora. Mi viene fornito il mio commento come una risposta di seguito se ti interessa votarlo per aiutare altri utenti in futuro a trovare una risposta corretta.
create new revision
flag è impostato sul nodo per il tipo di contenuto? Hai provato come$w->revision->set(1);
prima di salvare? ....