Frage

Ich höre mir das an Catalog_product_collection_load_after Ereignis, um Code hinzuzufügen, wenn das Raster/die Liste der Kategorieprodukte geladen wird, und aus dem Beobachtercode möchte ich die folgenden Daten erhalten:

  1. ist es Listenansicht oder Rasteransicht?
  2. Wenn Rasteransicht, wie viele Produkte pro Zeile?

Es sieht so aus, als müsste ich auf den Symbolleistenblock „Produkte“ zugreifen, bin mir aber nicht sicher, wie das geht.Oder gibt es vielleicht einen besseren Weg?

Bearbeiten:Ich habe vergessen zu erwähnen, dass sich bei der Größenänderung des Bildschirms die Produkte pro Zeile ändern (z. B. auf kleineren Bildschirmen verkleinert).Kann ich das im Voraus im PHP wissen?

Danke!

War es hilfreich?

Lösung

Sie haben Recht mit der Annahme, dass Sie den Symbolleistenblock benötigen, um auf diese Informationen zuzugreifen.Aber das Ereignis, das Sie gerade hören, catalog_product_collection_load_after enthält nur die erhaltenen Informationen zu den Produktdaten, nicht deren Darstellungslogik.

Ein alternativer Ansatz könnte darin bestehen, der Veranstaltung zuzuhören core_block_abstract_prepare_layout_after und Anwenden des Filters nur auf den Symbolleistenblock (machen Sie ihn zum ersten Filter, da dieses Ereignis beim Generieren jedes einzelnen Blocks in Magento ausgelöst wird).Auf diese Weise können Sie alle Informationen vom Symbolleistenblock direkt nach der Initialisierung abrufen.

Wenn Sie außerdem feststellen, dass die Anzahl der Produkte pro Spalte reduziert ist, handelt es sich um ein reaktionsfähiges Design in Aktion, und Sie können dies nicht im Voraus über PHP wissen.Es ist sehr gut möglich, dass Ihre Spaltenanzahl bei unterschiedlichen Bildschirmgrößen gleich bleibt, es liegt nur daran, dass CSS sie anpasst, damit sie richtig angezeigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top