Quantcast
Channel: Programmierung - Shopware Community Forum
Viewing all articles
Browse latest Browse all 2871

Anzeige-Preise per Plugin in allen Listen austauschen

$
0
0

Hallo in die Runde,

gerade bin ich dabei einen Shop aufzusetzen, in dem die Preise in den Listenansichten anders sein sollen als in der Detailansicht, Warenkorb usw.

Dazu habe ich ein simpel aufgebautes Plugin geschrieben, in dem das Listing-Event abgefangen wird und die entsprechende Funktion die $sArticles ausliest, ergänzt und neu an die View wieder übergibt. Im Template prüft eine If-Schleife das Vorhandensein der neuen Variable und zeigt in diesem Fall den Wert der neuen Variable statt des normalen 'price' an.

So weit so gut, aber da sich so nur bei Kategorie-Listenansichten der Preis verändert, muss ich bei allen anderen Listen - Suche, AjaxSuche, Topseller - noch das Gleiche machen. Und die bereiten mir gerade Kopfschmerzen, weil sie nicht so wollen, wie ich es gerne hätte ...

Deshalb meine Frage: Gibt es nicht vielleicht noch einen eleganteren Weg, wie ich die $sArticles in allen Arten von Listendarstellungen auf einmal verändern kann?

namespace MyPlugin;

class MyPlugin extends \Shopware\Components\Plugin
{
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatch_Frontend_Listing' => 'onPostDispatchListing'
        ];
    }

    public function onPostDispatchListing(\Enlight_Event_EventArgs $args)
    {
        /**@var $controller Shopware_Controllers_Frontend_Listing */
        $controller = $args->getSubject();

        $view = $controller->View();
        $sArticles = $view->getAssign('sArticles');

        /*
        Ergänze die neuen Preise ...
        */

        $view->assign('sArticles', $sArticles);
    }
}

 

 


Viewing all articles
Browse latest Browse all 2871

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>