Mirko Westermeier > Mojolicious-Plugin-RelativeUrlFor-0.02b > Mojolicious::Plugin::RelativeUrlFor

Download:
Mojolicious-Plugin-RelativeUrlFor-0.02b.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.02   Source   Latest Release: Mojolicious-Plugin-RelativeUrlFor-0.04

NAME ^

Mojolicious::Plugin::RelativeUrlFor - relative links in Mojolicious, really.

SYNOPSIS ^

    # Mojolicious
    $self->plugin('RelativeUrlFor');

    # Mojolicious::Lite
    plugin 'RelativeUrlFor';

DESCRIPTION ^

This Mojolicious plugin adds a new helper to your web app: relative_url_for, together with its short alias rel_url_for. Mojo's URL objects already have a method for this, but to get really relative URLs like ../foo.html you need to add the request url like this:

    my $url     = $self->url_to('foo', bar => 'baz');
    my $rel_url = $url->to_rel($self->req->url);

The new helper method gets the job done for you:

    my $rel_url = $self->rel_url_for('foo', bar => 'baz');

Generated URLs are always relative to the request url.

In templates

Since this is a helper method, it's available in templates after using this plugin:

    <%= rel_url_for 'foo', bar => 'baz' %>

Replacing url_for

To use relative URLs in your whole web app without rewriting the code, this plugin can replace Mojolicious' url_for helper for you, which is used by useful things like link_to and form_for. You need to set the replace_url_for option for this:

    # Mojolicious
    $self->plugin(RelativeUrlFor => { replace_url_for => 1 });

    # Mojolicious::Lite
    plugin RelativeUrlFor => { replace_url_for => 1 };

REPOSITORY AND ISSUE TRACKING ^

This plugin lives in github: http://github.com/memowe/mojolicious-plugin-relativeurlfor. You're welcome to use github's issue tracker to report bugs or discuss the code: http://github.com/memowe/mojolicious-plugin-relativeurlfor/issues

AUTHOR AND LICENSE ^

Copyright Mirko Westermeier <mail@memowe.de>

This software is released under the MIT license. See MIT-LICENSE for details.

syntax highlighting: