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.