Ho utilizzato node_save per nodi di tipo 'page', solitamente in hook_install per importare i nodi da vecchio a nuovo sito.
Ho creato un content type veramente stupido via core API e mi son accorto che, salvando un nodo di questo custom type utilizzando node_save, non richiama tutti gli hook necessari e quindi esegue un salvataggio parziale.
Qualcuno potrebbe spiegarmi come mai?
No, node_save chiama gli hook giusti:
http://api.drupal.org/api/function/node_save/6
http://api.drupal.org/api/function/node_invoke/6
http://api.drupal.org/api/function/node_invoke_nodeapi/6
Forse il $node non ha tutto l'informazione giusto?
Più imparo, più dubito.
mmm Mi sembrava strano però in presenza di un save che si fermava alle tabelle del core il dubbio mi ha colto.
Che informazioni dovrei passare in dettaglio?
Io ho passato le seguenti:
Esattamente, in cosa il salvataggio è parziale? Credo tu debba anche indicare lo status, ma non sono sicuro. Inoltre, author in realtà è uid.
Si, allora ho errato nell'elenco, inizialmente ho passato uid ($user->uid), poi ho anche aggiunto author ($user->name) per "disperazione".
In fase di salvataggio, la hook_insert non veniva invocata, e quindi le tabelle dei customField non venivano popolate. Il nodo si presentava di tipologia diversa a Page, ma in definitiva sembrava un Page, e aveva solamente titolo, body e poco altro di base.