Name
HTML::Accessors - Generate HTML elements
Version
0.7.$Rev: 125 $
Synopsis
use HTML::Accessors;
my $my_obj = HTML::Accessors->new();
# Create an anchor element
$anchor = $my_obj->a( { href => 'http://...' }, 'This is a link' );
Description
Uses HTML::GenerateUtil to create an autoload method for each of the
elements defined by HTML::Tagset. The API was loosely taken from CGI.
Using the CGI module is undesirable in a Catalyst application (run from
the development server) due go greediness issues over STDIN.
The returned tags are either XHTML 1.1 or HTML 4.01 compliant.
Configuration and Environment
The constructor defines accessors and mutators for one attribute:
"content_type"
Defaults to *application/xhtml+xml* which causes the generated tags
to conform to the XHTML standard. Setting it to *text/html* will
generate HTML compatible tags instead
Subroutines/Methods
new
my $my_obj = HTML::Accessors->new( content_type => q(application/xhtml+xml) );
Uses "_arg_list" to process the passed options
escape_html
my $escaped_html = $my_obj->escape_html( $unescaped_html );
Expose the method escape_html
is_xml
my $bool = $my_obj->is_xml;
Returns true if the returned tags will be XHTML. Matches the string
*.xml* at the end of the *content_type*
popup_menu
my $html = $my_obj->popup_menu( default => $value, labels => {}, values => [] );
Returns the "" element. The first option passed to "popup_menu"
is either a hash ref or a list of key/value pairs. The keys are:
"classes"
A hash ref keyed by the *values* attribute. It lets you to set the
*class* attribute of each "" element
"default"
Determines which of the values will be selected by default
"labels"
Display these labels in place of the values (but return the value of
the selected label). This is a hash ref with a key for each element
in the "values" array
"values"
The key references an array ref whose values are used as the list of
options returned in the body of the "" element
The rest of the keys and values are passed as attributes to the
"" element. For example:
$ref = { default => 1, name => q(my_field), values => [ 1, 2 ] };
$my_obj->popup_menu( $ref );
would return:
1
2
radio_group
Generates a list of radio input buttons with labels. Break elements can
be inserted to create rows of a given number of columns when displayed.
The first option passed to "radio_group" is either a hash ref or a list
of key/value pairs. The keys are:
"columns"
Integer number of columns to display the generated buttons in. If
zero then a list of radio buttons without breaks is generated
"default"
Determines which of the radio box will be selected by default
"label_class"
Class of the labels generated for each button
"labels"
Display these labels next to each button. This is a hash ref with a
key for each element in the "values" array
"name"
The form name of the generated buttons
"onchange"
An optional JavaScript reference. The JavaScript will be executed
each time a different radio button is selected
"values"
The key references an array ref whose values are returned by the
radio buttons
For example:
$ref = { columns => 2,
default => 1,
labels => { 1 => q(Button One),
2 => q(Button Two),
3 => q(Button Three),
4 => q(Button Four), },
name => q(my_field),
values => [ 1, 2, 3, 4 ] };
$my_obj->radio_group( $ref );
would return:
Button One
Button Two
Button Three
Button Four
scrolling_list
Calls "popup_menu" with the "multiple" argument set to "multiple". This
has the effect of allowing multiple selections to be returned from the
popup menu
AUTOLOAD
Uses HTML::Tagset to check if the requested method is a known HTML
element. If it is "AUTOLOAD" uses HTML::GenerateUtil to create the tag
If the first option is a hash ref then the keys and values are copied
and passed to "HTML::GenerateUtil::generate_tag" which uses them to set
the attributes on the created element. The next option is treated as the
element's body text and overrides the "default" attribute which is
passed and deleted from the options hash
If the requested element exists in the hard coded list of input
elements, then the element is set to "input" and the mapped value used
as the type attribute in the call to "generate_tag". For example;
$my_obj->textfield( { default => q(default value), name => q(my_field) } );
would return
The list of input elements contains; button, checkbox, hidden,
image_button, password_field, radio_button, submit, and textfield
Carp and return "undef" if the element does not exist in list of known
elements
DESTROY
Implement the "DESTROY" method so that the "AUTOLOAD" method doesn't get
called instead
_arg_list
Returns a hash ref containing the passed parameter list. Enables methods
to be called with either a list or a hash ref as it's input parameters.
Makes copies as it goes so that you can change the contents without
altering the parameters if they were passed by reference
_hash_merge
Simplistic merging of two hashes
Diagnostics
Carp is called to issue a warning about undefined elements
Dependencies
Class::Accessor::Fast
HTML::GenerateUtil
HTML::Tagset
Incompatibilities
There are no known incompatibilities in this module
Bugs and Limitations
There are no known bugs in this module. Please report problems to the
address below. Patches are welcome
Author
Peter Flanigan, ""
Acknowledgements
Larry Wall - For the Perl programming language
License and Copyright
Copyright (c) 2012 Peter Flanigan. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but
WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.