/** * 2015-11-19 * @override * @see \Magento\Framework\Data\Form\Element\Renderer\RendererInterface::render() * @param AE|\Df\Framework\Form\Element $element * @return string */ public function render(AE $element) { /** @var bool $labelAtRight */ $labelAtRight = E::shouldLabelBeAtRight($element); /** * 2015-12-11 * Класс .df-label-sibling означает: элемент рядом с label. * В данном случае это всегда непосредственно элемент управления, * а вот для блочных элементов это может быть div-оболочка вокруг элемента: * @see \Df\Backend\Block\Widget\Form\Renderer\Fieldset\Element::elementHtml() */ $element->addClass('df-label-sibling'); /** * 2015-12-28 * К сожалению, мы не можем назначать классы для label: * @uses \Magento\Framework\Data\Form\Element\AbstractElement::getLabelHtml() * https://github.com/magento/magento2/blob/2.0.0/lib/internal/Magento/Framework/Data/Form/Element/AbstractElement.php#L425 * Потому ситуацию, когда label расположена справа от элемента, * помечаем классом для элемента. * При этом сама label справа может быть выбрана селектором .df-label-sibling ~ label */ if ($labelAtRight) { $element->addClass('df-label-at-right'); } /** @var string $innerA */ $innerA = [$element->getLabelHtml(), $element->getElementHtml()]; if ($labelAtRight) { $innerA = array_reverse($innerA); } return df_tag('span', ['class' => df_cc_s('df-element-inline', 'df-field', E::getClassDfOnly($element), $element->getContainerClass())], implode($innerA)); }
/** * 2015-11-22 * @used-by \Df\Backend\Block\Widget\Form\Renderer\Fieldset\Element::_render() * @return bool */ private function shouldLabelBeAtRight() { if (!isset($this->{__METHOD__})) { $this->{__METHOD__} = E::shouldLabelBeAtRight($this->e()); } return $this->{__METHOD__}; }