App::ZofCMS::Plugin::HTMLFactory::PageToBodyId - plugin to automatically create id="" attributes on <body> depending on the current page
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'>
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
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.
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 is ZofCMS Template hashref) otherwise, it creates its own from query's
page keys and uses that.
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.
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_somedir_about-us and so on.
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.
Fork this module on GitHub: https://github.com/zoffixznet/App-ZofCMS
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
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.