add a number field

The field has three option :

- lesser or equal than. If null, this option is ignored ;
- greather or equal than. If null, this options is ignored ;
- precision : the number of decimal after the number ;
- text after the field : a text to show after the field.

The field is rendered as an HTML integer input if precision = 0, or a
symfony number field if precision > 0.

ref chill-project/Chill-CustomFields#11
This commit is contained in:
2015-12-08 19:45:04 +01:00
parent f18b384a06
commit 4f2b605efc
12 changed files with 501 additions and 3 deletions

View File

@@ -39,6 +39,24 @@ services:
- "@chill.main.helper.translatable_string"
tags:
- { name: 'chill.custom_field', type: 'text' }
chill.custom_field.number:
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldNumber
arguments:
- "@templating"
- "@chill.main.helper.translatable_string"
tags:
- { name: 'chill.custom_field', type: 'number' }
chill.form_extension.post_text_integer:
class: Chill\CustomFieldsBundle\Form\Extension\PostTextIntegerExtension
tags:
- { name: form.type_extension, alias: 'integer' }
chill.form_extension.post_text_number:
class: Chill\CustomFieldsBundle\Form\Extension\PostTextNumberExtension
tags:
- { name: form.type_extension, alias: 'number' }
chill.custom_field.choice:
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldChoice

View File

@@ -75,3 +75,9 @@ One box on the line: Un seul champ sur la ligne
Title level: Niveau de titre
Main title: Titre principal
Subtitle: Sous-titre
#custom field number
Greater or equal than: Plus grand ou égal à
Lesser or equal than: Plus petit ou égal à
Precision: Précision
Text after the field: Texte après le champ

View File

@@ -0,0 +1 @@
{% if number is not empty %}{{ number|number_format(scale) }} {{ post|default('') }}{% endif %}

View File

@@ -94,4 +94,28 @@
{% endfor -%}
</div>
{% endblock choice_with_other_widget %}
{% endblock choice_with_other_widget %}
{# extend the integer type to add post_text extension #}
{% block integer_widget %}
{%- if post_text is defined and post_text is not empty-%}
<div class="input_with_post_text">
{%- endif -%}
{{ block('form_widget') }}
{%- if post_text is defined and post_text is not empty-%}
<span class="cf_post_text">{{ post_text }}</span>
</div>
{%- endif -%}
{% endblock %}
{# extend the number type to add post_text extension #}
{% block number_widget %}
{%- if post_text is defined and post_text is not empty-%}
<div class="input_with_post_text">
{%- endif -%}
{{ block('form_widget') }}
{%- if post_text is defined and post_text is not empty-%}
<span class="cf_post_text">{{ post_text }}</span>
</div>
{%- endif -%}
{% endblock %}