Created
December 16, 2016 14:19
-
-
Save JusteLeblanc/835b5c3b668585960a12a3fac3235534 to your computer and use it in GitHub Desktop.
Symfony2 Form Theme for Materialize
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% extends 'form_div_layout.html.twig' %} | |
{% block form_row -%} | |
<div class="row{% if (not compound or force_error|default(false)) and not valid %} has-error{% endif %}"> | |
<div class="input-field col s12"> | |
{{- form_widget(form) -}} | |
{{- form_label(form) -}} | |
{{- form_errors(form) -}} | |
</div> | |
</div> | |
{%- endblock form_row %} | |
{% block form_widget_simple %} | |
{% if type is not defined or type not in ['file', 'hidden'] %} | |
{%- set attr = attr|merge({class: (attr.class|default(''))|trim}) -%} | |
{% endif %} | |
{{- parent() -}} | |
{% if tooltip is defined %} | |
<span class="material-icons dp48 elsan-tooltip tooltipped" | |
data-position="bottom" data-delay="50" data-tooltip="{{ tooltip }}">error | |
</span> | |
{% endif %} | |
{% endblock form_widget_simple %} | |
{% block form_label -%} | |
{%- set label_attr = label_attr|merge({class: (label_attr.class|default(''))|trim}) -%} | |
{{- parent() -}} | |
{%- endblock form_label %} | |
{% block checkbox_row -%} | |
<div class="row {% if not valid %} has-error{% endif %}"> | |
{{- form_widget(form) -}} | |
{{- form_label(form) -}} | |
{{- form_errors(form) -}} | |
</div> | |
{%- endblock checkbox_row %} | |
{% block checkbox_widget -%} | |
<input type="checkbox" class="filled-in"{{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} /> | |
{%- endblock checkbox_widget %} | |
{# Checkbox label is raw here #} | |
{%- block checkbox_label -%} | |
{% if label is not same as(false) -%} | |
{% if not compound -%} | |
{% set label_attr = label_attr|merge({'for': id}) %} | |
{%- endif -%} | |
{% if required -%} | |
{% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} | |
{%- endif -%} | |
{% if label is empty -%} | |
{%- if label_format is not empty -%} | |
{% set label = label_format|replace({ | |
'%name%': name, | |
'%id%': id, | |
}) %} | |
{%- else -%} | |
{% set label = name|humanize %} | |
{%- endif -%} | |
{%- endif -%} | |
<label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}> | |
{{ translation_domain is same as(false) ? label|raw : label|trans({}, translation_domain)|raw }} | |
</label> | |
{%- endif -%} | |
{%- endblock -%} | |
{% block button_widget -%} | |
{% set attr = attr|merge({class: (attr.class|default('waves-effect waves-light') ~ ' btn')|trim}) %} | |
{{- parent() -}} | |
{%- endblock %} | |
{%- block choice_widget_collapsed -%} | |
{%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size <= 1) -%} | |
{% set required = false %} | |
{%- endif -%} | |
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}> | |
{%- if placeholder is not none -%} | |
<option value=""{% if required %} disabled="disabled" {% if value is empty %} selected="selected"{% endif %}{% endif %}>{{ placeholder != '' ? (translation_domain is same as(false) ? placeholder : placeholder|trans({}, translation_domain)) }}</option> | |
{%- endif -%} | |
{%- if preferred_choices|length > 0 -%} | |
{% set options = preferred_choices %} | |
{{- block('choice_widget_options') -}} | |
{%- if choices|length > 0 and separator is not none -%} | |
<option disabled="disabled">{{ separator }}</option> | |
{%- endif -%} | |
{%- endif -%} | |
{%- set options = choices -%} | |
{{- block('choice_widget_options') -}} | |
</select> | |
{%- endblock choice_widget_collapsed -%} | |
{%- block form_errors -%} | |
{%- if errors|length > 0 -%} | |
<ul class="elsan-back-error"> | |
{%- for error in errors -%} | |
<li class="elsan-required">{{ error.message }}</li> | |
{%- endfor -%} | |
</ul> | |
{%- endif -%} | |
{%- endblock form_errors -%} | |
{%- block textarea_widget -%} | |
{% set attr = attr|merge({class: (attr.class|default('') ~ 'materialize-textarea')|trim}) %} | |
{{ parent() }} | |
{%- endblock -%} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This should be an installable form theme like dsmink/twig-bulma-form-theme