Frage

Ich habe kürzlich eine benutzerdefinierte Variable mit dem Namen erstellt storecount - was ich programmgesteuert für jedes Geschäft erhöhen werde, das meinem Filialfinder-Plugin hinzugefügt wird.

Ich möchte dies an verschiedenen Stellen anzeigen, einschließlich Produkt- und Kategoriebeschreibungen, damit wir beim Hinzufügen eines neuen Geschäfts nicht jedes Vorkommen der Geschäftsanzahl finden und manuell um 1 erhöhen müssen.

Wobei {{customVar code=storecount}} funktioniert nicht in Kategoriebeschreibungen.Gibt es eine Möglichkeit, diese Variable zu erhalten, ohne den Magento-Kern in Stücke zu hacken?

War es hilfreich?

Lösung

Der einfachste Weg, um dies zu tun, besteht darin, den gleichen Vorlagenprozessor für die Kategoriebeschreibung zu verwenden, da er für die CMS-Blöcke und der Seiteninhalte verwendet wird. Das aus dem Widget-Modul.
Dafür brauchen Sie eine Erweiterung.Nennen wir es generell, generakodicetagcode.
Sie benötigen folgende Dateien.

StackExchange_Catalog - Die Deklarationsdatei

generasacodicetagpre.

app/etc/modules/StackExchange_Catalog.xml - die Konfigurationsdatei

generasacodicetagpre.

den Cache löschen und erneut versuchen.

Andere Tipps

ohne Magento-Kern zu hacken, ja;ohne Code, nein.

Sie können einen Beobachter schreiben, der das Ereignis Catalog_Category_Load_After hört und die Kategoriebeschreibung dort ausübt.

/ edit: Wenn die Kategorie mit der geänderten Beschreibung gespeichert wird, wird auch die benutzerdefinierte Variable gespeichert, sodass dies keine großartige Lösung ist.

Eine andere Möglichkeit wäre, Ihre hinzuzufügen storecount variable in eine Vorlagendatei mit entweder:

// To get the TEXT value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');

// To get the HTML value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');

Wenn Sie sich fragen, welche Vorlage, schalten Sie Hinweise zum Vorlagenpfad und Sie sollten in der Lage sein zu finden, wo Sie es in eine Vorlagendatei einfügen können.Überschreiben Sie keine Kernvorlage, kopieren Sie sie in das Verzeichnis Ihres Themas, also erstellen Sie eine Kopie davon irgendwo wie app/design/frontend/[Your Design Package]/[Your Theme]/template/catalog/category/view.phtml.Wenn Sie diese Vorgehensweise nicht befolgen, verlieren Sie Ihre Arbeit, wenn Sie Magento aktualisieren.

Es ist wahrscheinlich bessere Praxis zu erstellen Sie CMS-Blöcke und fügen Sie sie Ihren Vorlagendateien hinzu, damit Sie sie einfacher bearbeiten und deaktivieren können.

erstellen Sie Ihren CMS-Block mit Ihren Inhalten, einschließlich {{customVar code=storecount}}und fügen Sie es an der gewünschten Stelle in Ihre Vorlagendateien mit ein:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_cms_block_identifier')->toHtml() ?>

UPDATE Hatte gerade einen richtigen Blick auf Marius 'Antwort - seine Lösung scheint sehr ordentlich zu sein und fügt Magento die Verfassungsmäßigkeit hinzu, die Sie brauchen.

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