الأخبار التكنولوجية والاستعراضات والنصائح!

كيفية استخدام الحقول المتعددة التبعية في نموذج المسؤول Magento 2

ستساعدك المقالة التالية: كيفية استخدام الحقول المتعددة التبعية في نموذج المسؤول Magento 2

<؟ php

مورد مساحة الاسم \ ملحق \ بلوك \ Adminhtml \ ملحق \ تحرير \ علامة تبويب ؛

استخدام Magento \ Backend \ Block \ Template \ Context ؛

استخدام Magento \ Framework \ Data \ FormFactory ؛

استخدام Magento \ Framework \ Registry ؛

استخدام Magento \ Store \ Model \ System \ Store ؛

استخدم Magento \ Backend \ Block \ Widget \ Form \ Generic ؛

استخدم Magento \ Backend \ Block \ Widget \ Tab \ TabInterface ؛

استخدام Magento \ Catalog \ Model \ ProductFactory ؛

يمتد تفصيل فئة الأدوات العامة TabInterface

{

محمية $ _systemStore؛

محمي $ productFactory ؛

الوظيفة العامة __construct (

سياق $ سياق ،

التسجيل $ Registry ،

FormFactory $ formFactory ،

ProductFactory $ productFactory ،

تخزين $ systemStore ،

مجموعة بيانات $ = []

)

{

$ هذا -> _ systemStore = $ systemStore ؛

$ this-> productFactory = $ productFactory ؛

الأصل :: __ الإنشاء ($ Context، $ Registry، $ formFactory، $ data)؛

}

getTabLabel () الوظيفة العامة

{

return __ (“خيارات”) ؛

}

getTabTitle () الوظيفة العامة

{

return __ (“خيارات”) ؛

}

canShowTab () الوظيفة العامة

{

العودة صحيح

}

الوظيفة العامة مخفية ()

{

عودة كاذبة؛

}

وظيفة محمية _prepareForm ()

{

يحاول {

$ model = $ this -> _ coreRegistry-> Registry (‘current_Extension_option’) ؛

$ form = $ this -> _ formFactory-> create () ؛

$ form-> setHtmlIdPrefix (‘page_’) ؛

مجموعة الحقول $ = شكل دولار-> addFieldset (‘base_fieldset’، [‘legend’ => __(‘Settings’)]) ؛

إذا ($ model-> getId ()) {

$ fieldset-> addField (‘id’، ‘hidden’، [‘name’ => ‘id’]) ؛

}

تكرار الدفع بالدولار = مجموعة الحقول بالدولار -> حقل إضافة (

“تكرار_الدفع”،

‘يختار’،

[

                    ‘name’ => ‘repeat_payment’,

                    ‘label’ => __(‘Repeat Payments’),

                    ‘title’ => __(‘Repeat Payments’),

                    ‘required’ => true,

                    ‘options’ => [‘1’ => __(‘Daily’),

                        ‘2’ => __(‘Weekly’),

                        ‘3’ => __(‘Monthly’),

                        ‘4’ => __(‘Every…’),

                    ]

]

) ؛

FrequeancyOption $ = fieldset $-> addField (

“خيار التردد”،

‘يختار’،

[

                    ‘name’ => ‘frequancy_option’,

                    ‘label’ => __(”),

                    ‘title’ => __(”),

                    ‘required’ => true,

                    ‘options’ => $this->frequeancyOption()

                ]

) ؛

$ form-> setValues ​​($ model-> getData ()) ؛

$ this-> setForm (نموذج $) ؛

$ this-> setChild (

“شكل_بعد” ،

$ this-> getLayout () -> createBlock (‘Magento \ Backend \ Block \ Widget \ Form \ Element \ Dependence’)

-> addFieldMap ($ تكرار الدفع-> getHtmlId () ، $ تكرار الدفع-> getName ())

-> addFieldMap ($ FrequeancyOption-> getHtmlId () ، $ FrequeancyOption-> getName ())

-> addFieldDependence ($ FrequeancyOption-> getName () ، $ تكرار الدفع-> getName () ، 4)

) ؛

} catch (\ استثناء $ e) {

\ Magento \ Framework \ App \ ObjectManager :: getInstance () -> get (‘Psr \ Log \ LoggerInterface’) -> info ($ e-> getMessage ()) ؛

}

الوالد العائد :: _ PreparForm ()؛

}

الوظيفة المحمية _isAllowedAction ($ ResourceId)

{

إرجاع $ this -> _ authorization-> isAllowed ($ ResourceId)؛

}

تردد الوظيفة المحمية

{

$ opt = [‘1’ => __(‘1st’),

            ‘2’ => __(‘2nd’),

            ‘3’ => __(‘3rd’),

        ]؛

لـ ($ i = 4 ؛ $ i <= 365 ؛ $ i ++) {

$ اختيار[$i] = $ i. “th” ؛

}

العودة $ opt؛

}

}