menu 2.02
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1285
Javascript::Menu 2.02
Javascript::Menu is a NumberedTree that generates HTML and Javascript code for a menu. more>>
Javascript::Menu is a NumberedTree that generates HTML and Javascript code for
a menu.
SYNOPSIS
use Javascript::Menu;
# Give it something to do (example changes the menus caption):
my $action = sub {
my $self = shift;
my ($level, $unique) = @_;
my $value = $self->getValue;
return "getElementById(caption_$unique).innerHTML=$value";
};
# Build the tree:
my $menu = Javascript::Menu->convert(tree => $otherTree, action => $action);
my $menu = Javascript::Menu->readDB(source_name => $table, source => $dbh,
action => $action);
my $menu = Javascript::Menu->new(value => Please select a parrot,
action => $action);
my $blue = $menu->append(value => Norwegian Blue);
$blue->append(value => Pushing up the daisies);
$menu->append(value => A Snail);
# Or maybe you just want a navigational menu?
my $menu = Javascript::Menu->new(value => Please select a prime minister);
$menu->append(value => Ariel Sharon,
URL => www.corruption.org/ariel_sharon.htm);
$menu->append(value => Benjamin Netanyahu,
URL => www.corruption.org/bibi.htm);
$menu->append(value => Shaul Mofaz, URL => www.martial_law.org);
# Print it out as a right-to-left menu:
my $css = $menu->buildCSS($menu->reasonableCSS);
print $cgi->start_html(-script => $menu->baseJS(rtl),
-style => $css); #CSS plays an important role.
print $tree->getHTML;
Javascript::Menu is an object that helps in creating the HTML, Javascript, and some of the CSS required for a table-based menu. There are a few other modules that deal with menus, But as I browsed through them, I found that none of them exactly fitted my needs. So I designed this module, with the following goals in mind:
Flexibility
The main feature of this module is the ability to supply all nodes or any specific node with a subroutine that is activated in time of the code generation to help decide what the item will do when it is clicked. This allows customisation far beyond associating a link with every item. Multy-level selection menus become very easy to do (and this is, in fact, what I needed when I started writing this).
I18n
Working with i18n (internationalization) can be a big headache. Working with Hebrew (or Arabic) forces you not only to change your charachters, but also to change your direction of writing. I incorporated into this module the ability to produce right-to-left menus and tested it using a legacy ASCII-based encoding (iso-8859-8).
Object Hierarchy
I designed the module to work with two other modules of mine, Tree::Numbered and Tree::Numbered::DB, which simplify the task of building the menu and allow for construction of a menu from database information.
The current version adds support for highlighting the item thats hovered over. Youll find that having made some preliminary steps, like tweaking the CSS to look the way you like it to, the rest is fairly easy.
<<lessa menu.
SYNOPSIS
use Javascript::Menu;
# Give it something to do (example changes the menus caption):
my $action = sub {
my $self = shift;
my ($level, $unique) = @_;
my $value = $self->getValue;
return "getElementById(caption_$unique).innerHTML=$value";
};
# Build the tree:
my $menu = Javascript::Menu->convert(tree => $otherTree, action => $action);
my $menu = Javascript::Menu->readDB(source_name => $table, source => $dbh,
action => $action);
my $menu = Javascript::Menu->new(value => Please select a parrot,
action => $action);
my $blue = $menu->append(value => Norwegian Blue);
$blue->append(value => Pushing up the daisies);
$menu->append(value => A Snail);
# Or maybe you just want a navigational menu?
my $menu = Javascript::Menu->new(value => Please select a prime minister);
$menu->append(value => Ariel Sharon,
URL => www.corruption.org/ariel_sharon.htm);
$menu->append(value => Benjamin Netanyahu,
URL => www.corruption.org/bibi.htm);
$menu->append(value => Shaul Mofaz, URL => www.martial_law.org);
# Print it out as a right-to-left menu:
my $css = $menu->buildCSS($menu->reasonableCSS);
print $cgi->start_html(-script => $menu->baseJS(rtl),
-style => $css); #CSS plays an important role.
print $tree->getHTML;
Javascript::Menu is an object that helps in creating the HTML, Javascript, and some of the CSS required for a table-based menu. There are a few other modules that deal with menus, But as I browsed through them, I found that none of them exactly fitted my needs. So I designed this module, with the following goals in mind:
Flexibility
The main feature of this module is the ability to supply all nodes or any specific node with a subroutine that is activated in time of the code generation to help decide what the item will do when it is clicked. This allows customisation far beyond associating a link with every item. Multy-level selection menus become very easy to do (and this is, in fact, what I needed when I started writing this).
I18n
Working with i18n (internationalization) can be a big headache. Working with Hebrew (or Arabic) forces you not only to change your charachters, but also to change your direction of writing. I incorporated into this module the ability to produce right-to-left menus and tested it using a legacy ASCII-based encoding (iso-8859-8).
Object Hierarchy
I designed the module to work with two other modules of mine, Tree::Numbered and Tree::Numbered::DB, which simplify the task of building the menu and allow for construction of a menu from database information.
The current version adds support for highlighting the item thats hovered over. Youll find that having made some preliminary steps, like tweaking the CSS to look the way you like it to, the rest is fairly easy.
Download (0.025MB)
Added: 2006-06-12 License: Perl Artistic License Price:
1235 downloads
AlefMentor 2.02
AlefMentor is a Learning Management System. more>>
AlefMentor is a Learning Management System. AlefMentor project makes it easy for you to create your online courses and tests. All users of the system can communicate and cooperate with each other.
There is no limit on the number of courses, instructors, students, or administrators in the system. An online management system is provided for administrators, students, instructors, and consumers. It is very easy to create, update, and select courses.
Enhancements:
- It is possible to create new groups of users.
- One user can be a member of menu groups.
- Ts_Mailer allows you to send attachments in your email messages.
- It is possible to send email to a selected group of users.
<<lessThere is no limit on the number of courses, instructors, students, or administrators in the system. An online management system is provided for administrators, students, instructors, and consumers. It is very easy to create, update, and select courses.
Enhancements:
- It is possible to create new groups of users.
- One user can be a member of menu groups.
- Ts_Mailer allows you to send attachments in your email messages.
- It is possible to send email to a selected group of users.
Download (2.7MB)
Added: 2006-09-04 License: The PHP License Price:
1146 downloads
Menu Buddy 0.0.2
Menu Buddy currently comprises a couple of Python scripts for creating GNOME panel menus. more>>
Menu Buddy plugin currently comprises a couple of Python scripts for creating GNOME panel menus from a directory hierarchy of music files.
These menus can be used to play or enqueue songs in XMMS, as well as pause or skip XMMS.
These scripts are not terribly powerful yet, but there is potential for a signficantly more flexible system of menu-creation that allows automatic construction of many different kinds of menus based on directory hierarchies.
menu_buddy is a small script for scanning a hierarchy of music files and creating a set of Gnome menus that can direct xmms to play those files. Instead of going through the command line or whatever, menu_buddy lets you play/enqueue files in xmms straight from your menu. I find this pretty convenient.
The command line for menu_buddy is as follows:
menu_buddy < source dir > < dest dir >
where:
< source dir >: The top of a hierarchy of directories containing the files
< dest dir >: The top of a directory to write the menu files into
menu_buddy works with the assumption that you have your music stored under one main music directory, using some meaningful hierarchy, and that theres only music stored down there. menu_buddy doesnt do any sort of file-type checking and assumes that everything under is fair game for playing in xmms.
What menu_buddy does it this: it constructs a menu hierarchy that directly matches the hierarchy under such that any directory or tree thereof can be played or enqueued in xmms. Likewise, at the top of the menu structure, it creates menu option which allow you to pause, start, or skip forward/backward in xmms. The interaction with xmms is purely in terms of command line options that you can pass to xmms...there is no special linking or whatever.
So, for example, lets assume you have all of your music in under the directory "/music", with top-level folders for different genres (i.e. /music/rock, /music/polka, etc.). Inside each genre, you have your files sorted first by artist, then by album (i.e. /music/rock/faith_no_more/the_real_thing, /music/polka/the_polka_kings/greatest_hits). The organization you have is really unimportant, but bear with me here.
Further, lets assume that your system lets you create new gnome menus by putting menu files in ~/.gnome/apps (this is how things work on my system, but honestly Ive done next to zero research into this topic...it may vary (wildly) on your system, so I suggest you figure it out for yourself). Then, the following command will create a new menu hierarchy in your "favorites" menu called "Muzik" which allows you play/enqueue your music:
menu_buddy /music ~/.gnome/apps/Muzik
Thats it. It may take a few seconds to churn through your music files, depending on other system load and how much music you have. You need to be able, of course, to write to the output directory you specify, but since it will typically be in your home directory this should not be a problem.
Enhancements:
- added GPL stuff to source files
<<lessThese menus can be used to play or enqueue songs in XMMS, as well as pause or skip XMMS.
These scripts are not terribly powerful yet, but there is potential for a signficantly more flexible system of menu-creation that allows automatic construction of many different kinds of menus based on directory hierarchies.
menu_buddy is a small script for scanning a hierarchy of music files and creating a set of Gnome menus that can direct xmms to play those files. Instead of going through the command line or whatever, menu_buddy lets you play/enqueue files in xmms straight from your menu. I find this pretty convenient.
The command line for menu_buddy is as follows:
menu_buddy < source dir > < dest dir >
where:
< source dir >: The top of a hierarchy of directories containing the files
< dest dir >: The top of a directory to write the menu files into
menu_buddy works with the assumption that you have your music stored under one main music directory, using some meaningful hierarchy, and that theres only music stored down there. menu_buddy doesnt do any sort of file-type checking and assumes that everything under is fair game for playing in xmms.
What menu_buddy does it this: it constructs a menu hierarchy that directly matches the hierarchy under such that any directory or tree thereof can be played or enqueued in xmms. Likewise, at the top of the menu structure, it creates menu option which allow you to pause, start, or skip forward/backward in xmms. The interaction with xmms is purely in terms of command line options that you can pass to xmms...there is no special linking or whatever.
So, for example, lets assume you have all of your music in under the directory "/music", with top-level folders for different genres (i.e. /music/rock, /music/polka, etc.). Inside each genre, you have your files sorted first by artist, then by album (i.e. /music/rock/faith_no_more/the_real_thing, /music/polka/the_polka_kings/greatest_hits). The organization you have is really unimportant, but bear with me here.
Further, lets assume that your system lets you create new gnome menus by putting menu files in ~/.gnome/apps (this is how things work on my system, but honestly Ive done next to zero research into this topic...it may vary (wildly) on your system, so I suggest you figure it out for yourself). Then, the following command will create a new menu hierarchy in your "favorites" menu called "Muzik" which allows you play/enqueue your music:
menu_buddy /music ~/.gnome/apps/Muzik
Thats it. It may take a few seconds to churn through your music files, depending on other system load and how much music you have. You need to be able, of course, to write to the output directory you specify, but since it will typically be in your home directory this should not be a problem.
Enhancements:
- added GPL stuff to source files
Download (0.003MB)
Added: 2006-04-14 License: GPL (GNU General Public License) Price:
1288 downloads
simple_scan 2.02
simple_scan Perl module can scan a set of Web pages for strings present/absent. more>>
simple_scan Perl module can scan a set of Web pages for strings present/absent.
ABSTRACT
App::SimpleScan - Mini-language for website testing
SYNOPSIS
simple_scan [--generate] [--run]
[--define key="value value ..." ] [--override] [--defer]
[--debug]
[--warn]
[--no-agent]
[--autocache]
[--status]
{file file file ...}
USAGE
# Run the tests in the files supplied on the command line.
# --run (or -run; were flexible) is assumed if you give no switches.
% simple_scan file1 file2 file3
# Generate a set of tests and save them, then run them.
% | simple_scan --generate > pipe_scan.t
# Run one simple test
% echo "http://yahoo.com yahoo Y Look for yahoo.com" | simple_scan -run
simple_scan is an extensible "little language" for static web page testing. It allows you to define tests in terms of test specs (which tell simple_scan where to go and what to look for there) and pragmas (which define string substitutions, or alter the way that simple_scan runs its tests).
simple_scan is designed to be easy to use. If you know where your page is (what URL) and can write a basic regular expression to match text on that page, you can use simple_scan.
simple_scan itself is based on a pluggable Perl class; more sophisticated users can install plugins to extend the language itself, or even the command-line options that the simple_scan command accepts.
Low-level access to web pages is done via WWW::Mechanize::Pluggable and Test::WWW::Simple, so its even possible to build new methods to access your data into the language by writing plugins for Mech and simple_scan.
simple_scan is meant to be a simple web testing language, so it doesnt implement any control structures. You declare what tests are to be run, and simple_scan then runs them all, telling you at the end which tests passed and which didnt. It uses TAP (Test Anything Protocol) to report on the tests, meaning that any Test::Harness-based program can read and interpret the output.
<<lessABSTRACT
App::SimpleScan - Mini-language for website testing
SYNOPSIS
simple_scan [--generate] [--run]
[--define key="value value ..." ] [--override] [--defer]
[--debug]
[--warn]
[--no-agent]
[--autocache]
[--status]
{file file file ...}
USAGE
# Run the tests in the files supplied on the command line.
# --run (or -run; were flexible) is assumed if you give no switches.
% simple_scan file1 file2 file3
# Generate a set of tests and save them, then run them.
% | simple_scan --generate > pipe_scan.t
# Run one simple test
% echo "http://yahoo.com yahoo Y Look for yahoo.com" | simple_scan -run
simple_scan is an extensible "little language" for static web page testing. It allows you to define tests in terms of test specs (which tell simple_scan where to go and what to look for there) and pragmas (which define string substitutions, or alter the way that simple_scan runs its tests).
simple_scan is designed to be easy to use. If you know where your page is (what URL) and can write a basic regular expression to match text on that page, you can use simple_scan.
simple_scan itself is based on a pluggable Perl class; more sophisticated users can install plugins to extend the language itself, or even the command-line options that the simple_scan command accepts.
Low-level access to web pages is done via WWW::Mechanize::Pluggable and Test::WWW::Simple, so its even possible to build new methods to access your data into the language by writing plugins for Mech and simple_scan.
simple_scan is meant to be a simple web testing language, so it doesnt implement any control structures. You declare what tests are to be run, and simple_scan then runs them all, telling you at the end which tests passed and which didnt. It uses TAP (Test Anything Protocol) to report on the tests, meaning that any Test::Harness-based program can read and interpret the output.
Download (0.053MB)
Added: 2007-06-08 License: Perl Artistic License Price:
868 downloads
AI::Menu 0.01
AI::Menu is a Perl object that generates Tree::Nary objects from directed graphs or a description of the function set. more>>
AI::Menu is a Perl object that generates Tree::Nary objects from directed graphs or a description of the function set.
The algorithm is not very efficient (approximately O(F^6), F being the number of functions). It is also not quite as intelligent as it should be. You should cache the results instead of repeatedly calculating them.
As the algorithm is optimized or more efficient algorithms are found, they will be incorporated. The interface for generating the trees should not change too much. The resulting object might become a Tree::Nary object encased in an AI::Menu object.
SYNOPSIS
use AI::Menu;
my $factory = new AI::Menu::Factory;
my $menu = $factory->generate($hash_of_functions);
my $menu = $factory->generate($hash_of_functions, $hash_of_categories);
my $menu = $factory->generate($graph);
METHODS
All of the following methods (except generate) are available in the new function when creating the AI::Menu::Factory object.
generate
This function does some housekeeping before calling a configurable module to generate the tree.
If called with a single hash reference, the hash is assumed to be a list of functions mapping to array references containing a list of categories. It is further assumed that the sets of function names and category names are disjoint. A closure is created for the leaf_q function which returns true if its argument is a key in the hash reference. The complete graph is created from this single hash reference: if a category can reach another category through a function, then an edge is inserted between the two categories. This edge is bidirectional.
If called with two hash references, the first hash is treated as before, but the second hash reference is considered a mapping of categories to categories. This second hash is used instead of automatically generating the information from the first hash.
If called with a single object that is not a hash reference, then the argument is considered a graph object (usually of Graph::Directed). The leaf_q function will need to be defined.
leaf_q
This function returns true if the argument represents a function (leaf in the graph). It returns false if the argument represents a category. This may be set either when the AI::Menu::Factory object is created or through a method call. The method call with no argument returns the current function.
maker
This is the package used to create the menu from the graph. The following call is made:
my $menu = $self -> {maker} -> new(
width => $self->{width},
weight_f => $self -> {weight_f},
leaf_q => $leafq,
);
return $menu -> generate_tree($g, $optscore);
The $optscore value is the score for the optimum tree. Once a tree is found with this score, searching should stop.
new
Creates an AI::Menu::Factory object. Optional arguments are key/value pairs taken from this list of methods except for generate and new.
weight_f
This function is used to calculate the edge weights in the graph. It is called with four arguments: the object generating the tree, the graph object, the originating vertex, the destination vertex. The function should return undef for an infinite weight.
width
This is the desired number of children per node. The optimal number (and default) is three.
<<lessThe algorithm is not very efficient (approximately O(F^6), F being the number of functions). It is also not quite as intelligent as it should be. You should cache the results instead of repeatedly calculating them.
As the algorithm is optimized or more efficient algorithms are found, they will be incorporated. The interface for generating the trees should not change too much. The resulting object might become a Tree::Nary object encased in an AI::Menu object.
SYNOPSIS
use AI::Menu;
my $factory = new AI::Menu::Factory;
my $menu = $factory->generate($hash_of_functions);
my $menu = $factory->generate($hash_of_functions, $hash_of_categories);
my $menu = $factory->generate($graph);
METHODS
All of the following methods (except generate) are available in the new function when creating the AI::Menu::Factory object.
generate
This function does some housekeeping before calling a configurable module to generate the tree.
If called with a single hash reference, the hash is assumed to be a list of functions mapping to array references containing a list of categories. It is further assumed that the sets of function names and category names are disjoint. A closure is created for the leaf_q function which returns true if its argument is a key in the hash reference. The complete graph is created from this single hash reference: if a category can reach another category through a function, then an edge is inserted between the two categories. This edge is bidirectional.
If called with two hash references, the first hash is treated as before, but the second hash reference is considered a mapping of categories to categories. This second hash is used instead of automatically generating the information from the first hash.
If called with a single object that is not a hash reference, then the argument is considered a graph object (usually of Graph::Directed). The leaf_q function will need to be defined.
leaf_q
This function returns true if the argument represents a function (leaf in the graph). It returns false if the argument represents a category. This may be set either when the AI::Menu::Factory object is created or through a method call. The method call with no argument returns the current function.
maker
This is the package used to create the menu from the graph. The following call is made:
my $menu = $self -> {maker} -> new(
width => $self->{width},
weight_f => $self -> {weight_f},
leaf_q => $leafq,
);
return $menu -> generate_tree($g, $optscore);
The $optscore value is the score for the optimum tree. Once a tree is found with this score, searching should stop.
new
Creates an AI::Menu::Factory object. Optional arguments are key/value pairs taken from this list of methods except for generate and new.
weight_f
This function is used to calculate the edge weights in the graph. It is called with four arguments: the object generating the tree, the graph object, the originating vertex, the destination vertex. The function should return undef for an infinite weight.
width
This is the desired number of children per node. The optimal number (and default) is three.
Download (0.006MB)
Added: 2007-07-14 License: Perl Artistic License Price:
833 downloads
Rover 2.02
Rover provides a means of executing commands on remote machines via SSH, Telnet, or Rlogin. more>>
Rover project provides a means of executing commands on remote machines via SSH, Telnet, or Rlogin.
Connections are made and then managed using the Expect for Perl module. Rover can process many hosts in parallel. It comes with two interface programs, rover and rovergtk.
The first is a commandline tool with a built-in shell and batching capabilities; the other uses a Gtk interface to configure and use Rover.
<<lessConnections are made and then managed using the Expect for Perl module. Rover can process many hosts in parallel. It comes with two interface programs, rover and rovergtk.
The first is a commandline tool with a built-in shell and batching capabilities; the other uses a Gtk interface to configure and use Rover.
Download (0.054MB)
Added: 2006-08-23 License: Artistic License Price:
1158 downloads
k-menu 0.9
k-menu is a SuperKaramba theme that emulates KDE kicker. more>>
k-menu is a SuperKaramba theme that emulates KDE kicker.
<<less Download (0.007MB)
Added: 2006-07-06 License: GPL (GNU General Public License) Price:
1207 downloads
DOM Menu 0.3.2
DOM Menu is a hierarchical JavaScript popup menus. more>>
DOM Menu allows developers to add dynamic, hierarchical popup menus on their web pages. The direction of the menu can either be horizontal or vertical and the menu can open (or popout) in either direction. It has both screen edge detection and < select > element detection (for browsers that cannot hide these form elements).
The styles for the menu items are contr olled almost entirely through CSS and the menus are created/hidden using the DOM (Document Object M odel).
Menu configuration is done using a custom Hash() class and is very portable from a PHP type array structure. The menus attempt to follow the look and feel of well known GUI toolkit menus.
Version restrictions:
- cannot use opposite direction to open
- opera 7 having difficulty with table (need to work around)
Enhancements:
- added support for IE 5.0
- fixed problem when submenu was deactivated and parent would highlight
- added a converter from phplayersmenu
<<lessThe styles for the menu items are contr olled almost entirely through CSS and the menus are created/hidden using the DOM (Document Object M odel).
Menu configuration is done using a custom Hash() class and is very portable from a PHP type array structure. The menus attempt to follow the look and feel of well known GUI toolkit menus.
Version restrictions:
- cannot use opposite direction to open
- opera 7 having difficulty with table (need to work around)
Enhancements:
- added support for IE 5.0
- fixed problem when submenu was deactivated and parent would highlight
- added a converter from phplayersmenu
Download (0.045MB)
Added: 2005-05-05 License: LGPL (GNU Lesser General Public License) Price:
1633 downloads
Spamfilter 2.02
Spamfilter is meant to be used via the .qmail files that the qmail mail system uses to control what to do with incoming emails. more>>
Spamfilter project is meant to be used via the .qmail files that the qmail mail system uses to control what to do with incoming emails. This program will give you the opportunity to control which mails you want to receive and which are to be thrown away.
It does this by checking if the mail is directly addressed or not, and then checking various configuration files to see what to do. The two most important files are .allow and .deny that should reside in your home directory.
.allow will let the addresses defined in it through even if they are not directly addressed. .deny will deny the addresses defined in it even if they have mailed you directly.
Sten Donslund has made a very interesting patch that will be made into a new version later.
<<lessIt does this by checking if the mail is directly addressed or not, and then checking various configuration files to see what to do. The two most important files are .allow and .deny that should reside in your home directory.
.allow will let the addresses defined in it through even if they are not directly addressed. .deny will deny the addresses defined in it even if they have mailed you directly.
Sten Donslund has made a very interesting patch that will be made into a new version later.
Download (0.009MB)
Added: 2007-06-05 License: GPL (GNU General Public License) Price:
872 downloads
HTML::Lint 2.02
HTML::Lint can check for HTML errors in a string or file. more>>
HTML::Lint can check for HTML errors in a string or file.
SYNOPSIS
my $lint = HTML::Lint->new;
$lint->only_types( HTML::Lint::STRUCTURE );
$lint->parse( $data );
$lint->parse_file( $filename );
my $error_count = $lint->errors;
foreach my $error ( $lint->errors ) {
print $error->as_string, "n";
}
HTML::Lint also comes with a wrapper program called weblint that handles linting from the command line:
$ weblint http://www.cnn.com/
http://www.cnn.com/ (395:83) < IMG SRC="spacer.gif" > tag has no HEIGHT and WIDTH attributes.
http://www.cnn.com/ (395:83) < IMG SRC="goofus.gif" > does not have ALT text defined
http://www.cnn.com/ (396:217) Unknown element < nobr >
http://www.cnn.com/ (396:241) < /nobr > with no opening < nobr >
http://www.cnn.com/ (842:7) target attribute in < a > is repeated
And finally, you can also get Apache::HTML::Lint that passes any mod_perl-generated code through HTML::Lint and get it dumped into your Apache error_log.
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:45) < /p > with no opening < p >
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:49) Unknown element < gronk >
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:56) Unknown attribute "x" for tag < table >
<<lessSYNOPSIS
my $lint = HTML::Lint->new;
$lint->only_types( HTML::Lint::STRUCTURE );
$lint->parse( $data );
$lint->parse_file( $filename );
my $error_count = $lint->errors;
foreach my $error ( $lint->errors ) {
print $error->as_string, "n";
}
HTML::Lint also comes with a wrapper program called weblint that handles linting from the command line:
$ weblint http://www.cnn.com/
http://www.cnn.com/ (395:83) < IMG SRC="spacer.gif" > tag has no HEIGHT and WIDTH attributes.
http://www.cnn.com/ (395:83) < IMG SRC="goofus.gif" > does not have ALT text defined
http://www.cnn.com/ (396:217) Unknown element < nobr >
http://www.cnn.com/ (396:241) < /nobr > with no opening < nobr >
http://www.cnn.com/ (842:7) target attribute in < a > is repeated
And finally, you can also get Apache::HTML::Lint that passes any mod_perl-generated code through HTML::Lint and get it dumped into your Apache error_log.
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:45) < /p > with no opening < p >
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:49) Unknown element < gronk >
[Mon Jun 3 14:03:31 2002] [warn] /foo.pl (1:56) Unknown attribute "x" for tag < table >
Download (0.022MB)
Added: 2007-08-06 License: Perl Artistic License Price:
813 downloads
XDG-Menu 1.4
XDG-Menu is a ROX panel applet that displays an application menu button. more>>
XDG-Menu project is a ROX panel applet that displays an applications menu button. The menus it builds fit the XDG Menu Specification published by freedesktop.org.
Main features:
- Applications menu based on XDG standards with capabilities to launch applications by mouse click and dragging items to pinboard, panel and file manager window.
- Configurable ROX applications submenu with capabilities to launch applications by mouse click, dragging items to pinboard, panel and file manager window, and context menu capabilities for each ROX-application.
- Logout menu item.
<<lessMain features:
- Applications menu based on XDG standards with capabilities to launch applications by mouse click and dragging items to pinboard, panel and file manager window.
- Configurable ROX applications submenu with capabilities to launch applications by mouse click, dragging items to pinboard, panel and file manager window, and context menu capabilities for each ROX-application.
- Logout menu item.
Download (0.027MB)
Added: 2007-07-12 License: GPL (GNU General Public License) Price:
834 downloads
Tree::Numbered 2.02
Tree::Numbered is a thin N-ary tree structure with a unique number for each item. more>>
Tree::Numbered is a thin N-ary tree structure with a unique number for each item.
SYNOPSYS
use Tree::Numbered;
my $tree = Tree::Numbered->new(John Doe);
$tree->append(John Doe Jr.);
$tree->append(Marry-Jane Doe);
while (my $branch = $tree->nextNode) {
$branch->delete if ($branch->getValue eq Stuff I dont want);
}
my $itemId = what_the_DB_says;
print join --- , $tree->follow($itemId); # a list of items up to itemId.
$tree->allProcess( sub {
my $self = shift;
$self->getValue =~ /^(S*)/;
$self->addField(FirstName, $1);
} );
etc.
Tree::Numbered is a special N-ary tree with a number for each node. This is useful on many occasions. The first use I found for that (and wrote this for) was to store information about the selected item as a number instead of storing the whole value which is space-expensive.
Every tree also has a lucky number of his own that distinguishes it from other trees created by the same module. This module is thin on purpose and is meant to be a base class for stuff that can make use of this behaveiour. For example, I wrote Tree::Numbered::DB which ties a tree to a table in a database, and Javascript::Menu which uses this tree to build menus for websites.
One more feature that the module implements for the ease of subclassing it is an API for adding and removing fields from trees and nodes.
<<lessSYNOPSYS
use Tree::Numbered;
my $tree = Tree::Numbered->new(John Doe);
$tree->append(John Doe Jr.);
$tree->append(Marry-Jane Doe);
while (my $branch = $tree->nextNode) {
$branch->delete if ($branch->getValue eq Stuff I dont want);
}
my $itemId = what_the_DB_says;
print join --- , $tree->follow($itemId); # a list of items up to itemId.
$tree->allProcess( sub {
my $self = shift;
$self->getValue =~ /^(S*)/;
$self->addField(FirstName, $1);
} );
etc.
Tree::Numbered is a special N-ary tree with a number for each node. This is useful on many occasions. The first use I found for that (and wrote this for) was to store information about the selected item as a number instead of storing the whole value which is space-expensive.
Every tree also has a lucky number of his own that distinguishes it from other trees created by the same module. This module is thin on purpose and is meant to be a base class for stuff that can make use of this behaveiour. For example, I wrote Tree::Numbered::DB which ties a tree to a table in a database, and Javascript::Menu which uses this tree to build menus for websites.
One more feature that the module implements for the ease of subclassing it is an API for adding and removing fields from trees and nodes.
Download (0.026MB)
Added: 2006-06-12 License: GPL (GNU General Public License) Price:
1229 downloads
Personal Menu 4.2.0
This extension makes Menus Toolbar available in Toolbar Context Menu, and you may hide it to save the space of browser. more>> <<less
Added: 2009-07-22 License: MPL Price: FREE
526 downloads
Other version of Personal Menu
License:MPL (Mozilla Public License)
Menu Builder 1.0
Menu Builder is a software that can find problems with using JavaScripts for rollovers in navigation menus and resolve them. more>>
Menu Builder is a software that can find problems with using JavaScripts for rollovers in navigation menus and resolve them.
Menus need to be fast loading, retrievable from cache, and workable with page inserts. From the publishing point of view they need to be able to be distributed to pages efficiently.
There is no limit to how many or how large the images can be displayed on the same page. But as with any great number of images there is always the download time to consider. If it is too slow then there is a risk of the surfer getting impatient and moving on. Many of us tend to forget that we are getting our images from our own cache.
Images presented on the web are usually 72-96 dpi (dots per inch) and unless presenting a photographers professional portfolio, images larger than 100k in file size make for longer downloads and less visitors.
A link can be set for visitors to navigate by mouse clicking the image. The link can be set to a target frame for navigating within framesets. The hyperlink will only function from the registered site. If a link is not required simply leave the setting completely blank.
<<lessMenus need to be fast loading, retrievable from cache, and workable with page inserts. From the publishing point of view they need to be able to be distributed to pages efficiently.
There is no limit to how many or how large the images can be displayed on the same page. But as with any great number of images there is always the download time to consider. If it is too slow then there is a risk of the surfer getting impatient and moving on. Many of us tend to forget that we are getting our images from our own cache.
Images presented on the web are usually 72-96 dpi (dots per inch) and unless presenting a photographers professional portfolio, images larger than 100k in file size make for longer downloads and less visitors.
A link can be set for visitors to navigate by mouse clicking the image. The link can be set to a target frame for navigating within framesets. The hyperlink will only function from the registered site. If a link is not required simply leave the setting completely blank.
Download (0.082MB)
Added: 2005-11-11 License: Freely Distributable Price:
1445 downloads
CGI::Expand 2.02
CGI::Expand is a Perl module that can convert flat hash to nested data using TT2s dot convention. more>>
CGI::Expand is a Perl module that can convert flat hash to nested data using TT2s dot convention.
SYNOPSIS
use CGI::Expand;
use CGI; # or Apache::Request, etc.
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
# $args = { a => [3,undef,4], b => { c => [x] }, }
# Or to catch exceptions:
eval {
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
} or log_and_exit( $@ );
#-----
use CGI::Expand qw(expand_hash);
$args = expand_hash({a.0=>77}); # $args = { a => [ 77 ] }
Converts a CGI query into structured data using a dotted name convention similar to TT2.
expand_cgi works with CGI.pm, Apache::Request or anything with an appropriate "param" method. Or you can use expand_hash directly.
If you prefer to use a different flattening convention then CGI::Expand can be subclassed.
<<lessSYNOPSIS
use CGI::Expand;
use CGI; # or Apache::Request, etc.
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
# $args = { a => [3,undef,4], b => { c => [x] }, }
# Or to catch exceptions:
eval {
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
} or log_and_exit( $@ );
#-----
use CGI::Expand qw(expand_hash);
$args = expand_hash({a.0=>77}); # $args = { a => [ 77 ] }
Converts a CGI query into structured data using a dotted name convention similar to TT2.
expand_cgi works with CGI.pm, Apache::Request or anything with an appropriate "param" method. Or you can use expand_hash directly.
If you prefer to use a different flattening convention then CGI::Expand can be subclassed.
Download (0.008MB)
Added: 2007-07-07 License: Perl Artistic License Price:
840 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above menu 2.02 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed