User Tools

Site Tools


dr:api_sequences

This is an old revision of the document!


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

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
 
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_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> node/add/<node type> node/add/<node type> node/add/<node type> node/<nid> node/<nid> node/<nid>/edit node/<nid>/track

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 (as I describe elswehere).

  • "Module fields" is just a set of array entries made available, intermixed with the builtin array entries
  • "loaded object" referes 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.1130067405.txt.gz · Last modified: 2020/11/23 17:23 (external edit)