Skip to content

Instantly share code, notes, and snippets.

@toddsby
Created March 6, 2015 15:10
Show Gist options
  • Save toddsby/bb0ac194ec6d72044053 to your computer and use it in GitHub Desktop.
Save toddsby/bb0ac194ec6d72044053 to your computer and use it in GitHub Desktop.
twig form macros
{% macro input(name, value, type, id, class) %}
<input type="{{ type|default('text') }}" name="{{ name }}" id="{{ id|default(name) }}" value="{{ value|e }}" class="{{ class }}" />
{% endmacro %}
{% macro textarea(name, value, class) %}
<textarea name="{{ name }}" id="{{ id|default(name) }}" class="{{ class }}">{{ value|e }}</textarea>
{% endmacro %}
{% macro label(id, content, class) %}
<label for="{{ id }}" class="{{ class }}">{{ content|e }}</label>
{% endmacro %}
{% macro checkbox(name, value, id, class) %}
<input type="checkbox" name="{{ name }}" id="{{ id|default(name) }}" class="{{ class }}" value="1"{% if value %} checked="checked"{% endif %} />
{% endmacro %}
{% macro select(name, values, value, id, class) %}
<select name="{{ name }}" id="{{ id|default(name) }}" class="{{ class }}">
{% for key, name in values %}
<option value="{{ key }}"{% if value == key %} selected="selected"{% endif %}>{{ name }}</option>
{% endfor %}
</select>
{% endmacro %}
{% macro radio(name, values, value, id, class) %}
{% for key, label in values %}
<label{% if value == key %} class="selected"{% endif %} ><input type="radio" name="{{ name }}" id="{{ id|default(name|cid) ~ key }}" value="{{ key }}"{% if value == key %} checked="checked"{% endif %} /> {{ label }}</label>
{% endfor %}
{% endmacro %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment