NAME
HTML::Menu::TreeView - Create a HTML TreeView from scratch
SYNOPSIS
use HTML::Menu::TreeView qw(Tree);
my @tree =( {
text => 'Folder',
subtree => [
     {
     text => 'treeview Homepage',
     href => 'http://lindnerei.sourceforge.net'
     }
       ],
},);
Tree(\@tree);
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);
FO Syntax
use HTML::Menu::TreeView qw(css jscript preload Tree);
print css();
print jscript();
print preload();
print Tree(\@tree,"Crystal");
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
DESCRIPTION
HTML::Menu::TreeView is a Modul to build an Html TreeView.
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
Sorting of closed folders will work now.
1.12
some fixes (German umlaute help())
1.10
Overwrought
1.08
delete one unnessesary file.
1.07
Drag & drop example edit.pl
new css class dropzone
Overwrought Documentation
Overwrought Images
1.06
svn moved to http://lindnerei.svn.sourceforge.net/viewvc/lindnerei/treeview/
new Images, german Help
language function set it to "de" for german help
german documentation droped
Build install_examples
Public
new
if you use the oo interface you can say:
my $TreeView = new HTML::Menu::TreeView(\@tree, optional style);
and then call Tree without arguments.
print $TreeView->Tree();
css
return the necessary css part without <style></style> tag.
you can set the DocumentRoot if you pass a parameter
css('/document/root/');
you can also include it with:
<link href="/style/Crystal/16/html-menu-treeview/Crystal.css" rel="stylesheet" type="text/css">
for example.
documentRoot
set or get the Document Root.
default: this variable is set during make.
jscript
return the necessary javascript without <script> tag.
you can also include it with:
<script language="JavaScript" type="text/javascript" src="/style/treeview.js"></script>
you can set the Document Root if you pass a parameter
preload
return the necessary javascript for preloading images without <script> tag.
you can also include it with:
<script language="JavaScript" type="text/javascript" src="/style/Crystal/16/html-menu-treeview/preload.js"></script>
or
<script language="JavaScript" type="text/javascript" src="/style/Crystal/preload.js"></script>
if you use different images sizes.
you can set the DocumentRoot if you pass a parameter
size
only for Crystal styles
set or get the size.
16,32,48,64 and 128 are possible values.
Style
set the style in scalar context or get in void context.
Style('simple');
simple = redmond like style.
Crystal = Crystal style (default).
Tree
Tree(\@tree,optional $style);
Returns the html part of the Treeview without javasript and css.
clasic
enable clasic node decoration:
clasic(1);
disable clasic node decoration:
clasic(0);
return the status in void context.
$status = clasic();
columns
set number of columns
columns(3);
return the count in void context.
$count = columns();
or set the captions for the columns
columns("Name","Column 1","Column 2","Column 3");
border
enable border for columns :
border(1);
disable border for columns :
border(0);
return the status in void context.
$status = border();
desc
reverse sorting
enable desc :
desc(1);
disable border:
desc(0);
return the status in void context.
$status = desc();
sortTree
set or unset sorting treeview Items.
default is false.
enable sorting:
sortTree(1);
disable sorting:
sortTree(0);
return the status in void context.
$status = sortTree();
orderBy
set the attribute which is used by sortTree and folderFirst.
orderByColumn
sort the TreeView by Column
orderByColumn(i);
-1 to disable;
folderFirst
set or unset show folders first ?
default is false.
enable show folders first:
folderFirst(1);
disable show folders first:
folderFirst(0);
return the status of this property in void context.
$status = folderFirst();
prefix
prefix used by css.
use this if you want build a offline website
for example:
prefix('.');
return the prefix in void context.
TrOver
enable mouseover
tr.trOver{}
saveTree
saveTree('filename',\@ref); # or saveTree()
default: ./TreeViewDump.pl
loadTree
loadTree('filename') or loadTree()
default: ./TreeViewDump.pl
help
help for link attributes.
return a hashref in void context,
my $hashref =  help();
foreach my $key (sort(keys %{$hashref})){
     print "$key : ", $hashref->{$key} ,$/;
}
or a help Message.
print help('href'),$/;
if you want german help try
language('de')
reserved attributes:
- href
 - 
URI for linked resource.
 - accesskey
 - 
accessibility key character.
 - charset
 - 
char encoding of linked resource.
 - class
 - 
class name or set of class names to an element.
 - coords
 - 
for use with client-side image maps.
 - dir
 - 
