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..

Hello Community... Is there a possibility to render a Widget in a Controller Action and put the rend

giovanni.piemontese
giovanni.piemontese Technical Lead @ Löffelhardt Spryker Solution Partner Posts: 871 🧑🏻‍🚀 - Cadet

Hello Community... Is there a possibility to render a Widget in a Controller Action and put the rendered template as part as json response? Thanks in advance for your support!

Comments

  • UKGT7RC7P
    UKGT7RC7P Posts: 538 🧑🏻‍🚀 - Cadet
    edited October 2019

    You should be able to get the twig service from the application, I guess

  • UKGT7RC7P
    UKGT7RC7P Posts: 538 🧑🏻‍🚀 - Cadet

    in the controller $this->getApplication()->get('twig')

  • UKGT7RC7P
    UKGT7RC7P Posts: 538 🧑🏻‍🚀 - Cadet

    and then $twig->render('your_template.twig', $params)

  • giovanni.piemontese
    giovanni.piemontese Technical Lead @ Löffelhardt Spryker Solution Partner Posts: 871 🧑🏻‍🚀 - Cadet

    Hi Daniel, thanks.. i will try so as u suggested... 😉

  • giovanni.piemontese
    giovanni.piemontese Technical Lead @ Löffelhardt Spryker Solution Partner Posts: 871 🧑🏻‍🚀 - Cadet

    .. but.. i would like to render the mini cart widget in a controller action..

    MiniCartWidget

        /**
         * @param int $cartQuantity
         */
        public function __construct($cartQuantity)
        {
            $this->addParameter('cartQuantity', $cartQuantity)
                ->addParameter('activeCart', $this->getActiveCart())
                ->addParameter('cartList', $this->getInActiveQuoteList())
                ->addParameter('isMultiCartAllowed', $this->isMultiCartAllowed());
    
            /** @deprecated Use global widgets instead. */
            $this->addWidgets($this->getFactory()->getViewExtendWidgetPlugins());
        }
    
        /**
         * @return string
         */
        public static function getName(): string
        {
            return 'MiniCartWidget';
        }
    
        /**
         * @return string
         */
        public static function getTemplate(): string
        {
            return '@MultiCartWidget/views/mini-cart/mini-cart.twig';
        }
    .....
    
    

    As u see the construct set other params... I don't want calculate on my controller the other params value.. otherwise i need to set new dependency provider (in this case for example multiCartClient etc...)

  • UKGT7RC7P
    UKGT7RC7P Posts: 538 🧑🏻‍🚀 - Cadet
    edited October 2019

    not sure I see -- in this case you would have a dedicated template like {{ widget("MyWidget", quantity) }}.

  • UKGT7RC7P
    UKGT7RC7P Posts: 538 🧑🏻‍🚀 - Cadet

    the other parameters would be inferred from the current environment