<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On 31 May 2007, at 10:42 PM, Derek Wright wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">right, i saw that and appreciate it.<SPAN class="Apple-converted-space">  </SPAN>however, i'm talking about a more drastic, core-wide purge of directly touching $node, not just fixing up the collision with book and path.<SPAN class="Apple-converted-space">  </SPAN>perhaps that's too ambitious for D6...</FONT></P> </BLOCKQUOTE></DIV><BR><DIV>Doesn't nodeapi still use the $additions array ?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>couldn't we get away with changing how it merges the data?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>function node_invoke_nodeapi(&amp;$node, $op, $a3 = NULL, $a4 = NULL) {</DIV><DIV>  $return = array();</DIV><DIV>  foreach (module_implements('nodeapi') as $name) {</DIV><DIV>    $function = $name .'_nodeapi';</DIV><DIV>    $result = $function($node, $op, $a3, $a4);</DIV><DIV>    if (isset($result) &amp;&amp; is_array($result)) {</DIV><DIV> // one line change here. Gets rid of an array_merge too.</DIV><DIV>      $return[$name] = $result; </DIV><DIV>    }</DIV><DIV>    else if (isset($result)) {</DIV><DIV>      $return[] = $result;</DIV><DIV>    }</DIV><DIV>  }</DIV><DIV>  return $return;</DIV><DIV>} </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>obviously,the big work is changing everywhere that accesses the node object. And that goes all the way down to the theme layer.</DIV><DIV><BR class="khtml-block-placeholder"></DIV></BODY></HTML>