Kategorie identifizieren

Geschrieben von Mario SAM

Dieser Beitrag ist nicht eine Klasse auf Kategorien, aber ich werde einige Tipps, so dass Sie nicht erstellen unnötige Frontend Codes, Wiederherstellung native Funktionen, die das System bereits bietet.

So ist es sehr wichtig, dass Sie das System schon kennen, bevor Sie mit dem Erstellen von bereits vorhandenen Modulen und Funktionen beginnen.

Backend-Einstellungen

Wenn Sie auf eine Kategorie zugreifen, gibt es Dutzende von Informationen, die konfiguriert werden können, so dass die Notwendigkeit, Codes zu überprüfen (wenn es Kategorie X dies tun, wenn Kategorie Y ändert es auszuschließen).

Dinge, die von backend getan werden können:

- Entfernen Sie die Kategorie aus dem Navigationsmenü, aber bleiben Sie im System aktiv.
- Verlassen Sie jeder Kategorie eine Farbe (durch Ändern des Designs);
- Eingehende benutzerdefinierte Blöcke (wie Banner);
- Änderung der Reihenfolge der Anzeige der Produkte in der Auflistung;
- Hinzufügen (oder Entfernen) von dynamischen Blöcken (wie z. B. Warenkorb oder Newsletter) aus der Vorlage;
- Hinzufügen eines Bildes zur Kategorie (normal und miniatur);
- SEO indidivually anpassen (nach Kategorie);

Natürlich können Sie auch andere Dinge tun, aber das sind einige, die Sie konfigurieren können, ohne eine einzige Codezeile in die Vorlage einfügen zu müssen.

Ändern anderer Elemente

Nehmen wir an, dass Sie ein sehr bestimmtes Element der Seite beim Zugriff auf eine bestimmte Kategorie ändern möchten. ( Es ist schwierig, ein gutes Beispiel zu setzen, da fast alles durch das Backend getan werden kann).

Wenn Sie auf eine Kategorie zugreifen, registriert das System bei der Initialisierung dieser Kategorie einige Informationen, wie Sie sehen können:

app > code > core > Mage > Catalog > controllers > CategoryController.php

Innerhalb der Methode _initCatagory() Der Code, der die Variable registriert hat, hat Informationen über die Kategorie:

Mage::register('current_category', $category);

Dann können Sie in Ihrer Vorlage diese Informationen mit dem Code abrufen:

Mage::registry('current_category')->getName();

Dieser Code kann nützlich sein, wenn Sie mehrere Bedingungen gleichzeitig erfüllen müssen, zum Beispiel: Wenn die Kategorie X ist und der Wagen mit Y-Produkten ist und der Kunde aus dem W-Gruppe, dann sollte die Seite Z haben.

Weitere Informationen, die Sie aus der Registrierung erhalten könnten:

- getDescription();
- getName();
- getUrlPath();
...Ich habe 33 verfügbare Attribute gezählt...

Auf Nicht-Kategorie-Seiten funktioniert dieser Code nicht (return null).

Und wenn du kein Register hast?

Aber nicht alle Seiten haben ein register zu Beginn der Klasse. Also, wie können wir die Kategorie von Produkten auf der Homepage auflisten?

Lassen Sie uns ein Beispiel sehen, also öffnen Sie die phtml Datei, die für das Laden Ihrer Produktliste verantwortlich ist – wenn Sie nicht wissen, welche Datei Sie verwenden, lesen Sie den Beitrag: Debug in Frontend.

Wenn Sie nicht wissen, wie man Produkte auf der Homepage auflistet, lesen Sie den Beitrag: Vorgestellt Produkte auf der Homepage. In diesem Beispiel verwende ich die new.phtml Datei, die sich befindet bei:

app > design > frontend > base > default > template > catalog > product > new.phtml

Denken Sie daran, Dateien nicht in base/default zu ändern, immer eine Kopie zu default/default oder dein template/thema benutzerdefinierte.

In diesem Fall verwenden wir die Assoziation zwischen Produkten und Kategorien (die N bis N). Und während der Code läuft Produkt nach Produkt auf dem Bildschirm anzuzeigen, werden wir nehmen, um die Kategorie der einzelnen Produkte aufgelistet wiederherzustellen.

/* Lädt alle Kategorien, zu denen dieses Produkt gehört */
$cats = Mage::getModel('catalog/product')->load($_product->getId())->getCategoryIds();
/* Lädt den Kategorienamen durch Eingabe der Kategorie id q wurde vom Produkt geladen */
echo Mage::getModel('catalog/category')->load($cats[1])->getName();

Fügen Sie einfach diesen PHP-Code innerhalb der foreach, knapp unter dem Produktnamen und Sie sehen das Ergebnis.

Beispiel

Also mit dem obigen Code hast du einen Startpunkt für viele Variationen, du kannst den Kategorienamen in einer Variablen spielen, um Vergleiche zu machen und Präsentationsentscheidungen nach der Kategorie zu machen.

Ein Produkt kann mit mehreren Kategorien verknüpft werden, also getCategoryIds() gibt ein Array von Objekten zurück, und es liegt an dir zu entscheiden, welche Kategorie du bist Möchte laden.

Erfolg!

Der Autor

Mario SAM

Bis sich eine Gelegenheit ergibt, nach Deutschland zu ziehen, helfe ich weiterhin aus der Ferne.