App-Office-CMS
view release on metacpan or search on metacpan
lib/App/Office/CMS/Database/Menu.pm view on Meta::CPAN
} # End of get_node_by_name;
# --------------------------------------------------
sub pretty_print
{
my($self, $message, $tree) = @_;
$self -> log(debug => "traverse($message, ...)");
$tree -> walk_down
({
callback => \&pretty_print_node,
_depth => 0,
self => $self,
});
} # End of pretty_print.
# --------------------------------------------------
# Warning: Do not add $self.
sub pretty_print_node
{
my($node, $opt) = @_;
my($id) = ${$node -> attribute}{id} || '';
$$opt{self} -> log(debug => ' ' x $$opt{_depth} . $node -> name . " ($id)");
return 1;
} # End of pretty_print_node.
# --------------------------------------------------
sub save_menu_tree
{
my($self, $context, $tree, $extra) = @_;
$self -> log(debug => "save_menu_tree($context, ...)");
my($manager) = Tree::DAG_Node::Persist -> new
(
context => $self -> context, # Not $context.
dbh => $self -> db -> dbh,
table_name => $self -> table_name,
);
$manager -> write($tree, $extra);
$self -> log(debug => "Saved ($context) menu tree");
# Return the tree so the nodes' ids are available to the caller.
return $manager -> read;
} # End of save_menu_tree.
# --------------------------------------------------
sub update
{
my($self, $design, $tree, $extra) = @_;
$self -> log(debug => 'update(..., $tree, ...)');
$self -> context($self -> db -> build_context($$design{site_id}, $$design{id}) );
return $self -> save_menu_tree('update', $tree, $extra);
} # End of update.
# --------------------------------------------------
1;
( run in 0.429 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )