Symfony / a2lix_translations / настроить

Кто-нибудь может мне помочь. Как я могу изменить шаблон по умолчанию для версии начальной загрузки? Потому что входные данные не имеют класса "управление формой".

Вот дефолт:

{% block a2lix_translations_widget %}
    {{ form_errors(form) }}
    <div class="a2lix_translations tabbable">
        <ul class="a2lix_translationsLocales nav nav-tabs">
        {% for translationsFields in form %}
            {% set locale = translationsFields.vars.name %}

            <li {% if app.request.locale == locale %}class="active"{% endif %}>
                <a href="#" data-toggle="tab" data-target=".{{ translationsFields.vars.id }}_a2lix_translationsFields-{{ locale }}">
                    {{ locale|capitalize }}
                    {% if form.vars.default_locale == locale %}[Default]{% endif %}
                    {% if translationsFields.vars.required %}*{% endif %}
                </a>
            </li>
        {% endfor %}
        </ul>

        <div class="a2lix_translationsFields tab-content">
        {% for translationsFields in form %}
            {% set locale = translationsFields.vars.name %}

            <div class="{{ translationsFields.vars.id }}_a2lix_translationsFields-{{ locale }} tab-pane {% if app.request.locale == locale %}active{% endif %} {% if not form.vars.valid %}sonata-ba-field-error{% endif %}">
                {{ form_errors(translationsFields) }}
                {{ form_widget(translationsFields) }}
            </div>
        {% endfor %}
        </div>
    </div>
{% endblock %}

{% block a2lix_translationsForms_widget %}
    {{ block('a2lix_translations_widget') }}
{% endblock %}

Я понятия не имею, что я должен вставить / удалить / изменить:(Спасибо

2 ответа

Я сделал собственный шаблон формы для a2lix_translations с начальной загрузкой (полный код слишком длинный и не оптимален для вставки здесь). Но чтобы получить классы, которые мне нужны, как контроль формы в виджетах, я сделал следующее:

         {%for field in translationsFields%} {# further break the transliationsfields into individual inputs #}
      {%if  field.vars.attr is not empty and field.vars.attr['class'] is defined and field.vars.attr['class']=="tinymce"%}
                                    {{form_widget(field ,{'attr':{'class':' tinymcertl'}}   )}}
                                {%else%}
                                    {{form_widget(field,{'attr':{'style':'direction:rtl','class':class~' form-control'}} )}}
                                {%endif%} 
{%endfor%}

Уродливый код, приведенный выше, в основном говорит, что, если у виджета уже есть класс, добавьте в него группу форм. Если у виджета вообще нет класса, установите класс в группу форм. Я сделал это, если заявление, чтобы избежать нулевых указателей, так как, если я попытаюсь сослаться на класс формы, а его нет, код потерпит крах. И если я просто установлю class для form-group, он сотрет предыдущие классы.

Надеюсь, это поможет. Мой полный код может оказаться бесполезным для вас, потому что языки, с которыми я работал, включали языки слева направо и языки справа налево, поэтому пришлось выполнить множество условий, чтобы ориентировать мою страницу в правильном направлении, что является грязным, и вы может не понадобиться...

PS: это было сделано на Symfony 2.7 или около того. Не тестировал на Symfony 3.

В моем случае sf 3.2 я только что сделал это изменение в моем config.yml, и все формы загружаются:

# app/config/config.yml
twig:
   //....
   form_themes:
      - 'bootstrap_3_layout.html.twig'
Другие вопросы по тегам