templates/components/image_input.html.twig line 1

Open in your IDE?
  1. {% set options = {
  2.     formWidgetField: null,
  3.     imagePath: null,
  4.     required: true,
  5.     maxSizeKb: 2 * 1024 * 1024,
  6.     canRemove: false,
  7.     form: null,
  8.     mediaType: 'image',
  9. }|merge(options|default({})) %}
  10. <div class="bg-white py-2 border p-2 rounded">
  11.     {% if options.imagePath %}
  12.         {% if options.mediaType == 'image' %}
  13.             <img class="mb-2" src="{{ asset(options.imagePath) }}" width="250px" data-remove-image alt="image preview">
  14.         {% elseif options.mediaType == 'video' %}
  15.             <video class="mb-2" width="250px" controls data-remove-image>
  16.                 <source src="{{ asset(options.imagePath) }}" type="video/mp4">
  17.                 Ваш браузер не поддерживает видео.
  18.             </video>
  19.         {% endif %}
  20.         {% if options.canRemove %}
  21.             <div class="remove-file-btn mb-2">
  22.                 <a href="javascript:void(0)" data-remove-image-button>Удалить медиа файл</a>
  23.             </div>
  24.             {# Формируем имя скрытого поля удаления. Для вложенных полей используем full_name и вставляем 'Remove' перед последней ']' #}
  25.             {% if options.formWidgetField.vars.full_name is defined %}
  26.                 {% set full = options.formWidgetField.vars.full_name %}
  27.                 {% set remove_name = full|slice(0, -1) ~ 'Remove]' %}
  28.             {% else %}
  29.                 {% set remove_name = options.form.vars.name ~ '[' ~ options.formWidgetField.vars.name ~ 'Remove]' %}
  30.             {% endif %}
  31.             <input name="{{ remove_name }}" type="hidden" data-remove-image-flag>
  32.         {% endif %}
  33.     {% endif %}
  34.     <div class="new-file-input{{ options.imagePath ? " mb-2" }}"{{ options.imagePath ? " hidden" }}>
  35.         {{ form_widget(options.formWidgetField, {'attr': {'
  36.             required': options.required,
  37.             'onchange': "Utils.validateFileSize(this, " ~ options.maxSizeKb ~ ")",
  38.         }}) }}
  39.     </div>
  40.     {% if options.imagePath %}
  41.         <a class="upload-new-file-btn" href="javascript:void(0)">Загрузить новый медиа файл</a>
  42.     {% endif %}
  43. </div>