Maypole::Plugin::LinkTools - convenient link construction
use Maypole::Application qw( LinkTools ); #... print $request->maybe_link_view( $thing ); print $request->maybe_many_link_views( @things ); print $request->link( table => $table, action => $action, # called 'command' in the original link template additional => $additional, # optional - generally an object ID label => $label, ); print $request->make_path( table => $table, action => $action, # called 'command' in the original link template additional => $additional, # optional - generally an object ID );
Provides convenient replacements for the link and maybe_link_view templates, and a new maybe_many_link_views method.
link
maybe_link_view
maybe_many_link_views
Centralises all path manipulation, so that a new URI scheme can be implemented site-wide by overriding just two methods (Maypole::parse_path() and Maypole::Plugin::LinkTools::make_path()).
Maypole::parse_path()
Maypole::Plugin::LinkTools::make_path()
For ease of use with the Template Toolkit, make_path, link and link_view will also accept a hashref of arguments. For example:
make_path
link_view
print $request->make_path({ table => $table, action => $action, additional => $additional, });
This is the counterpart to Maypole::parse_path. It generates a path to use in links, form actions etc. To implement your own path scheme, just override this method and parse_path.
Maypole::parse_path
parse_path
%args = ( table => $table, action => $action, # called 'command' in the original link template additional => $additional, # optional - generally an object ID );
id can be used as an alternative key to additional.
id
additional
Returns a link, calling make_path to generate the path.
%args = ( table => $table, action => $action, # called 'command' in the original link template additional => $additional, # optional - generally an object ID label => $label, );
The table can be omitted and defaults to that of the request's model. id can be used as an alternative key to additional.
Build a link to the view action of the given item. If passed a Maypole request object, builds a link to its view action.
view
print $request->link_view( $maypole_request ); print $request->link_view( table => $table, label => $label, additional => $id, );
Returns stringified $thing unless it isa Maypole::Model::Base object, in which case a link to the view template for the object is returned.
$thing
Maypole::Model::Base
Runs multiple items through maybe_link_view, returning a list.
David Baird, <cpan@riverside-cms.co.uk>
<cpan@riverside-cms.co.uk>
Please report any bugs or feature requests to bug-maypole-plugin-linktools@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Maypole-Plugin-LinkTools. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-maypole-plugin-linktools@rt.cpan.org
Copyright 2005 David Baird, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Maypole::Plugin::LinkTools, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Maypole::Plugin::LinkTools
CPAN shell
perl -MCPAN -e shell install Maypole::Plugin::LinkTools
For more information on module installation, please visit the detailed CPAN module installation guide.