NAME
Slovo::Plugin::TagHelpers - additional and advanced tag helpers
SYNOPSIS
<%=
select_box
page_type => [map {[$_=>$_]}], @$page_types]
required => 1, label => 'Page type'
%>
DESCRIPTION
Slovo::Plugin::TagHelpers extends Mojolicious::Plugin::TagHelpers and implements some additional helpers. Slovo::Plugin::DefaultHelpers and Slovo::Plugin::TagHelpers are loaded unconditionally after all other mandatory for Slovo plugins.
HELPERS
The following helpers are currently implemented.
checkboxes
<%
my $groups = [
[berov => 1, disabled => undef],
[admin => 2],
[foo => 3]
];
%>
<%= checkboxes(groups => $groups, label =>'Множества') %>
<div class="mui-textfield groups">
<label for="groups">Множества</label>
<div class="mui-checkbox">
<label><input disabled name="groups" type="checkbox" value="1"> berov</label>
<label><input name="groups" type="checkbox" value="2"> admin</label>
<label><input name="groups" type="checkbox" value="3"> foo</label>
</div>
</div>
Generates a group of checkboxes with same name wrapped with a div tag with class mui-textfield $name
. If label
attribute is not provided, a label is derived from the $name
. Suitable for fields with multiple values.
html_substr
%= html_substr($writing->{teaser}//$writing->{body}, 'p,blockquote', 225);
Parameters: $c, $html, $selector, $chars
Get all_text
for each $selector
from $html
and does substr on the last so the total characters in the produced output are not more than $chars
. Starts from the first character in the first matched $selector
. In case the $html
is simple text, produces <p>
elements.
javascripts
Add one JS file to "defaults" in Mojolicious <$app-
defaults->{javascripts}>>. Intended for use in a plugin's register
method.
$app->javascripts('/js/foo.js');
$app->javascripts('/js/bar.js');
When invoked without arguments, returns the list of generated tags for those files, found in <$c-
stash->{javascripts}>>.
%=javascripts
# returns
<script src="/path/to/foo.js"></script>
<script src="/path/to/bar.js"></script>
select_box
<%=
select_box
published => [['for (p)review' => 1], ['no' => 0], ['Yes' => 2]],
value => 2,
label => 'Published';
%>
<%=
select_box
colors => [(white green red blue yellow)],
value => [qw(white green)],
label => 'Favorite colors'
multiple => undef
%>
This is a wrapper for "select_field" in Mojolicious::Plugin::TagHelpers with additional optional attributes label
and value
. If label is not provided, the name of the field is used as label. If value is not provided, it is retreived from input $c->every_param($name)
by the wrapped select_field
. If value is provided it does $c->param($name => $attrs{value})
. The generated tags are wrapped in a div
tag with class="mui-select $name"
.
stylesheets
Adds an item to <$app-
defaults->{stylesheets}>> and returns $c. Intended for use in a plugin's register
method.
$app->stylesheets('/css/bar.css');
$app->stylesheets('/css/foo.css');
When invoked without arguments, returns the list of generated tags for those files, found in <$c-
stash->{stylesheets}>>.
%=stylesheets
#returns:
<link rel="stylesheet" href="/css/foo.css" />
<link rel="stylesheet" href="/css/bar.css" />
METHODS
The usual method is implemented.
register
Calls the parent's register if needed and registers additional helpers in Slovo application.
SEE ALSO
Mojolicious::Plugin::TagHelpers, Slovo::Plugin::DefaultHelpers