NAME

Dancer::Plugin::MobileDevice - make a Dancer app mobile-aware

SYNOPSIS

package MyWebApp;
use Dancer;
use Dancer::Plugin::MobileDevice;

get '/' => sub {
    if (is_mobile_device) {
        # do something for mobile
    }
    else {
        # do something for regular agents
    }
};

DESCRIPTION

A plugin for Dancer-powered webapps to easily detect mobile clients and offer a simplified layout, and/or act in different ways.

The plugin offers a is_mobile_device keyword, which returns true if the device is recognised as a mobile device.

It can also automatically change the layout used to render views for mobile clients.

Custom layout for mobile devices

This plugin can use a custom layout for recognised mobile devices, allowing you to present a simplified page template for mobile devices. To enable this, use the mobile_layout setting for this plugin - for instance, add the following to your config file:

plugins:
  mobiledevice:
    mobile_layout: 'mobile'

This means that, when template is called to render a view, if the client is recognised as a mobile device, the layout named mobile will be used, rather than whatever the current layout setting is.

You can of course still override this layout by supplying a layout option to the template call in the usual way (see the Dancer documentation for how to do this).

AUTHOR

Alexis Sukrieh, <sukria at sukria.net>

BUGS

Please report any bugs or feature requests to http://github.com/sukria/Dancer-Plugin-MobileDevice/issues

SUPPORT

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

perldoc Dancer::Plugin::MobileDevice

You can also look for information at:

ACKNOWLEDGEMENTS

This plugin was initially written for an article of the Dancer advent calendar 2010.

LICENSE AND COPYRIGHT

Copyright 2010 Alexis Sukrieh.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.