The node options settings implemented through the nodeapi 'settings' op is incorrectly invoked. Only the type is passed on as a string, while the nodeapi hook expects a node object. Therefore the type property of the object is not possible to use in the hook, and it is impossible to set and content type options.

One way to fix it is to use $node as a typename inside the nodeapi settings op implementation, and the other way is to really pass an object. A patch for the second option is attached.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Anonymous’s picture

+1 for this fix, but please change double-quotes to single-quotes before applying it... BTW: There was a duplicate with a similar (although slightly less elegant) patch.

Dries’s picture

According to the PHPdoc, a $type-string can be used. If I remember correctly, this used to work?

Gábor Hojtsy’s picture

I don't know if it used to work or not, since the drupaldocs.org docs are also a bit behind in following the code (still writing about columns to add to the settings table for nodes). Either way, it is just a question of definition. If we allow type names to be used, then the phpdocs in the contrib/docs needs to be updated, and this bug needs a different fix.

Dries’s picture

I used to work: just check lines 298, 314 and 334 of node.module.

Gábor Hojtsy’s picture

OK, attached a different patch, using the $node as type name in case of the settings operation.

Dries’s picture

Committed to HEAD.

Anonymous’s picture