editor.html.twig 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. {% extends "forms/field.html.twig" %}
  2. {% set value = (value is null ? field.default|tu : value) %}
  3. {% if not codemirrorOptions %}
  4. {% set codemirrorOptions = {'mode': 'gfm', 'ignore': ['code', 'preview']}|merge(field.codemirror|default({})) %}
  5. {% endif %}
  6. {% block field %}
  7. {% block label %}
  8. {% if field.label %}
  9. {% if field.help %}
  10. {% set hint = 'data-hint="' ~ field.help|tu|raw ~ '"' %}
  11. {% endif %}
  12. <div class="form-label form-field hint--bottom" {{ hint|raw }}>
  13. {{ field.label|tu|raw }}
  14. {{ field.validate.required in ['on', 'true', 1] ? '<span class="required">*</span>' }}
  15. </div>
  16. {% endif %}
  17. {% endblock %}
  18. <div class="form-field {{ field.classes|default('') }}">
  19. <div class="form-data grav-editor">
  20. <div class="grav-editor-content is-active">
  21. <textarea
  22. data-grav-editor="{{ {'codemirror': codemirrorOptions} | json_encode|e('html_attr') }}"
  23. data-grav-editor-mode="editor"
  24. name="{{ (scope ~ field.name)|fieldName }}"
  25. {% if field.classes is defined %}class="{{ field.classes }}" {% endif %}
  26. {% if field.id is defined %}id="{{ field.id|e }}" {% endif %}
  27. {% if field.style is defined %}style="{{ field.style|e }}" {% endif %}
  28. {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
  29. {% if field.placeholder %}placeholder="{{ field.placeholder|tu }}"{% endif %}
  30. {% if field.autofocus in ['on', 'true', 1] %}autofocus="autofocus"{% endif %}
  31. {% if field.novalidate in ['on', 'true', 1] %}novalidate="novalidate"{% endif %}
  32. {% if field.readonly in ['on', 'true', 1] %}readonly="readonly"{% endif %}
  33. {% if field.validate.required in ['on', 'true', 1] %}required="required"{% endif %}
  34. {% if 'preview' not in codemirrorOptions.ignore %}data-grav-urlpreview="{{ base_url }}/media/{{ admin.route|trim('/') }}.json"{% endif %}
  35. >{{ value|join("\n")|e('html') }}</textarea>
  36. </div>
  37. {% if field.resizer is not defined or field.resizer not in ['off', 'false', 0] %}<div class="grav-editor-resizer"></div>{% endif %}
  38. {% if field.description %}
  39. <div class="form-extra-wrapper {{ field.size }} {{ field.wrapper_classes }}">
  40. <span class="form-description">
  41. {% if field.markdown %}
  42. {{ field.description|tu|markdown(false)|raw }}
  43. {% else %}
  44. {{ field.description|tu|raw }}
  45. {% endif %}
  46. </span>
  47. </div>
  48. {% endif %}
  49. </div>
  50. </div>
  51. {% endblock %}