Hersteller URL in Details Template ausgeben lassen

Hallo zusammen, weiß jemand, was der einfachste Weg wäre, um die Hersteller URL im Detail Template ausgeben zu lassen? Eingabe der Hersteller URL im Admin: Artikel > Hersteller > Hinzufügen > Feld „URL“ (Link zur Hersteller-Website) Die Ausgabe sollte in folgendem Block im Detailseiten Template erfolgen: [code]{block name=‚frontend_detail_supplier_info‘} {if $sArticle.supplierImg}

[{$sArticle.supplierName|escape}]({url controller=‚listing‘ action=‚manufacturer‘ sSupplier=$sArticle.supplierID} „{“)
{/if} {/block}[/code] Wie wäre nun die beste Herangehensweise um an die Hersteller URL zu kommen? Sollte ich den Detail Controller (function indexAction()) per Plugin (Hook after) erweitern und mir die Hersteller URL selbst aus der Datenbank abfragen und anschließend den Smarty Block mit der neuen Variablen aus dem Controller befüllen? Oder gibt es da eine elegantere Lösung (oder ist es bereits im Standard Implementiert und ich habe es nur nicht gefunden)? So etwas wie: {$sArticle.supplierUrl} Vielen Dank im Voraus für einen Lösungsansatz. :slight_smile:

Hallo,

gibt es hier bereits eine Lösung?! Ich wollte gerne die Hersteller URL im Hersteller-Slider ausgeben lassen.

Mit freundlichem Gruß

Bosche Wägetechnik

ich würde mir über {debug} alle smarty Variablen ausgeben und schauen ob sie verfügbar ist unter sArticle oder sSupplier und wenn, dann einfach verwenden … wenn sie nicht verfügbar ist, dann ein kleines Plugin schreiben welches sie euch zur verfügung stellt an den jeweiligen stellen

 

hab das mal eben gemacht und in der Detail seite sind folgende supplier Variablen zurverfüung 

supplierName  => „“
   supplierImg  => „“
   supplierID  => 
   supplierDescription  => „“
   supplier_attributes  => Array (0)

anscheinend keine URL … diese muss man sich dann wohl hinzufügen über den hook oder einen postdispatch auf die Detail seite wie du schon vorgeschlagen hast

Hallo Sheppard,

vielen Dank für Deine Antwort. {debug} hatte ich zwischenzeitlich auch bereits versucht.
Die Lösung war dann ein Plugin mit dem folgenden Hook zu registrieren:
 

        $this->subscribeEvent(
            'Supplier::getLink::replace',
            'replaceGetLink'
        );

Hallo Bosche,

um die Hersteller URL des Emotion Sliders anzupassen, musst Du ein Plugin erstellen.

Das folgende Event muss hierbei in der install() Methode registriert werden:
 

$this->subscribeEvent(
    'Enlight_Controller_Action_PostDispatchSecure_Widgets_Emotion',
    'mySupplierLinkExample'
);

Dann erstellst Du die Methode, die dem Slider Deine eigenen Hersteller-URLs zuweist:
 

public function mySupplierLinkExample( Enlight_Event_EventArgs $oArgs){
    $oView = $oArgs->getSubject()->View();

    $aEmotions = $oView->getAssign( 'sEmotions'); 

    foreach( $aEmotions as &$aEmotion){
        $aElements = &$aEmotion['elements'];
        foreach( $aElements as &$aElement){
            $aData = &$aElement['data'];
            if( array_key_exists( 'manufacturer_type', $aData)){
                $aValues = &$aData['values'];
                foreach( $aValues as &$aValue){
                    
                    // hier kannst Du Deine eigene Hersteller URL zuweisen, (Beispiel ohne korrekte Formatierung) 
                    $aValue['link'] = 'http://www.example.biz/' . strtolower( $aValue['name']);
                }
            }
        }
    } 
    $oView->assign( 'sEmotions', $aEmotions);
}   

 

2 Likes

Hallo,

Vielen Dank für die Info. Aber denke, dann mache ich mir einen redirect zunutze. Das geht schneller… :wink:

Gruß

Hallo Zusammen, 

ich hatte für einen anderen Fall den List Product Service von Shopware schon dekorieren müssen und habe mich faulerweise einfach dort eingehängt und mir zusätzlich den Hersteller Link noch bereitstellen lassen. Hätte ich nicht einen solchen Service gehabt, wäre ich den Weg vermutlich nicht extra gegangen… 

Falls es jemanden interessiert: 

Liebe Grüße

Kevin