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.

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".

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