|
15 | 15 | {% macro label( ctx, mesg, name, opts = {} ) %} |
16 | 16 | {% set opts = { 'required':false, 'escape':true }|merge( opts ) %} |
17 | 17 | {% set tran = mesg|message %} |
18 | | -<label for="{{ name }}" class="control-label {{ opts['required'] ? 'required' }}">{% if |
19 | | - opts['escape'] == false %}{{ tran|raw }}{% else %}{{ tran }}{% endif %}</label> |
| 18 | +<label for="{{ name }}" class="control-label {{ opts['required'] ? 'required' }}">{% if opts['escape'] == false %}{{ tran|raw }}{% else %}{{ tran }}{% endif %}</label> |
20 | 19 | {% endmacro %} |
21 | 20 |
|
22 | 21 | {% macro startElement( ctx, mesg, name, opts = {} ) %} |
|
33 | 32 | </div> |
34 | 33 | {% endmacro %} |
35 | 34 |
|
36 | | -{% macro text( ctx, mesg, name, opts = {} ) %} |
| 35 | +{% macro input( ctx, type, mesg, name, opts = {} ) %} |
37 | 36 | {% import _self as forms %} |
38 | 37 | {% set opts = { 'required':false }|merge( opts ) %} |
39 | 38 | {% set value = ctx.form.get( name ) %} |
40 | 39 | {{ forms.startElement( ctx, mesg, name, opts ) }} |
41 | | -<input type="text" class="form-control" id="{{ name }}" name="{{ name }}" value="{{ value ?: '' }}" {{ opts['required'] ? 'required' }}/> |
| 40 | +<input type="{{ type }}" class="form-control" id="{{ name }}" name="{{ name }}" value="{{ value ?: '' }}" {{ opts['required'] ? 'required' }}/> |
42 | 41 | {{ forms.endElement( ctx, name, mesg ) }} |
43 | 42 | {% endmacro %} |
44 | 43 |
|
| 44 | +{% macro text( ctx, mesg, name, opts = {} ) %} |
| 45 | +{% import _self as forms %} |
| 46 | +{{ forms.input( ctx, 'text', mesg, name, opts ) }} |
| 47 | +{% endmacro %} |
| 48 | + |
| 49 | +{% macro number( ctx, mesg, name, opts = {} ) %} |
| 50 | +{% import _self as forms %} |
| 51 | +{{ forms.input( ctx, 'number', mesg, name, opts ) }} |
| 52 | +{% endmacro %} |
| 53 | + |
| 54 | +{% macro url( ctx, mesg, name, opts = {} ) %} |
| 55 | +{% import _self as forms %} |
| 56 | +{{ forms.input( ctx, 'url', mesg, name, opts ) }} |
| 57 | +{% endmacro %} |
| 58 | + |
45 | 59 | {% macro textArea( ctx, mesg, name, opts = {} ) %} |
46 | 60 | {% import _self as forms %} |
47 | 61 | {% set opts = { 'required':false }|merge( opts ) %} |
48 | 62 | {% set value = ctx.form.get( name ) %} |
49 | 63 | {{ forms.startElement( ctx, mesg, name, opts ) }} |
50 | | - <textarea class="form-control" id="{{ name }}" name="{{ name }}" cols="80" rows="3" {{ opts['required'] ? 'required' }}>{{ value ?: '' }}</textarea> |
| 64 | +<textarea class="form-control" id="{{ name }}" name="{{ name }}" cols="80" rows="3" {{ opts['required'] ? 'required' }}>{{ value ?: '' }}</textarea> |
| 65 | +{{ forms.endElement( ctx, name, mesg ) }} |
| 66 | +{% endmacro %} |
| 67 | + |
| 68 | +{## |
| 69 | + # @param Twig_Context ctx |
| 70 | + # @param string mesg Message key for element label |
| 71 | + # @param array options Array of value => label options to display |
| 72 | + # @param array opts Additional element options |
| 73 | + #} |
| 74 | +{% macro select( ctx, mesg, name, options, opts = {} ) %} |
| 75 | +{% import _self as forms %} |
| 76 | +{% set opts = { 'required':false }|merge( opts ) %} |
| 77 | +{% set value = ctx.form.get( name ) %} |
| 78 | +{{ forms.startElement( ctx, mesg, name, opts ) }} |
| 79 | +<select id="{{ name }}" name="{{ name }}" class="form-control" {{ opts['required'] ? 'required' }}> |
| 80 | +<option value="">{{ ( mesg ~ '-empty' )|message }}</option> |
| 81 | +{% for val, label in options %} |
| 82 | +<option value="{{ val }}" {{ val == value ? 'selected="selected"' }}>{{ label }}</option> |
| 83 | +{% endfor %} |
| 84 | +</select> |
51 | 85 | {{ forms.endElement( ctx, name, mesg ) }} |
52 | 86 | {% endmacro %} |
53 | 87 |
|
|
0 commit comments