in reply to Adding nodes to scratchpad via personal nodelet

This is definitely the place to ask (though the chatterbox is an alternative). I think this was broken quite recently, with this innocuous looking change to scratchpad_link:
- my $user = getNodeById($user_id); + my $user = $user_id=~/\D/ ? getNode($user_id, 'user') : getNodeById( +$user_id);
where in one particular case, the passed-in user_id was actually a user node object instead (which getNodeById blithely allows). I find this kind of amusing, that an attempt to make one piece of code more generous in what kinds of input it takes was foiled by another piece of code with a similar generousity :)

I'd rather see routines expect the kind of data they really want, and rely on the caller to do any transformation needed (in the case of the change above, handlelinks_settings).

Update: the problem is fixed (or at least worked-around) now.

Replies are listed 'Best First'.
Re^2: Adding nodes to scratchpad via personal nodelet
by demerphq (Chancellor) on Jun 28, 2004 at 19:08 UTC

    Indeed. My Fault.

    The intention here was to resolve the problem that scratchpad_link is used to generate, well, links to scratchpads. The problem was that if you mistyped the name of the person you were linking to, such as [pad://demrphq] you would a link like Scratch Pad Viewer which seemed odd and counterintuitive as it is now you get demrphq's scratchpad which at least looks more reasonable, is less suprising to the author of the link, and is easily corrected in the text box on SPV. However as the code in handlelinks settings had to do the lookup it meant there was no easy way to pass in the incorrect value. And I actually didnt want to add a new parameter because I know you have plans to redo some of that stuff anyway, so an additional parameter would just cause you more issues. Also I thought it made sense. :-)

    my $user; if (ref $user_id) { $user=$user_id; $user_id=$user->{user_id}; } else { $user = $user_id=~/\D/ ? getNode($user_id, 'user') : getNodeById($u +ser_id); }

    Seems to be the best way to deal with this... (IMNSHO anyway)


      First they ignore you, then they laugh at you, then they fight you, then you win.
      -- Gandhi