HTML-Menu-TreeView

 view release on metacpan or  search on metacpan

lib/HTML/Menu/TreeView.pm  view on Meta::CPAN

            push @{ $openArrays{$key} }, $id;
        } ## end foreach my $key ( keys %openArrays)
        $tmpref = \@{ $openArrays{$id} };
    } ## end if ( $columns > 0 )
    my $onclick = qq(location.href='$node->{href}');
    $node->{class} = defined $node->{class} ? $node->{class} : "treeviewLink$size";
    my $FolderClass =
      defined $node->{folderclass}
      ? $node->{folderclass} . "Closed$size"
      : "folderClosed$size";
    $node->{title} = defined $node->{title} ? $node->{title} : $node->{text};
    my $tt;
    foreach my $key ( keys %{$node} ) {
        $tt .= $key . '="' . $node->{$key} . '" ' if ( $anker{$key} && $node->{$key} );
    } ## end foreach my $key ( keys %{$node...})
    my $st = $node->{style} =
      ( ( $columns > 0 or defined $node->{addition} ) and not defined $node->{style} ) ? 'style="white-space:nowrap;"' : '';
    my $addon =
      defined $node->{addition}
      ? qq(<table align="left" border="0" cellpadding="0" cellspacing="0" summary="appendLastFolder"  width="100%"><tr><td $st>&#160;<a $tt >$node->{text}</a>&#160;</td><td $st>$node->{addition}</td></tr></table>)
      : "&#160;<a $tt>$node->{text}</a>&#160;";
    my $lastpusnode = $clasic ? "clasicLastPlusNode$size" : "lastPlusNode$size";
    $self->{tree} .= (
        $bTrOver
        ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tree$id">)
        : '<tr>'
      )
      . qq(<td id="$id.node" class="$lastpusnode" onclick="$onclick"><img src="/style/$style/$size/html-menu-treeview/spacer.gif" border="0" width="$size" height="$size" alt="" /></td><td align="left"  valign="top" class="$FolderClass" id="$id.folder...
    if ( $columns > 0 ) {
        my $class = $border ? "columnsFolderBorder$size" : "columnsFolder$size";
        $self->{subtree} .= (
            $bTrOver
            ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tr$id">)
            : qq(<tr id="tr$id">)
        );
        for ( my $i = 0 ; $i < $columns ; $i++ ) {
            if ( defined $node->{columns}[$i] ) {
                my $txt = $node->{columns}[$i];
                $self->{subtree} .= qq(<td class="$class">$txt</td>);
            } ## end if ( defined $node->{columns...})
        } ## end for ( my $i = 0 ; $i < ...)
        $self->{subtree} .= '</tr>';
        for ( my $i = 0 ; $i < @$tmpref ; $i++ ) {
            $self->{js}{$ty}[$i] = $$tmpref[$i];
        } ## end for ( my $i = 0 ; $i < ...)
        undef @$tmpref;
    } ## end if ( $columns > 0 )
} ## end sub appendLastEmptyFolder

=head2 appendNode

$self->appendNode(\$node);

called by initTree() if the current item of the (sub)Tree is a node.

=cut

sub appendNode {
    my $self = shift;
    my $node = shift;
    $node->{image} = defined $node->{image} ? $node->{image} : 'link_overlay.png';
    $node->{class} = defined $node->{class} ? $node->{class} : "treeviewLink$size";
    $node->{title} = defined $node->{title} ? $node->{title} : $node->{text};
    $id++;
    if ( $columns > 0 ) {
        foreach my $key ( keys %openArrays ) {
            push @{ $openArrays{$key} }, $id;
        } ## end foreach my $key ( keys %openArrays)
    } ## end if ( $columns > 0 )
    my $tt;
    foreach my $key ( keys %{$node} ) {
        $tt .= $key . '="' . $node->{$key} . '" ' if ( $anker{$key} && $node->{$key} );
    } ## end foreach my $key ( keys %{$node...})
    my $st = $node->{style} =
      ( ( $columns > 0 or defined $node->{addition} ) and not defined $node->{style} ) ? 'style="white-space:nowrap;"' : '';
    my $addon =
      defined $node->{addition}
      ? qq(<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td $st>&#160;<a $tt>$node->{text}</a>&#160;</td><td $st>$node->{addition}</td></tr></table>)
      : "&#160;<a $tt>$node->{text}</a>";
    $self->{tree} .= (
        $bTrOver
        ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tree$id">)
        : '<tr>'
      )
      . qq(<td class="node$size"><img src="/style/$style/$size/html-menu-treeview/spacer.gif" border="0" width="$size" height="$size" alt="" align="middle"/></td><td align="left"  style="background-image:url('/style/$style/$size/mimetypes/$node->{ima...
    if ( $columns > 0 ) {
        $self->{subtree} .= (
            $bTrOver
            ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tr$id">)
            : qq(<tr id="tr$id">)
        );
        my $class = $border ? "columnsNodeBorder$size" : "columnsNode$size";
        for ( my $i = 0 ; $i < $columns ; $i++ ) {
            if ( defined $node->{columns}[$i] ) {
                my $txt = $node->{columns}[$i];
                $self->{subtree} .= qq(<td class="$class">$txt</td>);
            } ## end if ( defined $node->{columns...})
        } ## end for ( my $i = 0 ; $i < ...)
        $self->{subtree} .= '</tr>';
    } ## end if ( $columns > 0 )
} ## end sub appendNode

=head2 appendLastNode

$self->appendLastNode(\$node);

called by initTree() if the last item of the current (sub)Tree is a node.

=cut

sub appendLastNode {
    my $self = shift;
    my $node = shift;
    $node->{image} = defined $node->{image} ? $node->{image} : 'link_overlay.png';
    $node->{class} = defined $node->{class} ? $node->{class} : "treeviewLink$size";
    $node->{title} = defined $node->{title} ? $node->{title} : $node->{text};
    $id++;
    if ( $columns > 0 ) {
        foreach my $key ( keys %openArrays ) {
            push @{ $openArrays{$key} }, $id;
        } ## end foreach my $key ( keys %openArrays)
    } ## end if ( $columns > 0 )
    my $tt;
    foreach my $key ( keys %{$node} ) {
        $tt .= $key . '="' . $node->{$key} . '" ' if ( $anker{$key} && $node->{$key} );
    } ## end foreach my $key ( keys %{$node...})
    my $st = $node->{style} =
      ( ( $columns > 0 or defined $node->{addition} ) and not defined $node->{style} ) ? 'style="white-space:nowrap;"' : '';
    my $addon =
      defined $node->{addition}
      ? qq(<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td $st>&#160;<a $tt>$node->{text}</a>&#160;</td><td $st>$node->{addition}</td></tr></table>)
      : "&#160;<a $tt>$node->{text}</a>";
    $self->{tree} .= (
        $bTrOver
        ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tree$id">)
        : '<tr>'
      )
      . qq(<td class="lastNode$size"><img src="/style/$style/$size/html-menu-treeview/spacer.gif" border="0" width="$size" height="$size" alt=""/></td><td align="left"  style="background-image:url('/style/$style/$size/mimetypes/$node->{image}');" cla...
    if ( $columns > 0 ) {
        my $class = $border ? "columnsLastNodeBorder$size" : "columnsLastNode$size";
        $self->{subtree} .= (
            $bTrOver
            ? qq(<tr onmouseover = "trOver('$id');" onmouseout="trUnder('$id');" id="tr$id">)
            : qq(<tr id="tr$id">)
        );
        for ( my $i = 0 ; $i < $columns ; $i++ ) {
            if ( defined $node->{columns}[$i] ) {
                my $txt = $node->{columns}[$i];
                $self->{subtree} .= qq(<td class="$class">$txt</td>);
            } ## end if ( defined $node->{columns...})
        } ## end for ( my $i = 0 ; $i < ...)
        $self->{subtree} .= '</tr>';
    } ## end if ( $columns > 0 )
} ## end sub appendLastNode

=head1 SEE ALSO

http://lindnerei.sourceforge.net

=head1 AUTHOR

Dirk Lindner <lze@cpan.org>

=head1 LICENSE

LGPL

Copyright (C) 2018 by Hr. Dirk Lindner

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation;
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of



( run in 0.562 second using v1.01-cache-2.11-cpan-63c85eba8c4 )