dr:api_sequences
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dr:api_sequences [2005/10/16 18:51] – (old revision restored) 127.0.0.1 | dr:api_sequences [2020/11/23 17:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== API Sequences ====== | + | ====== API Sequences: node life cycle===== |
- | What happens when .... ? (in Drupal 4.6.x) | + | |
+ | (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 [[http:// | ||
- | ===== Clicking | + | ===== Table of hook calls seen by a module |
- | * Loading part: | + | < |
- | * hook_load | + | |
- | * hook_nodeapi(' | + | |
- | * Validation part: | + | |
- | * hook_validate | + | |
- | * hook_nodeapi(' | + | |
- | * Form part: | + | |
- | * hook_nodeapi(' | + | |
- | * hook_form. Node contains loaded object if applicable. | + | |
- | * hook_nodeapi(' | + | |
- | * hook_nodeapi(' | + | |
- | * hook_nodeapi(' | + | |
- | This description seems complete. | + | <style type=" |
+ | body { font-size: | ||
+ | th, td { vertical-align: | ||
+ | th[scope=" | ||
+ | td { vertical-align: | ||
+ | </ | ||
+ | <table cellspacing=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <th width=" | ||
+ | < | ||
+ | invalid new</ | ||
+ | < | ||
+ | valid new</ | ||
+ | < | ||
+ | after create</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <td>1 per node type</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | name</ | ||
+ | < | ||
+ | name</ | ||
+ | < | ||
+ | name</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | name of node owner</ | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | loaded object</ | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | module fields< | ||
+ | no object< | ||
+ | valid nid </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | name</ | ||
+ | < | ||
+ | name</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | < | ||
+ | loaded object</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | module fields< | ||
+ | no object</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | loaded object</ | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | <td>1 per block</ | ||
+ | </ | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | ===== Notes ===== | ||
- | ===== Node creation ===== | + | The difference between ' |
+ | * " | ||
+ | * " | ||
- | ==== Step 1: Clicking on node type in " | + | Basically, modules |
- | + | ||
- | * Initialization part | + | |
- | * hook_menu | + | |
- | * hook_node_types | + | |
- | * hook_user(' | + | |
- | * NO LOAD PART | + | |
- | * node_validate | + | |
- | * hook_validate. Builtin | + | |
- | * hook_nodeapi(' | + | |
- | * Form part | + | |
- | * hook_nodeapi(' | + | |
- | * hook_form. Builtin fields initialized. | + | |
- | * hook_nodeapi(' | + | |
- | * hook_nodeapi(' | + | |
- | * Rest of page | + | |
- | * hook_name | + | |
- | * hook_node_types. Again. | + | |
- | * hook_block. As many times as there are blocks to be displayed by this module. | + | |
- | * hook_help(section = node/ | + | |
+ | Of course, any additional calls done by the module will appear somewhere in between these. For instance, helpdesk loads the information about a contract' | ||
- | ==== Step 2 : Clicking on PREVIEW for a new node ==== | + | Similarly, any call to [[http:// |
- | + | ||
- | * hook_form. Node contains form fields, mixing builtin fields and module from object. No object. | + | |
- | + | ||
- | * Initialization part | + | |
- | * hook_menu | + | |
- | * hook_user(' | + | |
- | * NO LOAD PART | + | |
- | * node_validate | + | |
- | * hook_validate. Node contains form fields, mixing builtin fields and module from object. No object. | + | |
- | * hook_nodeapi(' | + | |
- | * Preview part | + | |
- | * hook_user(' | + | |
- | * hook_view(). | + | |
- | * Form part | + | |
- | * hook_nodeapi(' | + | |
- | * hook_form. Builtin fields initialized. | + | |
- | * hook_nodeapi(' | + | |
- | * hook_nodeapi(' | + | |
- | * Rest of page | + | |
- | * hook_name | + | |
- | * hook_block. As many times as there are blocks | + | |
- | * hook_help(section = node/ | + | |
- | + | ||
- | ==== Clicking on SUBMIT for an invalid node ==== | + | |
- | + | ||
- | * hook_validate | + | |
- | * hook_view. Node contains loaded object if applicable | + | |
- | * hook_nodeapi(' | + | |
- | + | ||
- | ==== Clicking on SUBMIT for a valid node ==== | + | |
- | + | ||
- | * hook_load | + | |
- | * hook_validate | + | |
- | * hook_view. Node contains loaded object if applicable | + | |
- | * hook_nodeapi(' | + |
dr/api_sequences.txt · Last modified: 2020/11/23 17:23 by 127.0.0.1