Я пытаюсь программно сохранить узлы типа CCK, используя drupal_execute(). Создаются пустые узлы; ни одно из полей CCK не сохраняется. Очевидно, что первая строка в drupal_process_form() отвечает:
$form_state['values'] = array();
Так что мой вопрос почему «ценности» стираются, и что более важно, как я могу сохранить CCK поля с помощью drupal_execute()?
Я попробовал save_node(), который хорошо работал; однако я бы предпочел первое, поскольку он вызывает подтверждение.
Спасибо за объяснение. Я думаю, что раньше я сталкивался с этой нитью; это было полезно. Я имею дело с более чем 200 полями в одном типе (это всего лишь прототип, он должен быть нормализован в конце концов) на данный момент, и довольно сложно найти виновника. Я заметил, что form_get_errors() испускает сообщения только для стандартных полей, таких как title; есть ли другой способ извлечь ошибки проверки? – Stan
@Stan: Другого способа я не знаю. Вы уверены, что это не просто проблема времени (веса), т. Е. Что ваш вызов 'form_get_errors()' встречается перед функциями CCKs validation, где вызывается? –
Ну 'form_get_errors()' вызывается сразу после 'drupal_execute()'. Я буду использовать 'node_save()' на данный момент или до тех пор, пока количество полей станет более управляемым. – Stan