Я разрабатываю модуль для обновления узлов (включить ревизию). Похоже на это.
$nodes = node_load_multiple(array(), array('type' => $bundleType));
foreach ($ndoes as $node){
$w = entity_metadata_wrapper('node',$node);
$w->MyFields->set($someValue);
$w->save();
}
Он установил поля правильно, но идентификатор ревизии узла не изменился после $w->save()
.
Как я могу обновить идентификатор ревизии?
$w->revision->set(1)
том, это ручной способ сообщить друпалу, что узел был обновлен? Я попробую.
$w->revision->set()
работает. Кажется, я неправильно понимаю $w->save()
. Я думал, что это должно увеличить идентификатор ревизии автоматически при сохранении. Есть ли способ получить следующий номер версии? Спасибо
revision->set(1)
велит узлу записать новую ревизию о предстоящем / текущем редактировании узла. Я не уверен, почему оболочка метаданных не видит глобальную настройку создания новой ревизии ... но установка флага ревизии - очень простой обходной путь, как вы теперь видели. Я предоставил свой комментарий в качестве ответа ниже, если вы хотите поднять его, чтобы помочь другим пользователям в будущем найти правильный ответ.
create new revision
Установлен ли флаг на узле для типа контента? Вы пробовали как$w->revision->set(1);
перед сохранением? ....