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