17 December 2014 von teiling88
Snippets

eigene Templatebereiche vom Shopware HTTP Cache ausschließen

Um einzelne Templatebereiche vom HTTP Cache auszuschließen muss man diese über sogenannte Widgets ins Template einbinden. In diesem Beitrag werden wir ein rudimentäres Beispielplugin für ein Widget Controller vorstellen. Folgende Struktur wird im Plugin verwendet: - Bootstrap.php - Controllers/Widgets/ExcludeTemplate.php - Views/widgets/exlude_template/index.tpl Bootstrap.php

<?php
class Shopware_Plugins_Frontend_ExcludeTemplate_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
    public function install()
    {
        $this->registerController('Widgets', 'ExcludeTemplate');

        return true;
    }
}

ExcludeTemplate.php

<?php
class Shopware_Controllers_Widgets_ExcludeTemplate extends Enlight_Controller_Action
{
    public function init()
    {
        Shopware()->Template()->addTemplateDir(Shopware()->Plugins()->Frontend()->ExcludeTemplate()->Path().'Views');
    }

    public function indexAction()
    {
        $this->View()->uncachedTemplateVariable = rand();
    }
}

index.tpl

{$uncachedTemplateVariable}

Wenn dies nun in einem eigenen emotion_ Template eingebunden werden soll geht das wie folgt:

{action module=widgets controller=ExcludeTemplate action=index}

Loading…