HTML-Menu-TreeView
view release on metacpan or search on metacpan
lib/HTML/Menu/TreeView.pm view on Meta::CPAN
onmousedown => 'Maus wird gedrückt',
onmousemove => 'Maus wird bewegt',
onmouseout => 'Maus verlässt den Anker',
onmouseover => 'Maus betritt den Anker',
onmouseup => 'Maus wird losgelassen',
rel => 'Logische Vorwärtsbeziehung <a href="http://de.selfhtml.org/html/verweise/typisierte.htm#sprache_zeichenkodierug">siehe selfhtml</a>',
rev => 'Logische Rückwärtsbeziehung',
shape => 'Imagemaps',
style => 'Formatierungs Informationen',
tabindex => 'Tabstopp position',
target => 'Ziel Frame Angabe',
type => 'Content-type',
title => 'Titel',
id => 'Identifikator. Muss einmalig im Dokument sein',
);
=head1 NAME
HTML::Menu::TreeView - Create a HTML TreeView from scratch
=head1 SYNOPSIS
use HTML::Menu::TreeView qw(Tree);
my @tree =( {
text => 'Folder',
subtree => [
{
text => 'treeview Homepage',
href => 'http://lindnerei.sourceforge.net'
}
],
},);
Tree(\@tree);
=head2 OO Syntax
use HTML::Menu::TreeView;
use strict;
my @tree =(
{
image => 'tar.png',
text => 'Node'
},
);
my $Treeview = new HTML::Menu::TreeView();
print $Treeview->css("/srv/www/httpdocs");
print $Treeview->jscript();
print $Treeview->preload();
print $Treeview->Tree(\@tree);
=head2 FO Syntax
use HTML::Menu::TreeView qw(css jscript preload Tree);
print css();
print jscript();
print preload();
print Tree(\@tree,"Crystal");
=head2 function sets
Here is a list of the function sets you can import:
:all
Tree css jscript clasic preload help folderFirst size documentRoot loadTree saveTree sortTree orderBy prefix Style orderByColumn border desc language
:recommend
Tree css jscript clasic preload folderFirst size Style documentRoot loadTree saveTree sortTree prefix desc
:standart
Tree css jscript preload size Style documentRoot clasic,
:backward
setDocumentRoot getDocumentRoot setSize setClasic setStyle style setModern
:columns
border columns orderByColumn orderBy
=head1 DESCRIPTION
HTML::Menu::TreeView is a Modul to build an Html TreeView.
=head1 Changes
1.19
required perl Version Build.pm and css img class
1.18
like 1.17 but at some other places
1.17
#defined @{@$tree[$i]->{subtree}} don't works with perl > 5.20
so try test it with ref @$tree[$i]->{subtree}[0].
1.14
after a few years there a only a few bugfixes.
1.13
lib/HTML/Menu/TreeView.pm view on Meta::CPAN
$self->documentRoot( $p[0] ) if ( defined $p[0] );
my $fh = gensym;
my $file = "$path/style/$style/$size/html-menu-treeview/preload.js";
open $fh, $file or warn "HTML::Menu::TreeView::preload $/ $! $/";
seek $fh, 0, 0;
my @lines = <$fh>;
close $fh;
my $preload;
foreach my $l (@lines) {
$l =~ s?/style/?style/?g;
$preload .= $l;
} ## end foreach my $l (@lines)
return $preload;
} ## end sub preload
=head2 size
only for Crystal styles
set or get the size.
16,32,48,64 and 128 are possible values.
=cut
sub size {
my ( $self, @p ) = getSelf(@_);
if ( defined $p[0] && $p[0] =~ /(16|22|32|48|64|128)/ ) { $size = $1; }
else { return $size; }
} ## end sub size
=head2 Style
set the style in scalar context or get in void context.
Style('simple');
simple = redmond like style.
Crystal = Crystal style (default).
=cut
sub Style {
my ( $self, @p ) = getSelf(@_);
if ( defined $p[0] ) {
if ( -e $path . '/style/' . $p[0] ) { $style = $p[0]; }
else {
warn "HTML::Menu::TreeView::Style $/ $path/style/$p[0] not found $/ $! $/";
} ## end else [ if ( -e $path . '/style/'...)]
} else {
return $style;
} ## end else [ if ( defined $p[0] ) ]
} ## end sub Style
=head2 Tree
Tree(\@tree,optional $style);
Returns the html part of the Treeview without javasript and css.
=cut
sub Tree {
my ( $self, @p ) = getSelf(@_);
$style = $p[1] if ( defined $p[1] );
@TreeView = @p ? @p : @TreeView;
$self->initTree(@TreeView) if (@TreeView);
my $r;
if ( defined $self->{subtree} ) {
$r .= qq(<script type="text/javascript">\n//<!-- \nwindow.folders = new Array();\n);
foreach my $key ( keys %{ $self->{js} } ) {
$r .= "folders['$key']= new Array(";
for ( my $i = 0 ; $i < @{ $self->{js}{$key} } ; $i++ ) {
$r .= '"' . $self->{js}{$key}[$i] . '"';
$r .= ',' if ( $i + 1 != @{ $self->{js}{$key} } );
} ## end for ( my $i = 0 ; $i < ...)
$r .= ");\n";
} ## end foreach my $key ( keys %{ $self...})
$r .= "//-->\n</script>";
} ## end if ( defined $self->{subtree...})
$r .=
qq(<table border="0" cellpadding="0" cellspacing="0" summary="Tree" width="100%"><tr><td class="subtree"><table cellpadding="0" cellspacing="0" align="left" border="0" summary="Tree" width="100%" class="treeview$size"><colgroup><col width="$size"/><...
if (@caption) { #defined
my $class = $border ? "captionBorder$size" : "caption$size";
$r .= qq(<tr><td class="$class"></td><td class="$class">$caption[0]</td></tr>);
} ## end if (@caption)
$r .= $self->{tree} . '</table></td>';
if ( defined $self->{subtree} ) {
$r .= '<td class="subtree"><table align="left" border="0" cellpadding="0" cellspacing="0" summary="subTree" width="100%">';
if (@caption) { #defined
my $class = $border ? "captionBorder$size" : "caption$size";
$r .= '<tr>';
for ( my $i = 1 ; $i <= $#caption ; $i++ ) {
$r .= qq(<td class="$class">$caption[$i]</td>);
} ## end for ( my $i = 1 ; $i <=...)
$r .= '</tr>';
} ## end if (@caption)
undef @caption;
$r .= $self->{subtree} . '</table></td>';
} ## end if ( defined $self->{subtree...})
$r .= '</tr></table>';
return $r;
} ## end sub Tree
=head2 clasic
enable clasic node decoration:
clasic(1);
disable clasic node decoration:
clasic(0);
return the status in void context.
$status = clasic();
=cut
( run in 0.515 second using v1.01-cache-2.11-cpan-7e98afdb40f )