protected function _getElementHtml(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $html = ''; if ($element->getBeforeElementHtml() && $element->getBeforeElementHtml() != '') { $html .= '<label class="addbefore" for="' . $element->getHtmlId() . '">' . $element->getBeforeElementHtml() . '</label>'; } $html .= '<input id="' . $element->getHtmlId() . '" name="' . $element->getName() . '" ' . ' value="0" type="hidden"/>'; if ($element->getAfterElementJs() && $element->getAfterElementJs() != '') { $html .= $element->getAfterElementJs(); } if ($element->getAfterElementHtml() && $element->getAfterElementHtml() != '') { $html .= '<label class="addafter" for="' . $element->getHtmlId() . '">' . $element->getAfterElementHtml() . '</label>'; } return $html; }
/** * 2016-03-08 * Многие стандартные классы не вызывают getBeforeElementHtml(): * *) @see \Magento\Framework\Data\Form\Element\Textarea::getElementHtml() * https://mage2.pro/t/150 * *) @see \Magento\Framework\Data\Form\Element\Fieldset::getElementHtml() * https://mage2.pro/t/248 * *) @see \Magento\Framework\Data\Form\Element\Multiselect::getElementHtml() * https://mage2.pro/t/902 * А нам этот вызов нужен, в частности, для @see df_fe_init() * * @see \Magento\Framework\Data\Form\Element\AbstractElement::getElementHtml() * @param Sb $sb * @param string $result * @return string */ public function afterGetElementHtml(Sb $sb, $result) { /** * 2016-03-08 * @see \Magento\Framework\Data\Form\Element\AbstractElement::getElementHtml() * запихивает before_element_html в label: * https://github.com/magento/magento2/blob/487f5f45/lib/internal/Magento/Framework/Data/Form/Element/AbstractElement.php#L350-L353 */ return df_starts_with($result, '<label class="addbefore"') ? $result : df_prepend($result, $sb->getBeforeElementHtml()); }