Mojolicious::Plugin::TagHelpers::ContentBlock - Mojolicious Plugin for Content Blocks
use Mojolicious::Lite; plugin 'TagHelpers::ContentBlock'; # Add snippets to a named content block, e.g. from a plugin app->content_block( admin => { inline => "<%= link_to 'Edit' => '/edit' %>" } ); # ... or in a controller: get '/' => sub { my $c = shift; $c->content_block( admin => { inline => "<%= link_to 'Logout' => '/logout' %>", position => 20 } ); $c->render(template => 'home'); }; app->start; __DATA__ @@ home.html.ep %# and call it in a template %= content_block 'admin'
Mojolicious::Plugin::TagHelpers::ContentBlock is a Mojolicious plugin to create pluggable content blocks for page views.
Mojolicious::Plugin::TagHelpers::ContentBlock inherits all methods from Mojolicious::Plugin and implements the following new one.
# Mojolicious $app->plugin('TagHelpers::ContentBlock'); # Mojolicious::Lite plugin 'TagHelpers::ContentBlock';
Called when registering the plugin. Accepts an optional hash containing information on content blocks to be registered on startup.
# Mojolicious $app->plugin( 'TagHelpers::ContentBlock' => { admin => [ { inline => '<%= link_to "Edit" => "/edit" %>', position => 10 }, { inline => '<%= link_to "Logout" => "/logout" %>', position => 15 } ], footer => { inline => '<%= link_to "Privacy" => "/privacy" %>', position => 5 } } );
Content blocks are defined by their name followed by either a hash of content block information or an array of content block information hashes. See content_block for further information.
The content block hash can be set as part of the configuration file with the key TagHelpers-ContentBlock or on registration (that will be merged with the configuration).
TagHelpers-ContentBlock
# In a plugin $app->content_block( admin => { inline => '<%= link_to 'Edit' => '/edit' %>' } ); # From a controller $c->content_block( admin => { inline => '<%= link_to 'Edit' => '/edit' %>', position => 40 } ); # From a template % content_block 'admin', { position => 9 }, begin <%= link_to 'Edit' => '/edit' %> % end # Calling the content block %= content_block 'admin'
Add content to a named content block (like with content_for) or call the contents from a template.
In difference to content_for, content of the content block can be defined in a global cache during startup or as part of the applications configuration.
Supported content block parameters, passed as a hash, are template or inline. Additionally a numeric position value can be passed, defining the order of elements in the content block. If position is omitted, the default position is 0. Position values may be positive or negative.
template
inline
position
0
When calling the content blocks, an additional list parameter separator can define a string to be placed between all blocks.
# Calling the content block %= content_block 'admin', separator => '<hr />'
# In a template % if (content_block_ok('admin')) { <ul> %= content_block 'admin' </ul> % };
Check if a content_block contains elements.
content_block
Mojolicious.
https://github.com/Akron/Mojolicious-Plugin-TagHelpers-ContentBlock
Copyright (C) 2015-2021, Nils Diewald.
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.
To install Mojolicious::Plugin::TagHelpers::ContentBlock, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::TagHelpers::ContentBlock
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::TagHelpers::ContentBlock
For more information on module installation, please visit the detailed CPAN module installation guide.