среда, 19 марта 2014 г.

Symfony 2: Изменение шаблонов форм

При выводе элементов формы, таких как, сообщения об ошибках, поля, метки и т. п., Symfony, по умолчанию, использует шаблоны расположенные в папке vendor\symfony\symfony\src\Symfony\Bridge\Twig\Resources\views\Form\. Например, если в шаблоне вывести сообщение об ошибке таким образом:
{{ form_errors(loginForm.email) | trans }}
то для рендеринга этого элемента формы, Symfony будет использовать блок form_errors расположенный в файле form_div_layout.html:
{% block form_errors %}
{% spaceless %}
  {% if errors|length > 0 %}
    <ul>
      {% for error in errors %}
        <li>{{ error.message }}</li>
      {% endfor %}
    </ul>
  {% endif %}
{% endspaceless %}
{% endblock form_errors %}
Чтобы переопределить этот блок и сделать его глобальным для всего сайта, необходимо выполнить следующие действия:
  1. В каталоге app/Resources/views создать файл form_errors.html.twig. Этот файл будет содержать переопределенный блок.
  2. Скопировать из файла form_div_layout.html.twig описанный выше блок и подправить его нужным образом. К примеру, можно убрать список и добавить свой css стиль:
    {% block form_errors %}
    {% spaceless %}
      {% if errors|length > 0 %}
        {% for error in errors %}
          <span class=”error-style”>
            {{ error.message }}
          </span>
        {% endfor %}
      {% endif %}
    {% endspaceless %}
    {% endblock form_errors %}
    
  3. В настройках, в файле app/config/config.yml, следует указать Symfony этот шаблон:
    # Twig Configuration
    twig:
      #...
      form:
        resources:
          - 'form_errors.html.twig'
    
    
Удачи!

Комментариев нет:

Отправить комментарий