Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Systemy szablonów _ [TWIG] Prolem z autoescape dla zmiennej "zaszytej" w stringu

Napisany przez: swiezak 10.09.2017, 11:04:53

Witajcie.
Mam taki oto kod w widoku, wykorzystującym TWIG:

  1. {% if entity.enabled == 1 %}
  2. <http://december.com/html/4/element/img.html src="{{ asset(iconsPath) }}/{{ iconTickYES }}" data-toggle="tooltip" data-placement="top" title="Tak" alt="Tak" />
  3. {% elseif entity.enabled == 0 %}
  4. {% if entity.created %}
  5. {% set difference = date(entity.created|date('Y-m-d')).diff(date(('now')|date_modify('+1 day')|date('Y-m-d'))) %}
  6. {% set diffDays = difference.days %}
  7. {% set toDeleteTxt = '<http://december.com/html/4/element/a.html href="#" class="popoverData" data-content="Konto nieaktywne od {{ diffDays }} dni" rel="popover" data-placement="top" data-original-title="Informacja" data-trigger="hover"><http://december.com/html/4/element/span.html class="glyphicon glyphicon-object-align-horizontal"></http://december.com/html/4/element/span.html></http://december.com/html/4/element/a.html>' %}
  8. {% endif %}
  9. <http://december.com/html/4/element/img.html src="{{ asset(iconsPath) }}/{{ iconTickNO }}" data-toggle="tooltip" data-placement="top" title="Nie" alt="Nie" />{% if toDeleteTxt is defined %} {{ toDeleteTxt|striptags('<http://december.com/html/4/element/a.html><http://december.com/html/4/element/span.html>')|raw }}{% endif %}
  10. {% endif %}


Mam problem z wyświetleniem wartości zmiennej diffDays w popover. Dostaję ją w formie stringa, czyli Konto nieaktwyne od {{ diffDays }} dni, zamiast Konto nieaktywne od 30 dni. Czy ktoś bardziej zorientowany w temacie podpowie mi, co robię źle i w jaki sposób to naprawić?

Napisany przez: Damonsson 10.09.2017, 11:49:35

Po pierwsze za dużo logiki pakujesz do tego swojego widoku.

A co do pytania, jeden ze sposobów to np: https://twig.symfony.com/doc/2.x/templates.html#other-operators poszukaj o: ~

Napisany przez: swiezak 10.09.2017, 12:35:20

Dzięki Panie za zainteresowanie tematem i wskazówki.

Dla zainteresowanych - zmieniłem fragment kodu na następujący:

  1. {% set toDeleteTxt = "<http://december.com/html/4/element/a.html href='#' class='popoverData' data-content='Konto nieaktywne od #{ diffDays } dni' rel='popover' data-placement='top' data-original-title='Informacja' data-trigger='hover'><http://december.com/html/4/element/span.html class='glyphicon glyphicon-object-align-horizontal'></http://december.com/html/4/element/span.html></http://december.com/html/4/element/a.html>" %}


i ilość dni już poprawnie się wyświetla.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)