Suggestion 4 is interesting, and seems to be a viable solution too.<br><br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">The biggest disadvantage of this (which is quite obvious from looking
<br>at the above example) is that it will be difficult to say when a<br>module should or shouldn&#39;t assume ownership of node types, and that it<br>will be easy for multiple modules to all assume ownership of node<br>types, which would basically render the ordering of the hooks
<br>redundant (since none of them choose to use &#39;alter&#39;).</blockquote><div><br>Agreed. <br><br>Moreover, if event module is pointing to CCK, then who owns the node<br>type? CCK or event?<br></div></div><br>Suggestion 5 builds on what Karoly said, which I am summarizing below.
<br><br>- move all hook_load() and friends into hook_othernodeapi($op), where $op is load, insert,<br>delete, ...etc.<br>- So, we have one real hook (hook_nodeapi($op)), and one callback (hook_othernodeapi($op)).
<br><br>(of course, othernodeapi has to be something better)<br><br>This has the advantage of having only a maximum of two functions per module, with ops of course.<br>One for node creation modules, and the other the regular nodeapi we know today.
<br><br>Your suggestion (#4) has the advantage of collapsing everything in one hook_nodeapi() though.<br>