Закладка всех строк в блоке - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть шаблон JTwig (ветвь java) типа

SomeMagazine.twig:

bla bla bla, and I quote:
{% block quote %}
{% endblock%}

and some more bla bla bla and so on

Дочерний шаблон, вызывающий этот, выглядит примерно так:

MagQuote.twig:

{% extends  'SomeMagazine.twig' %}
{% block quote %}
{% include 'QuotAuthTemplate.twig' with { auth : quote.author } %} 
{% include 'QuotTextTemplate.twig' with { qtxt : quote.content } %} 
{% endblock %}
  1. Я хотел бы получить все содержимое блока quote с 1 вкладкой в ​​начале
  2. Обратите внимание, что я не могу вставить их в MagQuote.twig, поскольку он состоит из других шаблонов, поэтому вкладка включения шаблона будет содержать только первую вкладку всего другого шаблона
  3. Специально для JTwig Я попытался создать свою собственную функцию для содержимого вкладки (SimpleJtwigFunction и добавить ее к EnvironmentConfiguration при создании экземпляра шаблона), но я не могу понять, как вызвать ее для содержимого шаблона, поскольку

    • Я не могу (не знаю, как) сохранить их в переменной, чтобы я мог вызывать свой метод поверх нее;ни этот {% set 'tmpltCnt' = {% include ..., ни этот {% set 'tmpltCnt' = include ... синтаксис не работают (и я не могу его найти)
    • Я не могу вкладывать содержимое в QuotAuthTemplate.twig и QuotTextTemplate.twig, так как они используются в некоторых других местах, которые не требуютtabs ...
    • Я не могу (не знаю, как) вызвать функцию поверх самого include;ни этот {{ myTabbingMthd({% include ..., ни этот {{ myTabbingMthd(include ... синтаксис не работает (и я не могу его найти)

может быть, просто следую неправильному подходу здесь? ...

Ответ (вроде ...)

Лучшим решением было добавить "тегов" ;Уникальная строка, которую я позже смогу использовать для сопоставления с образцом, чтобы потом выполнять построчное табулирование и заменять ее на получающейся строке, удаляя теги ... Все еще надеюсь, что кто-то придумает что-то лучше, так как ...

Проблемы для этого решения

Если вам понадобится (как и я) наличие блока с отступом внутри другого, тогда сопоставление с образцом будет запутано, требуя от вас либоопределили разные теги для каждого, иначе посмотрите этот другой ответ для похожих ситуаций

1 Ответ

0 голосов
/ 19 февраля 2019

Это то, что вам нужно, когда вы можете обернуть шаблон с помощью вкладок (начальной загрузки):

{% block quote %}
    <div class="panel-heading ">
        <ul class="nav nav-tabs">
            <li class="active">
                <a data-toggle="tab" class="" role="tab" href="#tab1">Tab 1</a>
            </li>

            <li>
                <a data-toggle="tab" class="" role="tab" href="#tab2">Tab 2</a></li>
            </li>
        </ul>
    </div>
    <div class="panel-body">
        <div class="tab-content">
            <div id="tab1" class="tab-pane fade in active">
                {% include 'QuotAuthTemplate.twig' with { auth : quote.author } %} 
            </div>
            <div id="tab2" class="tab-pane fade">
                {% include 'QuotTextTemplate.twig' with { qtxt : quote.content } %} 
            </div>
        </div>
    </div>
{% endblock %}
...