示例#1
0
文件: Number.php 项目: mage2pro/core
 /**
  * 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]);
 }
示例#2
0
文件: Select2.php 项目: mage2pro/core
 /**
  * 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);
 }
示例#3
0
文件: ArrayT.php 项目: mage2pro/core
 /**
  * 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');
 }
示例#4
0
文件: Font.php 项目: mage2pro/core
 /**
  * 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());
 }
示例#5
0
 /**
  * 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__);
 }
示例#6
0
 /**
  * 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'));
 }
示例#7
0
文件: Table.php 项目: mage2pro/core
 /**
  * @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()]);
 }
示例#8
0
 /**
  * 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__);
 }
示例#9
0
文件: Number.php 项目: mage2pro/core
 /**
  * 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');
 }
示例#10
0
文件: Color.php 项目: mage2pro/core
 /**
  * 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'));
 }
示例#11
0
 /**
  * 2016-09-03
  * @override
  * @see \Df\Framework\Form\Element\Select2::onFormInitialized()
  * @return void
  */
 public function onFormInitialized()
 {
     parent::onFormInitialized();
     df_fe_init($this, __CLASS__);
 }
示例#12
0
 /**
  * 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']]);
 }