What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Good morning, we have updated some packages in b2b, including spryker-shop/shop-ui and now get error

U01DH3E31C1
U01DH3E31C1 Posts: 23 🧑🏻‍🚀 - Cadet

Good morning,
we have updated some packages in b2b, including spryker-shop/shop-ui and now get errors with our twig templates:

YVES Exception
Twig\Error\RuntimeError - Variable "component" does not exist.
in /data/src/Pyz/Yves/CheckoutPage/Theme/default/templates/page-layout-order-submitted/page-layout-order-submitted.twig (47)
Url:/de/checkout/success

This refers to a code snippet like this:

{% set containerClass = component.renderClass(config.name ~ '__container', modifiers) ~ ' grid grid--middle grid--center' %}

How is that supposed to be handled?
Adding something like {% import model('component') as component %} is possible in some cases, but not all, and probably a mess if it needs to be added to all the files. What is recommended here?

Thanks in advance

Comments

  • Aleksander Kovalenko
    Aleksander Kovalenko Sprykee Posts: 45 🧑🏻‍🚀 - Cadet
    edited June 2021

    Hi Jens! Your issue is related to updating Twig to 3.x.

    As of Twig 2.0, macros imported in a file are not available in child templates anymore (via an include call for instance). You need to import macros explicitly in each file where you are using them.
    

    So yes, you have to import every macros explicitly in every template.

  • U01DH3E31C1
    U01DH3E31C1 Posts: 23 🧑🏻‍🚀 - Cadet

    OK, thanks.