Puncte:0

Imposibil de verificat dacă variabila este goală în ramurile de vizualizare

drapel in
Lub

Încerc să suprascriu views-view-unformatted.html.twig fișier și doriți să verificați dacă titlu variabil este gol sau nu, dar orice aș face, se comportă întotdeauna așa cum este nu gol.

Știu că variabila titlu este un obiect, am încercat dpm() dar nu funcționează modificatori pentru a verifica dacă este gol.

Codul meu:

{#
/**
 * @fișier
 * Implementarea implicită a temei pentru a afișa o vizualizare a rândurilor neformatate.
 *
 * Variabile disponibile:
 * - title: titlul acestui grup de rânduri. Poate fi gol.
 * - rânduri: o listă a elementelor rând ale vizualizării.
 * - atribute: atributele HTML ale rândului.
 * - conținut: conținutul rândului.
 * - vizualizare: obiectul de vizualizare.
 * - default_row_class: Un indicator care indică dacă clasele implicite ar trebui să fie
 * folosit pe rânduri.
 *
 * @see template_preprocess_views_view_unformatted()
 *
 * Tematică @ingroup
 */
#}
{{ dpm(titlu) }}
{% dacă titlu|redare|decupare|lungimea nu este goală %}

{% set row_id = 1 %}

{% pentru cheie, rând în rânduri %}
    {% set row_id = key+1 %}
{% endfor %}
<a data-toggle="collapse" href="#collapse-{{ row_id }}" role="button" aria-expanded="false" aria-controls="collapse-{{ row_id }}">
  <h3>{{ titlu }}</h3>
</a>
<div class="collapse" id="collapse-{{ row_id }}">
{% endif %}
{% pentru rând în rânduri %}
  {%
    setați row_classes = [
      default_row_class ? 'views-row views-row-' ~ loop.index
    ]
  %}
  <div{{ row.attributes.addClass(row_classes) }}>
    {{- row.content -}}
  </div>
{% endfor %}
{% dacă titlul|redare|decupare|lungimea nu este goală %}
</div>
{% endif %}
Smartsheet eng avatar
drapel um
https://www.drupal.org/project/twig_capture are legătură.
Puncte:1
drapel in

{% if title|render|striptags|trim %} ar trebui să funcționeze.

  1. titlu|redare a reda, i.e.convertiți din matrice de randare în șir html.
  2. |striptags pentru a elimina orice etichete html din titlul redat.
  3. |trim pentru a elimina orice spațiu alb de la început și de la sfârșit.

Dacă titlu este deja un șir html (adică nu o matrice de randare), atunci puteți omite |renda și {% if title|striptags|trim %} ar trebui să fie suficient de bun.

sonfd avatar
drapel in
Deși trebuie să utilizați `|lungime` dacă titlul dvs. poate fi literal șirul „0”. Consultați [twig if docs](https://twig.symfony.com/doc/3.x/tags/if.html) pentru alte cazuri twig bool edge.
Puncte:0
drapel in
Lub

Bine, așa că se pare că funcționează:

{% if title|trim|spaceless|striptags|lungime != 0 %}

Ceea ce pare incredibil de stupid, dar bine...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.