Puncte:3

Cum pot înlocui un șir într-un text?

drapel zw

Cu {{ content.field_myfield.0 }}, primesc un mesaj. Când folosesc {{ content.field_myfield.0|inlocuire({"foo": "bar"}) }}, nu este redat nimic și nu sunt raportate erori.

Am incercat si eu sa schimb content.field_myfield.0 cu content.field_myfield.value sau `content.field_myfield.0.value, dar încă primesc un șir gol.

Cum pot înlocui un șir?

Mulțumiri

Puncte:7
drapel in

content.field_some_field este o matrice de randare, dar a inlocui filtrul operează pe șiruri. Trebuie să redați câmpul înainte de a apela înlocuire.

De exemplu:

{{ content.field_some_field|render|inlocuire({"bună ziua": "la revedere"}) }}
Puncte:6
drapel cn

Dacă acesta este un câmp de text formatat, puteți înlocui textul sursă înainte de a fi redat. Acest lucru are avantajul că etichetele HTML sunt păstrate:

{% set field_item = content.field_myfield.0 %}
{% set text_replaced = field_item['#text']|replace({'foo': 'bar'}) %}
{{ field_item|merge({'#text': text_replaced}) }}

Dacă nu sunteți sigur de tipul câmpului, verificați matricea de randare {{ dump(field_item) }}.

Puteți aplatiza matricea de randare înainte de înlocuire, așa cum a sugerat @sonfd, dacă textul înlocuit nu conține etichete HTML.

În general, există modalități mai bune de a înlocui textele. Implementați un filtru de text sau un apel invers pre_render/post_render. Vezi de exemplu https://www.drupal.org/forum/support/module-development-and-code-questions/2020-01-28/creating-a-custom-text-filter sau Cum se modifică conținutul paginii?

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.