Shopseite in beliebigem Template anzeigen

Hallo zusammen,

kann mir bitte jemand sagen, wie ich in einer beliebigen TPL-Datei auf eine der Shopseiten (Inhalte/Shopseiten) zugreifen kann?

Ich hab mir zwar dazu schon die sites-navigation.tpl angeschaut, aber ich komm nicht drauf, wie ich die $customPages in meinem Template gefüllt bekomme.

Danke und liebe Grüße

Oliver

Hallo,

im Prinzip müsstest du dir das Array $customPages selbst in deinem gewünschten Controller „zusammenbauen“, anders geht es logischerweise nicht, da $customPages ja nur bei Shopseiten ausgeliefert wird. Siehe: https://github.com/shopware/shopware/blob/5.6/engine/Shopware/Controllers/Frontend/Custom.php#L57 bzw. https://github.com/shopware/shopware/blob/5.6/engine/Shopware/Controllers/Frontend/Custom.php#L73 .

Grüße

Sebastian

Hallo Sebastian,

Danke für Deine Antwort. Im Prinzip klar, ABER wie und wo find ich jeweils den richtigen Controller?

Dake

Oliver

Hallo Oliver

Den richtigen Controller findest Du in der Browser Konsole:

Hier ist ersichlich das der Listing Controller angesprochen wird.

Gruss

Alexander

1 Like

Hier ein Beispiel wie Du eine Smarty Variable global für alle Views bereitstellen kannst - falls Dir so etwas hilft?

pluginName = $pluginName;
        $this->pluginDirectory = $pluginDirectory;
        $this->templateManager = $templateManager;
    }

    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure' => 'onFrontendPostDispatchSecure'
        ];
    }

    public function onFrontendPostDispatchSecure()
    {
        $this->assignSmartyVariables();
    }

    private function assignSmartyVariables()
    {
        $this->templateManager->assign('customPages', "Your Value");
    }
}

In Deiner services.xml:

            %customer_canvas.plugin_name%
            %customer_canvas.plugin_dir%

 

1 Like