On 31 May 2007, at 10:42 PM, Derek Wright wrote:


right, i saw that and appreciate it.  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.  perhaps that's too ambitious for D6...


Doesn't nodeapi still use the $additions array ?

couldn't we get away with changing how it merges the data?

function node_invoke_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  $return = array();
  foreach (module_implements('nodeapi') as $name) {
    $function = $name .'_nodeapi';
    $result = $function($node, $op, $a3, $a4);
    if (isset($result) && is_array($result)) {
 // one line change here. Gets rid of an array_merge too.
      $return[$name] = $result; 
    }
    else if (isset($result)) {
      $return[] = $result;
    }
  }
  return $return;

obviously,the big work is changing everywhere that accesses the node object. And that goes all the way down to the theme layer.