Produkte für Sprachversionen ausschließen

Fragen und Antworten zu Darstellungsvorgaben
Antworten
fabian_perrey
Beiträge: 19
Registriert: 13. Aug 2014, 15:25

Produkte für Sprachversionen ausschließen

Beitrag von fabian_perrey »

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
Benutzeravatar
supportteam
Beiträge: 245
Registriert: 28. Aug 2013, 17:58

Re: Produkte für Sprachversionen ausschließen

Beitrag von supportteam »

Hallo,

die Möglichkeit gibt es durch einen speziellen Merconis-Hook namens "beforeProductlistOutput" (http://www.merconis.com/tl_files/Eigene ... /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!
fabian_perrey
Beiträge: 19
Registriert: 13. Aug 2014, 15:25

Re: Produkte für Sprachversionen ausschließen

Beitrag von fabian_perrey »

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
Benutzeravatar
supportteam
Beiträge: 245
Registriert: 28. Aug 2013, 17:58

Re: Produkte für Sprachversionen ausschließen

Beitrag von supportteam »

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!
fabian_perrey
Beiträge: 19
Registriert: 13. Aug 2014, 15:25

Re: Produkte für Sprachversionen ausschließen

Beitrag von fabian_perrey »

Super, vielen Dank!
Antworten

Zurück zu „Darstellungsvorgaben / Display settings“