Вставка узла продолжает вызывать nodeapi, даже если запрос не выполнен - PullRequest
0 голосов
/ 21 февраля 2011

У меня есть пользовательская функция nodapi для выполнения дополнительных действий при вставке типа содержимого.Тем не менее, у меня возникла следующая ошибка «Предупреждение в test1 \ includes \ common.inc в строке 3538.».Я несколько раз отследил это до проблемы с кодировкой, и я не уверен, как ее решить, хотя.

Однако, что я не получаю, так это то, что запрос не выполняется, но nodeapi все равно получаетпозвонил, и я получил пустой NID.Это также приводит к сбою других вставок, потому что nid и vid равны 0 или нулю.

Я понимаю, что причиной проблемы является кодировка, но я не понимаю, почему Drupal по-прежнему запускает nodeapi, если вставка узла (я считаю,) не работает, и nid или vid не создаются.

Любая помощь будет оценена.

Грег.

1 Ответ

0 голосов
/ 21 февраля 2011

Взгляните на node_save. Drupal выполняет запросы, но не проверяет их результаты. Таким образом, hook_nodeapi независимо от узла фактически сохраняется в базе данных.

Drupal может проверить результат запроса, но это может привести к большим накладным расходам, к проблеме, которая может быть вызвана только неправильной настройкой базы данных. Drupal требует правильной настройки базы данных, как это требует веб-сервера и PHP. Друпал не должен проверять правильность работы этих систем.

...