public function render(Varien_Data_Form_Element_Abstract $element) { //this is (more than) a bit nasty - but means we can use the Varien Template easily $fakeElement = new Varien_Object(); $variablesToCopy = array('note', 'html_container_id', 'fieldset_html_class', 'no_display', 'type', 'value_class', 'id', 'label_html'); array_walk($variablesToCopy, function ($dataName) use($fakeElement, $element) { $fakeElement->setData($dataName, $element->getDataUsingMethod($dataName)); }); $id = $element->getId(); $name = $element->getName(); $value = $element->getValue() ?: ""; if ($value) { $label = htmlspecialchars(array_reduce($element->getValues(), function ($acc, $val) use($value) { return $acc ?: ($val['value'] == $value ? $val['label'] : $acc); }, "")); } else { $label = ""; } $value = htmlspecialchars($value); $visibleInputName = preg_replace('/^(.*)\\]$/', '$1_visible_input]', $name); $fakeElement->setElementHtml("\n <input id='{$id}_visible_input' name='{$visibleInputName}' type='text' value='{$label}'\n data-original-value='{$label}' class='" . self::$_SELECTCLASSNAME . "'></input>\n <input id='{$id}' name='{$name}' type='hidden' value='{$value}' data-original-value='{$value}'></input>\n "); $this->_element = $fakeElement; return $this->toHtml(); }