2 Stimmen

Fataler Fehler beim Laden der Katalog-Einstellungen im Backend

Bei einer neuen Magento-Installation 1.5.0.1 erhalte ich bei der Auswahl von Catalog aus dem Menü settings->settings folgende Fehlermeldung:

Fataler Fehler: Undefinierte Klassenkonstante 'RA /meine-install-dir /app/code/core/Mage/Adminhtml/Model/System/Config/Source/Preis/Stufe.php in Zeile 33

Geprüft Step.php und es sieht nicht beschädigt aus und enthält Folgendes:

class Mage_Adminhtml_Model_System_Config_Source_Price_Step
{

    public function toOptionArray()
    {
        return array(
            array(
               'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_AUTO,
               'label' => Mage::helper('adminhtml')->__('Automatic')
            ),
            array(
                'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_MANUAL,
                'label' => Mage::helper('adminhtml')->__('Manual')
            ),
        );
    }

}`

Kennt jemand diesen Fehler oder weiß, wie man ihn beheben kann?

6voto

Alan Storm Punkte 160579

PHP beschwert sich, dass es die Konstante auf RANGE_CALCULATION_AUTO die für die Klasse Mage_Catalog_Model_Layer_Filter_Price

Ausgehend von Ihren obigen Kommentaren klingt es so, als hätten Sie die Datei unter

app/code/core/Mage/Catalog/Model/Layer/Filter/Price.php

um sicherzustellen, dass die richtige Konstante definiert ist.

const RANGE_CALCULATION_AUTO    = 'auto';

Auf dieser Grundlage würde ich vermuten, dass es eine verschiedene Price.php wird für diese Klasse geladen. Dies kann passieren, wenn

  1. Jemand hat eine andere Version in community o local

  2. Jemand hat mit dem Include-Pfad jenseits von Magentos normalem Affentheater herumgepfuscht

Suchen Sie nach Dateien unter

app/community/core/Mage/Catalog/Model/Layer/Filter/Price.php
app/local/core/Mage/Catalog/Model/Layer/Filter/Price.php

Wenn das nicht funktioniert, fügen Sie etwas temporären Debugging-Code zu

app/code/core/Mage/Adminhtml/Model/System/Config/Source/Price/Step.php

die Reflection verwendet, um herauszufinden, aus welcher Datei PHP die Klasse lädt

class Mage_Adminhtml_Model_System_Config_Source_Price_Step
{

    public function toOptionArray()
    {
        //NEW LINES HERE
        $r = new ReflectionClass('Mage_Catalog_Model_Layer_Filter_Price');
        var_dump($r->getFileName());
        //echo $r->getFileName(); // if too long for var_dump
        exit("Bailing at line ".__LINE__." in ".__FILE__);
        //END NEW LINES
        return array(
            array(
               'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_AUTO,
               'label' => Mage::helper('adminhtml')->__('Automatic')
            ),
            array(
                'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_MANUAL,
                'label' => Mage::helper('adminhtml')->__('Manual')
            ),
        );
    }

}`      

Dies wird einen Dateipfad ausgeben, der auf den genauen Ort verweist, von dem PHP die Klasse lädt, was Sie ans Ziel bringen sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X