Gibt es eine Möglichkeit, ein benutzerdefiniertes Formularelement zu einem Magento-Adminhtml-Formular hinzuzufügen, ohne das benutzerdefinierte Element in den Ordner lib/Varian
zu platzieren?Hinzufügen eines benutzerdefinierten Formularelements zu einem Adminhtml-Formular
Ich habe den Code aufgespürt, die eine Varian_Data_Form_Element_
Fabrik
public function addField($elementId, $type, $config, $after=false)
{
if (isset($this->_types[$type])) {
$className = $this->_types[$type];
}
else {
$className = 'Varien_Data_Form_Element_'.ucfirst(strtolower($type));
}
$element = new $className($config);
$element->setId($elementId);
if ($element->getRequired()) {
$element->addClass('required-entry');
}
$this->addElement($element, $after);
return $element;
}
So im Wesentlichen ist, wenn ich das richtig zu lesen bin ich sicher, dass ein EAV-Attribut des Frontend einen bestimmten Feldtyp zurückgibt, (wie supertextfield
) und das System wird eine Varien_Data_Form_Element_Supertextfield
instanziieren/rendern, wenn das Bearbeitungsformular dieses Attributs angezeigt wird.
Das ist gut und gut, aber es bedeutet, dass ich mein benutzerdefiniertes Formularelement in die Ordnerhierarchie lib/Varian
aufnehmen muss. Angesichts der Tatsache, wie modulorientiert Magento ist, scheint es, als ob es falsch läuft.
Ich weiß, ich kann jank um mit einem custo Autoloader oder Symlinks im lib, aber ich bin in erster Linie daran interessiert, zu lernen, wenn es
ist kanonische Weise benutzerdefinierte Formelemente für Attribute
hinzufügen
Eine kanonische Möglichkeit, den Magento Autoloader anzupassen.
Hat nicht funktioniert für mich ich bin zu sagen, sorry. Die Autoload.php von Varien sieht nur in einem eigenen Ordner aus (Zeile 93). Ist es möglich, die Eigenschaften "_collectClasses" oder "_isIncludePathDefined" des Autoloads programmgesteuert so festzulegen, dass sie in den von mir angegebenen Ordnern aussehen? – urig