/** * 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); }
/** * 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-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')); }
/** * 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']]); }