Frage

Ich würde gerne die Gedanken der Leute über den besten Weg zum Patchen / Umschreiben verschiedener Lib-Dateien erfahren.Speziell Molke, die sich mit ein paar Problemen befasst, eines mit Kontrollkästchen und eins mit Bild typeingaben Ich habe festgestellt, dass beide Variablen Elemente das haben, was ich als Fehler bezeichnen würde.

Also, was ist der Upgrade-sichere Weg, um die folgenden Dateien zu aktualisieren?

  1. Varien_Data_Form_Element_Image
  2. Varien_Data_Form_Element_Checkboxes
War es hilfreich?

Lösung

Leider gibt es keine Möglichkeit, diese Klassen zu überschreiben.
Was Sie tun können, ist, sie als abstrakte Kernkurse zu behandeln.
Kopieren Sie sie in den Ordner local und tätigen Sie Ihre Änderungen dort.
Es gibt auch die lange und schmerzhafte Option, Ihren eigenen Klassen zu erstellen und den Code zu ändern, der sie zur Verwendung Ihrer Klassen verwendet.
Aber das kann schlecht enden.Es kann nicht einmal möglich sein.

Andere Tipps

Wenn Sie also ein eigenes Formular erstellen oder ein aktuelles Formular neu schreiben und Ihre Klasse erweitert wird Mage_Adminhtml_Block_Widget_Form dann können Sie die Funktion verwenden _getAdditionalElementTypes um anzugeben, welche Formulartypen welche Klasse zum Rendern verwenden.

Mit dieser Funktion können Sie überschreiben, welche Standardformularelemente verwendet werden, und auch Ihre eigenen definieren, wenn Sie dies benötigen.

Ein gutes Beispiel dafür finden Sie im Kundenmodul in der Klasse Mage_Adminhtml_Block_Customer_Edit_Tab_Account.Hier finden Sie, dass die Klassen für Bild-, Datei- und boolesche Formularelemente festgelegt sind.

/**
 * Return predefined additional element types
 *
 * @return array
 */
protected function _getAdditionalElementTypes()
{
    return array(
        'file'      => Mage::getConfig()->getBlockClassName('adminhtml/customer_form_element_file'),
        'image'     => Mage::getConfig()->getBlockClassName('adminhtml/customer_form_element_image'),
        'boolean'   => Mage::getConfig()->getBlockClassName('adminhtml/customer_form_element_boolean'),
    );
}

Wenn Sie sich dann diese Formularelemente ansehen, sehen Sie Beispiele für die Änderung des Codes an Ihre eigenen Bedürfnisse.

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