Hallo,
wenn „displayListingBuyButton“ im Shop konfiguriert wurde, ist es ja möglich schon im Listing, Artikel in den Warenkorb zu werfen. Ich möchte über ein Plugin diese Funktion u.U. abschalten können. Ich habe dazu box-basic.tpl entsprechend erweitert:
{extends file='parent:frontend/listing/product-box/box-basic.tpl'}
{block name="frontend_listing_box_article_buy"}
{if {config name="displayListingBuyButton"} && $PluginConfig.MeineBedingungErfüllt}
<div class="product--btn-container">
{if $sArticle.allowBuyInListing}
{include file="frontend/listing/product-box/button-buy.tpl"}
{else}
{include file="frontend/listing/product-box/button-detail.tpl"}
{/if}
</div>
{/if}
{/block}
Das Ganze funktioniert genau für so viele Artikel, wie in den Storefront-Einstellungen für „Artikel pro Seite“ festgelegt wurde (Standard: 12). Danach wird wieder die box-basic.tpl vom Theme abgearbeitet und meine Änderungen sind futsch. Wie erklärt sich dieses Verhalten ?
Wenn ich die Anpassungen direkt in meinem, von Bare abgeleiteten, Theme mache, geht es problemlos.
Gibt es eine Möglichkeit solche Dinge auch via Plugin zu lösen, also auch ohne Theme-Änderungen?
. Es liegt am Subscriber-Event. Mit Legacy_Struct_Converter_Convert_List_Product kommt man an alle Artikel im Listing ran: