The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mojolicious::Plugin::ContentManagement::Source - abstract source base class

DESCRIPTION

A Mojolicious::Plugin::ContentManagement::Source is a thing that can load and write pages. This is an abstract base class.

IMPLEMENTATIONS SHIPPED WITH THIS DISTRIBUTION

Mojolicious::Plugin::ContentManagement::Source::Filesystem

Store content pages in a local directory

Mojolicious::Plugin::ContentManagement::Source::Dbi

Store content pages in a DBI compatible database

ATTRIBUTES

app

    my $app = $source->app;
    $source = $source->app($app);

The Mojolicious app object

type

    my $type = $source->type;
    $source  = $source->type($type);

The management content type translator object (needed to build pages)

forbidden

    my @forbidden = @{ $source->forbidden };
    $source       = $source->forbidden([ 'foo', qr(foo/.*) ]);

An array ref of paths, that must not be managed. Can contain strings and regular expressions

METHODS

If you want to be a thing that can load and save pages, you need to implement the following methods:

exists

    my $truth = $source->exists('/foo/bar.html');

This method gets the path of a page and returns a true value iff such a page exists.

list

    my $tree = $source->list;

This method returns a tree of all pages as an array ref of Mojolicious::Plugin::ContentManagement::Page objects.

load

    my $page = $source->load('/foo/bar.html');

This method loads a Mojolicious::Plugin::ContentManagement::Page object.

save

    $source = $source->save($page);

This method saves a Mojolicious::Plugin::ContentManagement::Page object.

SEE ALSO

Mojolicious::Plugin::ContentManagement