Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Arguile's scratchpad

by Arguile (Hermit)
on Jun 04, 2004 at 18:05 UTC ( #361038=scratchpad: print w/ replies, xml ) Need Help??

In response to your retitling nodes and all replies, I thought I'd try flexing my pmdev muscles for the first time. :)

It's a quick untested hack, but should work with only a few minor modifications; thing like how to get form vars in pm, where it should go, if it's even valid.... You know, little stuff like that <g>.

Hope it helps.

# Bredth first listing of all nodes under given root (incl. root). # my $get_children = sub { my $parents = \@_; # Hackery. We should really only accept one id. my @children; my $dbh = $DB->getDatabaseHandle; local $" = ','; while ( @$parents > 0 ) { push @children, @$parents; $parents = $dbh->selectcol_arrayref(qq{ SELECT note_id FROM note WHERE parent_node IN ( @$parents ) }); } return @children; # Returns root at head of list (easier later ;) } # Runs a search and replace on the title of selected nodes. Returns # number of records updated (0 still true). # my $retitle = sub { my $new_title = shift; my $old_title = shift; my @nodes = @_; my $dbh = $DB->getDatabaseHandle; local $" = ','; $dbh->do(qq{ UPDATE note SET title = REPLACE(title, ? , ?) WHERE note_id IN( @nodes ) }, undef, ($old_title, $new_title) ); } my $id = getId($NODE); $retitle_nodes->( 'new_title_var_goes_here', getNodeById($id)->{title} +, $get_children->($id) );

P.S. While I doubt a query-per-node tree traversal (ala list replies) would be faster here -- even with the fact it's prepared -- I can change it if you'd like.


Advanced Sorting - GRT - Guttman Rosler Transform
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (11)
As of 2014-10-23 08:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (125 votes), past polls