The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

AUTHOR

'Zoffix, <'zoffix at cpan.org'> (http://zoffix.com/, http://haslayout.net/, http://zofdesign.com/)

BUGS

Please report any bugs or feature requests to bug-app-zofcms-plugin-htmlfactory-pagetobodyid at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=App-ZofCMS-Plugin-HTMLFactory-PageToBodyId. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc App::ZofCMS::Plugin::HTMLFactory::PageToBodyId

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2009 'Zoffix, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.