Produkte für Sprachversionen ausschließen

Fragen und Antworten zu Darstellungsvorgaben

Produkte für Sprachversionen ausschließen

Beitragvon fabian_perrey » 19. Feb 2015, 15:09

Hallo,

ich habe mal eine Frage und hoffe ich bin damit hier an der richtigen Stelle:

Ich versuche einige Produkte nur in der deutsche Version der Seite anzeigen zu lassen (Anforderung vom Kunden). Erst dachte ich, dass kann ich über die Zuweisung der Seiten, die in einem Produkt zugewiesen werden, aber hier wird je lediglich die Seite der Fallback Version angegeben. In den Darstellungseinstellungen habe ich auch keine Möglichkeit gefunden.

Gibt es denn eine Möglichkeit das zu tun (ohne dass man die Templates "misshandelt")?

Beste Grüße
fabian_perrey
fabian_perrey
 
Beiträge: 19
Registriert: 13. Aug 2014, 14:25

Re: Produkte für Sprachversionen ausschließen

Beitragvon supportteam » 19. Feb 2015, 16:47

Hallo,

die Möglichkeit gibt es durch einen speziellen Merconis-Hook namens "beforeProductlistOutput" (http://www.merconis.com/tl_files/EigeneDateien/DokumenteUndSonstigeDateien/manual/Spezielle_Funktionen/Hooks.htm).

Hier mal ein Code-Beispiel, das sicher weiterhilft:
Code: Alles auswählen
        // In der config.php Ihrer eigenen Hook-Erweiterung binden Sie den Hook so ein:
        $GLOBALS['MERCONIS_HOOKS']['beforeProductlistOutput'][] = array('myMerconisHookClass', 'myBeforeProductlistOutput');

        // In Ihrer Klasse (z. B. "myMerconisHookClass") notieren Sie z. B. folgende Funktion:
   public function myBeforeProductlistOutput($productListID, $arrProducts) {
      // Importieren des ls_shop_controller, um später Produkt-Objekte erzeugen zu können
      $this->import('ls_shop_controller');
      
      /*
       * Hat die übergebene Produktliste nicht die gewünschte ID, so wird das Produkt-Array unverändert zurückgegeben.
       * 'standard' ist die ID der regulären Haupt-Produktübersicht, CrossSeller werden mit 'crossSeller_id', also z. B. 'crossSeller_42' identifiziert
       *
       * Sollen alle Produktlisten gleichermaßen manipuliert werden, kann diese Prüfung entfallen.
       */
      if ($productListID != 'standard') {
         return $arrProducts;
      }
      
      // Erstellen eines noch leeren Arrays, in das alle Produkte eingetragen werden, die tatsächlich ausgegeben werden sollen
      $arrProductsToOutput = array();
   
      // Durchlaufen des übergebenen Produkt-Arrays, um die einzelnen Produkte überprüfen zu können
      foreach ($arrProducts as $productID) {
         // Erzeugen eines Produkt-Objektes, um auf alle Eigenschaften zugreifen zu können, die von der Verwendung in Templates bekannt sind
         $objProduct = $this->ls_shop_controller->getObjProduct($productID);
         
         // Durchführen einer beliebigen Prüfung und überspringen des Produktes, wenn es herausgefiltert werden soll
         if ($objProduct->_title == 'Gubergren') {
            continue;
         }
         
         // Hat das Produkt die Prüfung bestanden, wird des dem Ausgabe-Array hinzugefügt
         $arrProductsToOutput[] = $productID;
      }
      
      // Zurückgeben des erzeugten Ausgabe-Arrays
      return $arrProductsToOutput;
   }


Bitte lassen Sie uns wissen, falls Sie noch ein paar Tipps benötigen, um Ihre gewünschte Funktion zu realisieren!
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam
 
Beiträge: 245
Registriert: 28. Aug 2013, 16:58

Re: Produkte für Sprachversionen ausschließen

Beitragvon fabian_perrey » 23. Feb 2015, 12:04

Vielen Dank für das Feedback!

Für den aktuellen Anwendungsfall ist dieser Lösungsansatz jedoch zu komplex als das er sich rentieren würde.

Es ist aber sehr hilfreich über diese Hook Bescheid zu wissen, da man damit ja alle möglichen Dinge umsetzen kann.

Gibt es denn eiegentlich irgendwo eine Sammlung aller Hooks und/oder public Methoden, die Marconis anbietet?
Wenn ja, dann bitte her mit dem Link! :)
Wenn nein, wäre das sicher eine hilfreiche Ergänzung, die man sich als Entwickler wünschen würde.

Beste Grüße
FP
fabian_perrey
 
Beiträge: 19
Registriert: 13. Aug 2014, 14:25

Re: Produkte für Sprachversionen ausschließen

Beitragvon supportteam » 23. Feb 2015, 12:20

Hallo!

Eine Übersicht der Hooks finden Sie im Online-Handbuch (http://www.merconis.com > Support > Handbuch und dort spezielle Funktionen > Hooks). Ebenso beispielsweise MERCONIS-Platzhalter und -Inserttags.

Wir wünschen viel Erfolg!
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam
 
Beiträge: 245
Registriert: 28. Aug 2013, 16:58

Re: Produkte für Sprachversionen ausschließen

Beitragvon fabian_perrey » 24. Feb 2015, 10:26

Super, vielen Dank!
fabian_perrey
 
Beiträge: 19
Registriert: 13. Aug 2014, 14:25


Zurück zu Darstellungsvorgaben / Display settings

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast