Hallo zusammen,
ich bin auf ein Problem gestoßen, das mich fast wahnsinnig macht.
Im TWIG-Template:
{% set can = page.metaInformation.canonical %}
{{ can }}
ergibt als Ausgabe im Front-End z.B. ‚https://meine-Domain/meine-Seite‘ aus.
Soweit, so gut.
Wenn ich aber schreibe:
{{ can|upper }}
führt das zur Ausgabe von: ‚124C71D524604CCBAD6042EDCE3AC799/NAVIGATION/609558B6CD8C45AD9424E2DE5EAA290C#‘
Wenn ich schreibe:
{{ can|lower }}
wird die unveränderte URL, also ohne lowercase, ausgegeben:
‚https://meine-Domain/meine-Seite‘
Wie kann denn so etwas überhaupt sein? Wenn ich die Filter auf „echte“ Strings anwende, funktioniert alles wie es soll:
{% set can = „Test“ %}
{{ can|upper }}
=> ‚TEST‘
{{ can|lower }}
=> ‚test‘
Bin hier wirklich ratlos und wäre über jeden Tip dankbar.
Du änderst durch dein upper eine gültige uuid zu einer ungültigen. Bsp.: 12345aaa ist nicht das gleiche wie 12345AAA !!
Darum erscheint bei lower eine seo url und bei upper kaputt.
Das erklärt mir einiges, wirft aber gleich die nächste Frage auf:
Wieso sehe ich keine UUID sondern einen string im Klartext, wenn ich page.metaInformation.canonical aufrufe? Ein dump(page.metaInformation) zeigt mir ja auch an canonical = string (77) „https://…“ und nie die UUID.
Wahrscheinlich bin ich hier einfach noch nicht erfahren genug, aber warum sehe ich im Front-End eine URL im Klartext, hinter den Kulissen scheint es aber immer eine UUID zu sein. Denn auch PHP Funktionen schlagen fehl, wenn ich den Wert an einen Service übergebe…
Bzw. anders gefragt: Wie kann ich per TWIG den Pfad der aktuellen Seite erhalten, den ich auch ganz normal über String Filter/Funktionen manipulieren kann?
Wäre schön, wenn du hier etwas Grundwissen vermitteln könntest
{% for part in product.categories.sortByPosition().first.breadcrumb|slice(1) %}{{ part }}/{% endfor %}{{ product.productNumber }}/{% if product.customFields.custom_product_brand is defined %}{{ product.translated.customFields.custom_product_brand|replace({’ ': ‚-‘}) }}{% endif %}-{{ product.translated.name}}