2017-02-02 24 views
0

Может кто-то мне помочь. Как изменить шаблон по умолчанию на bootstrap версия? Потому что вход не имеет класса «форма-контроль».Symfony/a2lix_translations/customize

Вот defaul:

{% 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 %} 

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

ответ

0

я сделал пользовательский шаблон формы для 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%} 

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

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

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

0

в моем случае НФ 3.2 я просто сделал это изменение в моем config.yml и все формы bootstraped:

# app/config/config.yml 
twig: 
    //.... 
    form_themes: 
     - 'bootstrap_3_layout.html.twig'