Example #1
0
 /**
  * 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));
 }
Example #2
0
/**
 * 2016-01-06
 * @param AE $e
 * @param string $suffix [optional]
 * @return array(string => string)
 */
function df_fe_uid(AE $e, $suffix = null)
{
    return ['data-ui-id' => E::uidSt($e, $suffix)];
}
Example #3
0
 /**
  * 2015-12-13
  * Отличия от модифицируемого метода
  * @see \Magento\Framework\Data\Form\Element\AbstractElement::getLabelHtml():
  * 1) Добавляем свои классы для Font Awesome.
  * 2) При использовании Font Awesome не добавляем исходную подпись
  * (значением которой является класс Font Awesome)
  * и выводим, по сути, пустые теги <label><span></span></label>.
  * 3) Добавляем атрибут title.
  * 2015-12-28
  * 4) Добавляем класс, соответствующий типу элемента.
  *
  * Пример использования Font Awesome: https://github.com/mage2pro/core/tree/7cb37ab2c4d728bc20d29ca3c7c643e551f6eb0a/Framework/Data/Form/Element/Font.php#L40
  *
  * @see \Df\Framework\Form\Element\Font::onFormInitialized()
  * @see \Magento\Framework\Data\Form\Element\AbstractElement::getLabelHtml()
  * @param Sb|E $sb
  * @param \Closure $proceed
  * @param string|null $idSuffix
  * @return string
  */
 public function aroundGetLabelHtml(Sb $sb, \Closure $proceed, $idSuffix = '')
 {
     /** @var string|null|Phrase $label */
     $label = $sb->getLabel();
     /** @var string $result */
     if (is_null($label)) {
         $result = '';
     } else {
         $label = (string) $label;
         /**
          * 2015-12-25
          * @see \Magento\Framework\Data\Form\Element\Multiline::getLabelHtml()
          * имеет другое значение по-умолчанию параметра $idSuffix:
          * public function getLabelHtml($suffix = 0)
          * https://github.com/magento/magento2/blob/2.0.0/lib/internal/Magento/Framework/Data/Form/Element/Multiline.php#L59
          */
         if ('' === $idSuffix && $sb instanceof Multiline) {
             $idSuffix = 0;
         }
         /** @var bool $isFontAwesome */
         $isFontAwesome = df_starts_with($label, 'fa-');
         /** @var string[] $classA */
         $classA = ['label', 'admin__field-label', 'df-element-' . $sb->getType()];
         if ($isFontAwesome) {
             $classA[] = 'fa';
             $classA[] = $label;
             $label = '';
         }
         /** @var array(string => string) $params */
         $params = ['class' => df_cc_s($classA), 'for' => $sb->getHtmlId() . $idSuffix, 'data-ui-id' => E::uidSt($sb, 'label')];
         /** @var string $title */
         $title = (string) $sb->getTitle();
         if ($title !== $label) {
             $params['title'] = $title;
         }
         $result = df_tag('label', $params, df_tag('span', [], $label)) . "\n";
     }
     return $result;
 }
Example #4
0
 /**
  * 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__};
 }
Example #5
0
 /**
 * 2016-05-30
 * @override
 * @see \Df\Framework\Form\Element::getComment()
 * @used-by \Magento\Config\Block\System\Config\Form\Field::_renderValue()
 * https://github.com/magento/magento2/blob/a5fa3af3/app/code/Magento/Config/Block/System/Config/Form/Field.php#L82-L84
 		if ((string)$element->getComment()) {
 			$html .= '<p class="note"><span>' . $element->getComment() . '</span></p>';
 		}
 */
 public function getComment()
 {
     return $this->thirdPartyLocalhost() ? null : parent::getComment();
 }