dr:api_sequences
Table of Contents
API Sequences: node life cycle
(in Drupal 4.6.x)
… during the building of the various pages creating and editing a custom node…, as noted on a 4.6.3 installation during the development of the helpdesk module
Table of hook calls seen by a module
Sequence of hooks fired | 1: New | 2: Preview | 3: Submit invalid new |
4: Submit valid new |
5: Redirect after create |
6: View node | 7: Edit node | 8: Track node |
---|---|---|---|---|---|---|---|---|
hook_menu | X | X | X | X | X | X | X | X |
hook_access | 1 per node type | |||||||
hook_node_types | X | |||||||
hook_user('load') | no uid name |
no uid name |
no uid name |
no uid name |
||||
hook_load | valid nid | valid nid | valid nid | valid nid | ||||
hook_nodeapi ('load') | valid nid | valid nid | valid nid | valid nid | ||||
hook_menu | X | |||||||
hook_user('load') | no uid name of node owner |
|||||||
hook_validate | builtin fields | builtin fields module fields no object |
builtin fields module fields no object |
builtin fields module fields no object |
builtin fields loaded object |
|||
hook_nodeapi('validate' | X | X | X | X | valid nid | |||
hook_nodeapi('fields') | X | |||||||
hook_insert | builtin fields module fields no object valid nid |
|||||||
hook_nodeapi('insert') | valid nid | |||||||
hook_user('load') | no uid name |
no uid name |
||||||
hook_view | builtin fields module fields no object |
builtin fields loaded object |
valid nid | valid nid | ||||
hook_nodeapi('view') | X | valid nid | valid nid | |||||
hook_nodeapi('form pre') | X | X | X | valid nid | ||||
hook_form | builtin fields | builtin fields module fields no object |
builtin fields module fields no object |
builtin fields loaded object |
||||
hook_nodeapi('form post') | X | X | X | valid nid | ||||
hook_nodeapi('form admin') | X | X | X | valid nid | ||||
hook_nodeapi('form param') | X | X | X | valid nid | ||||
hook_node_name | X | X | X | valid nid | ||||
hook_node_types | X | X | X | X | X | X | X | |
hook_block | 1 per block | 1 per block | 1 per block | 1 per block | 1 per block | 1 per block | 1 per block | 1 per block |
hook_help('node/...') | add/<node type> | add/<node type> | add/<node type> | add/<node type> | <nid> | <nid> | <nid>/edit | <nid>/track |
Notes
The difference between 'modules fields' and 'loaded object' occurs if the module defines the additional fields it handles as fields as wrapped in an object elswehere
- “Module fields” is just a set of array entries made available, intermixed with the builtin array entries
- “Loaded object” refers the same, but when they are returned by core as the wrapper object.
Basically, modules fields are returned from a HTML form, whereas a loaded object comes from the DB.
Of course, any additional calls done by the module will appear somewhere in between these. For instance, helpdesk loads the information about a contract's customer, which is a drupal USER, so
hook_user('load')
is fired from the module.
Similarly, any call to l() causes hook_link to be fired too.
dr/api_sequences.txt · Last modified: 2020/11/23 17:23 by 127.0.0.1