Je développe un module pour mettre à jour les nœuds (activer la révision). Cela ressemble à ceci.
$nodes = node_load_multiple(array(), array('type' => $bundleType));
foreach ($ndoes as $node){
$w = entity_metadata_wrapper('node',$node);
$w->MyFields->set($someValue);
$w->save();
}
Il a correctement défini les champs mais l'ID de révision du nœud n'a pas changé après $w->save()
.
Comment puis-je mettre à jour l'ID de révision?
$w->revision->set(1)
, est-ce une façon manuelle de laisser le drupal savoir que le nœud a été mis à jour? Je vais essayer.
$w->revision->set()
marche. Il semble que je me méprenne $w->save()
. Je pensais que cela devrait augmenter automatiquement le numéro de révision lors de l'enregistrement. Existe-t-il de toute façon une nouvelle augmentation de l'ID de révision? Merci
revision->set(1)
indique au nœud d'enregistrer une nouvelle révision lors de la modification à venir / en cours du nœud. Je ne sais pas pourquoi l'encapsuleur de métadonnées ne voit pas le paramètre global de créer une nouvelle révision ..... mais définir l'indicateur de révision est une solution de contournement très simple comme vous l'avez maintenant vu. Je reçois mon commentaire comme réponse ci-dessous si vous souhaitez voter pour aider d'autres utilisateurs à l'avenir à trouver une réponse correcte.
create new revision
indicateur est-il défini sur le nœud pour le type de contenu? Avez-vous essayé comme$w->revision->set(1);
avant de sauvegarder? ....