Я пытаюсь исправить проблему в каком-то унаследованном коде, который генерирует узлы настраиваемого типа контента «show», но только если узел того же типа и с тем же названием уже не существует. Код выглядит следующим образом:Drupal 6 - требуется node_submit() для сохранения узла?
$program = node_load(array('title' => $xml_node->program_title, 'type' => 'show'));
if (!$program) {
$program = new stdClass();
$program->type = 'show';
...
node_submit($program);
node_save($program);
}
Итак, сценарий первый пытается загрузить узел в «шоу» типа контента с конкретным названием, и если он не создает один.
Проблема заключается в том, что, когда она вызывается несколько раз за короткий промежуток времени (внутри цикла), она создает двойные узлы. Как 2 шоу с тем же заголовком, созданным за ту же секунду?!?
В чем проблема?
Я искал примеры того, как сохранить узел в Drupal 6. В некоторых они даже не называют node_submit(). Нужен ли этот звонок? Если да, возможно, мне нужно перейти к node_save(), что вернет node_submit()? Или, может быть, node_load() почему-то не загружает существующий узел? Может быть, какой-то кеш нужно очистить или что-то еще?
См http://drupal.stackexchange.com/questions/83277/what-is-the-purpose-of-using-node-submit-before-node-save – nawfal