/** * 2016-08-02 * @override * @see \Df\Framework\Form\Element\Text::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); $this->addClass('df-number'); df_fe_init($this, __CLASS__); $this->setAfterElementHtml($this[self::LABEL_RIGHT]); }
/** * 2016-09-03 * @override * Неправильно вызывать @uses df_fe_init() в методе * @see \Df\Framework\Form\Element\Select2::onFormInitialized(), * потому что onFormInitialized() вызывается на * @see \Df\Framework\Form\Element\Select2::setForm() * плагином @see \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterGetElementHtml() * https://github.com/mage2pro/core/blob/1.7.33/Framework/Plugin/Data/Form/Element/AbstractElement.php?ts=4#L77-L83 * и туда мы попадаем из метода @see \Magento\Config\Block\System\Config\Form::_initElement() * в точке https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Block/System/Config/Form.php#L347-L367 * перед инициализацией опций выпадающего списка, * которая происходит в том же методепозже, в точке * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Block/System/Config/Form.php#L376-L378 * * Поэтому вызываем @uses df_fe_init() в методе @see \Df\Framework\Form\Element\Select2::setRenderer(), * который вызывается из метода @see \Magento\Config\Block\System\Config\Form::_initElement() * уже после инициализации опций выпадающего списка, в точке * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Block/System/Config/Form.php#L379 * * @see \Magento\Framework\Data\Form\Element\AbstractElement::setRenderer() * @used-by \Magento\Config\Block\System\Config\Form::_initElement() * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Block/System/Config/Form.php#L379 * @param IRenderer $renderer * @return $this */ public function setRenderer(IRenderer $renderer) { /** * 2016-09-03 * В первый раз мы попадаем сюда отсюда: * @see \Magento\Framework\Data\Form\Element\Fieldset::addField() * https://github.com/magento/magento2/blob/2.1.1/lib/internal/Magento/Framework/Data/Form/Element/Fieldset.php#L213 * В этот момент опции выпадающего списка ещё не инициализированы, * поэтому дожидаемся их инициализации. */ if (!isset($this->{__METHOD__}) && $this->getValues()) { /** * 2016-09-03 * Этот класс присваивается оригинальному элементу select * (который при использовании select2 вроде бы роли не играет), * и родительскому контейнеру .df-field, который присутствует в том случае, * если наш элемент управления был создан внутри нашего нестандартного филдсета, * и осутствует, если наш элемент управления является элементом управления вернхнего уровня * (то есть, указан в атрибуте «type» тега <field>). */ $this->addClass(df_cc_s('df-select2', $this->customCssClass())); df_fe_init($this, __CLASS__, df_asset_third_party('Select2/main.css'), ['cssClass' => df_cc_s('df-select2', $this->customCssClass(), Fieldset::customCssClassByShortName(df_fe_name_short($this->getName()))), 'options' => $this->getValues(), 'value' => $this->getValue(), 'width' => $this->width()]); $this->{__METHOD__} = true; } return parent::setRenderer($renderer); }
/** * 2015-11-19 * @override * @see \Df\Framework\Form\Element\Fieldset::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); $this->addClass('df-array'); // 2015-12-29 // Невидимая строка-шаблон. df_hide($this->field('template', $this->itemFormElement())); /** @var int $itemId */ $itemId = 0; foreach ($this->v() as $key => $data) { /** @var string|int $key */ /** @var string|array(string => mixed) $data */ /** * 2016-07-30 * Раньше тут стоял код: // 2015-12-30 // https://github.com/mage2pro/core/tree/b1f6809b7723d8426636bb892b852f408bdc5650/Framework/view/adminhtml/web/formElement/array/main.js#L131 if (\Df\Config\A::FAKE !== $key) { $this->field($itemId++, $this->itemType(), null, $data); } * Теперь у нас ключ @see \Df\Config\A::FAKE удаляется в методе * @see \Df\Config\Backend\ArrayT::processA() * поэтому здесь его уже быть не должно. */ df_assert_ne(\Df\Config\A::FAKE, $key); $this->field($itemId++, $this->itemFormElement(), null, $data); } df_fe_init($this, __CLASS__, df_fa(), [], 'array'); }
/** * 2015-11-19 * @override * @see \Df\Framework\Form\Element\Fieldset::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); // 2016-07-30 // Этот стиль будет применён к элементу <fieldset>. $this->addClass('df-font'); $this->checkbox(O::enabled, 'Setup?'); /** @var FInline $row1 */ $row1 = $this->fieldsetInline('df-checkboxes')->hide(); $row1->checkbox(O::bold, 'B', ['title' => 'Bold']); $row1->checkbox(O::italic, 'I', ['title' => 'Italic']); $row1->checkbox(O::underline, 'U', ['title' => 'Underline']); $row1->color(O::color, null, ['title' => 'Font Color']); /** @var FInline $row2 */ $row2 = $this->fieldsetInline('df-family')->hide(); $row2->field(O::family, GoogleFont::class, null, ['title' => 'Font Family']); /** @var array(array(string => string)) $sizeValues */ $sizeValues = [Q::P__VALUES => SizeUnit::s()->toOptionArray()]; $row2->quantity(O::size, null, $sizeValues + ['title' => 'Font Size']); /** @var FInline $row3 */ $row3 = $this->fieldsetInline('row3')->hide(); /** * 2015-12-13 * Намеренно указываем в качестве подписи пустую строку, а не null, * чтобы получить пустые теги <label><span></span></label> * и потом стилизовать их своей иконкой. */ $row3->quantity(O::letter_spacing, '', $sizeValues + ['title' => 'Letter Spacing']); /** * 2015-12-13 * Передаём в качестве подписи название класса Font Awesome. * Такое стало возможным благодаря моему плагину * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::aroundGetLabelHtml() * https://github.com/mage2pro/core/tree/73bed4fbb751ab47ad1bb70a8d90f455da26b500/Framework/Data/Form/Element/AbstractElementPlugin.php#L53 */ /** * 2015-12-13 .test { transform : scale(1,1.5); -webkit-transform:scale(1,1.5); // Safari and Chrome -moz-transform:scale(1,1.5); // Firefox -ms-transform:scale(1,1.5); // IE 9+ -o-transform:scale(1,1.5); // Opera letter-spacing: 10px; } * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#scale() * http://stackoverflow.com/a/16447826 */ $row3->percent(O::scale_horizontal, 'fa-text-width', 100, ['title' => 'Horizontal Scale']); $row3->percent(O::scale_vertical, 'fa-text-height', 100, ['title' => 'Vertical Scale']); /** * 2015-12-13 * Намеренно указываем в качестве подписи пустую строку, а не null, * чтобы получить пустые теги <label><span></span></label> * и потом стилизовать их своей иконкой. */ df_hide($this->select(O::letter_case, '', LetterCase::s(), ['title' => 'Letter Case'])); df_fe_init($this, __CLASS__, df_fa()); }
/** * 2016-07-30 * @override * @see \Df\Framework\Form\Element\Text::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); $this->addClass('df-quantity'); /** @var string|null|Phrase $title */ $title = $this->getTitle(); $this->unsTitle(); /** @var Text|E $input */ $input = $this->text('value', $this->getLabel(), ['title' => $title]); $this->unsLabel(); /** @var array(int|string => string)|string $values */ $values = dfa($this->_data, self::P__VALUES, []); if (is_string($values)) { $values = [$values]; } $this->unsetData(self::P__VALUES); if (1 < count($values)) { $this->select('units', null, $values, ['title' => $title]); } else { $input->setAfterElementHtml(df_first($values)); } df_fe_init($this, __CLASS__); }
/** * 2016-03-08 * @override * @see \Df\Framework\Form\ElementI::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { $this->addClass('df-multiselect'); df_fe_init($this, __CLASS__, df_asset_third_party('Select2/main.css')); }
/** * @override * @see \Df\Framework\Form\ElementI::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { df_fe_init($this, __CLASS__, df_asset_third_party('Handsontable/main.css'), ['columns' => $this->columns()]); }
/** * 2015-11-19 * @override * @see \Df\Framework\Form\ElementI::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { df_fe_init($this, __CLASS__); }
/** * 2016-08-10 * @override * @see \Df\Framework\Form\Element\Select2::onFormInitialized() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); df_fe_init($this, __CLASS__, [], [], 'select2/number'); }
/** * 2015-11-24 * @override * @see \Df\Framework\Form\Element\Text::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); $this->addClass('df-color'); df_fe_init($this, __CLASS__, df_asset_third_party('ColorPicker/main.css')); }
/** * 2016-09-03 * @override * @see \Df\Framework\Form\Element\Select2::onFormInitialized() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); df_fe_init($this, __CLASS__); }
/** * 2015-11-28 * @override * @see \Df\Framework\Form\Hidden::onFormInitialized() * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::afterSetForm() * @return void */ public function onFormInitialized() { parent::onFormInitialized(); $this->addClass('df-google-font'); df_fe_init($this, __CLASS__, df_asset_third_party('Select2/main.css'), ['dataSource' => df_url_frontend('df-google-font'), 'value' => $this['value']]); }