[development] node not fully loaded in hook_view() when previewing
larry at garfieldtech.com
larry at garfieldtech.com
Fri Mar 27 19:47:54 UTC 2009
augustin (beginner) wrote:
> Hello,
>
> In a module with its own node type, the node is not fully loaded when using
> preview.
>
> In hook_load(), I return my own extra fields to the node:
> return array('mynodetype' => $extra);
>
> In hook_view(), $node->mynodetype is set when viewing the node, but not when
> editing then previewing the same node. Isn't the node loaded as for a normal
> node view?
>
>
> I've searched drupal.org but didn't find anything terribly useful.
>
> I found this old forum post:
> Philosophy of 'Preview'
> http://drupal.org/node/126750
>
> And this old core issue, which I had helped reviewing at the time, but which
> is supposed to be fixed (though it was not said how it was fixed):
> node previews broken by missing hook_submit
> http://drupal.org/node/104047
>
>
> Is this a known issue?
Sort of. Remember that despite being called $node what you get for
preview and insert/update hooks is NOT a node object. It's
$form_state['values']. Unless you call node_save() yourself from
soemwhere, in which case it IS a node object. Thus you need to
structure your node data and your node form additions to parallel each
other, or stuff breaks horribly in horrific ways.
This is a known design flaw in the node system. It royally sucks on
innumerable levels. I think the most likely solution in the long run is
"if it's not a Field, sucks to be you, use Fields".
Not a great solution, but it is what it is.
--Larry Garfield
More information about the development
mailing list