the base direction of directionally neutral text.
 - hreflang
 - 
language code.
 - lang
 - 
the base language of an elements attribute values and text content.
 - onblur
 - 
the element lost the focus.
 - ondblclick
 - 
event occurs when the pointing device button is double clicked
 - onclick
 - 
event occurs when the pointing device button is clicked over an element.
 - onfocus
 - 
the element got the focus.
 - onkeydown
 - 
event occurs when a key is pressed down over an element.
 - onkeypress
 - 
event occurs when a key is pressed and released over an element.
 - onkeyup
 - 
event occurs when a key is released over an element.
 - onmousedown
 - 
event occurs when the pointing device button is pressed over an element.
 - onmousemove
 - 
event occurs when the pointing device is moved while it is over an element.
 - onmouseout
 - 
event occurs when the pointing device is moved away from an element.
 - onmouseover
 - 
event occurs when the pointing device is moved onto an element.
 - onmouseup
 - 
event occurs when the pointing device button is released over an element.
 - rel
 - 
forward link types.
 - rev
 - 
reverse link types.
 - shape
 - 
for use with client-side image maps.
 - style
 - 
specifies style information for the current element.
 - tabindex
 - 
position in tabbing order.
 - target
 - 
target frame information.
 - type
 - 
advisory content type.
 - title
 - 
element title.
 - id
 - 
This attribute assigns a name to an element. This name must be unique in a document.
 - addition
 - 
additional text behind the link
 - subtree
 - 
an array of TreeView Items
subtree => [{ text => 'Fo'}, {text => 'Bar'} ] - image.
 - 
a image name, must be placed into /style/mimetypes directory.
 - folderclass :
 - 
only for Crystal styles
possible values:
folderMan, folderVideo,folderCrystal,
folderLocked , folderText, folderFavorite,
folderPrint,folderHtml,
folderImage,folderSound,folderImportant,
folderTar,folderYellow ,folderGray,
folderGreen and folderRed
see http://lindnerei.sourceforge.net/cgi-bin/crystal.pl for a complete list of possible values for folderclass.
 - columns
 - 
an array of columns
columns => [ 1,2,3,4,5]
 - empty.
 - 
set it true if you ant a closed Folder,
which load a location onclick, you must additional set the href attribute.
 
backward compatibility
getDocumentRoot
for backward compatibility.
use documentRoot instead.
setClasic
use clasic() instead.
for backward compatibility.
use a classic node decoration
setDocumentRoot
for backward compatibility.
use documentRoot instead.
set the local path to the style folder.
should be the Document Root of your webserver.
example:
setDocumentRoot('/sv/www/htdocs/');
default: this property is set during make
setModern
use clasic() instead.
for backward compatibility.
use a modern node decoration
setSize
for backward compatibility.
use size instead.
only for Crystal styles
16,32,48,64 and 128 are possible values.
setStyle
for backward compatibility.
use style instead.
setStyle('style');
simple = redmond like style
Crystal = Crystal style
style
set the style.
style('simple');
simple = redmond like style.
Crystal = Crystal style (default).
language
set the language in scalar context, or get in void context.
language('de');
simple = redmond like style.
Crystal = Crystal style (default).
Private
initTree
construct the TreeView called by Tree, new or recursive by appendFolder.
_ffolderFirst
this function is used within initTree for sorting the TreeView if folderFirst(1) is set.
getSelf
this module use of a Lincoln loader like class system.
if the first parameter is a HTML::Menu::TreeView object (oo syntax ) this function returns the given parameters.
or the first parameter it is not a object referenz (fo syntax) it create a new HTML::Menu::TreeView object,
return it as first value and @_ as the second value .
my ($self, @p) = getSelf(@_);
appendFolder
called by initTree(), append a Folder to the treeView()
appendLastFolder
$self->appendLastFolder(\@tree);
called by initTree() if the last item of the (sub)Tree is a folder.
appendEmptyFolder
called by initTree(), append a empty Folder.
appendLastEmptyFolder
$self->appendLastEmptyFolder($node);
called by initTree() if the last item of the (sub)Tree is a folder.
appendNode
$self->appendNode(\$node);
called by initTree() if the current item of the (sub)Tree is a node.
appendLastNode
$self->appendLastNode(\$node);
called by initTree() if the last item of the current (sub)Tree is a node.
SEE ALSO
http://lindnerei.sourceforge.net
AUTHOR
Dirk Lindner <lze@cpan.org>
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 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.