NAME
App::ZofCMS::Plugin::HTMLFactory::PageToBodyId - plugin to automatically create id="" attributes on <body> depending on the current page
SYNOPSIS
In your Main Config file or ZofCMS Template:
plugins => [ qw/HTMLFactory::PageToBodyId/ ],
body_id => 'override', # including the key overrides the plugin's value
In your HTML::Template template:
<tmpl_var escape='html' name='body_id'>
DESCRIPTION
The module is a small plugin for App::ZofCMS. Its purpose is to automatically generate a value for an id=""
attribute that is to be put on <body>
HTML element; this value would be used to differentiate different pages on the site and is generated from query dir
and page
parameters.
This documentation assumes you've read App::ZofCMS, App::ZofCMS::Config and App::ZofCMS::Template
MAIN CONFIG FILE OR ZofCMS TEMPLATE
plugins
plugins => [ qw/HTMLFactory::PageToBodyId/ ],
You need to add the plugin to the list of plugins to execute. Unlike many other plugins, the HTMLFactory::PageToBodyId
does not require an additional key in the template and will run as long as it is included.
body_id
The plugin first checks whether or not body_id
first-level key was set in either ZofCMS Template or Main Config File. If it exists, plugin stuffs its value under $t->{t}{body_id}
(where $t
is ZofCMS Template hashref) otherwise, it creates its own from query's dir
and page
keys and uses that.
VALID id=""
/ PLUGIN'S CHARACTER REPLACEMENT
To quote HTML specification:
ID and NAME tokens must begin with a letter ([A-Za-z])
and may be followed by any number of letters,
digits ([0-9]), hyphens ("-"), underscores ("_"),
colons (":"), and periods (".").
The plugin replaces any character that doesn't match the criteria with an underscore(_
). Most of the time it will be the slashes (/
) present in the full page URL.
GENERATED IDs
After doing invalid character replacement (see above) the plugin prefixes the generated value with word "page
". Considering that any page URL would start with a slash, the resulting values would be in the form of page_index
, page_somedir_about-us
and so on.
HTML::Template VARIABLES
The plugin sets body_id
key in t
ZofCMS Template special key, thus you can use <tmpl_var name='body_id'>
in any of your HTML::Template templates to obtain the generated ID. The name of the key cannot be changed.
SEE ALSO
App::ZofCMS, App::ZofCMS::Config, App::ZofCMS::Template, http://www.w3.org/TR/html401/types.html#type-name
REPOSITORY
Fork this module on GitHub: https://github.com/zoffixznet/App-ZofCMS
BUGS
To report bugs or request features, please use https://github.com/zoffixznet/App-ZofCMS/issues
If you can't access GitHub, you can email your request to bug-App-ZofCMS at rt.cpan.org
AUTHOR
Zoffix Znet <zoffix at cpan.org> (http://zoffix.com/, http://haslayout.net/)
LICENSE
You can use and distribute this module under the same terms as Perl itself. See the LICENSE
file included in this distribution for complete details.