আমি ইউআই উপাদান ব্যবহার করে অ্যাডমিনে একটি ফর্ম তৈরি করেছি, তাই আমার view/adminhtml/ui_component/[module]_[entity]_form.xml
মধ্যে নিম্নলিখিতটি রয়েছে:
<field name="configuration">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Configuration</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">form</item>
<item name="sortOrder" xsi:type="number">30</item>
<item name="dataScope" xsi:type="string">configuration</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
এখন আমি এই মানটি একটি হতে চাই না textarea
, তবে আমি এই মানটির জন্য ব্যাকএন্ডে আমার নিজস্ব এইচটিএমএল যাদু তৈরি করতে চাই। এই 'এইচটিএমএল ম্যাজিক' শেষ পর্যন্ত অনেকগুলি জেএস / নাকআউট হবে যা পানির নিচে এখনও ফর্মটি পোস্ট করার সময় কিছু গোপন তথ্য প্রেরণ করে, সুতরাং এটি ফর্মের অংশ হওয়া দরকার। আমি যোগ করে একটি রেন্ডার যুক্ত করার চেষ্টা করেছি:
<item name="renderer" xsi:type="object">Vendor\Module\Block\Adminhtml\Renderer\Configurator</item>
তবে এটি এখনও পাঠ্যকে রেন্ডার করে। তারপরে আমি এর formElement
মতো একটি কাস্টম ক্লাস দিয়ে প্রতিস্থাপন করার চেষ্টা করেছি:
<item name="formElement" xsi:type="object">Vendor\Module\Component\Form\Element\Configurator</item>
তবে আমি ত্রুটিটি পেয়েছি:
The requested component ("Vendor\Module\Component\Form\Element\Configurator") is not found. Before using, you must add the implementation.
সুতরাং 2 টি প্রশ্ন এখানে:
- এডমিন ফর্মটিতে কাস্টম ফর্ম উপাদান যুক্ত করার সঠিক উপায় কি? (এবং যদি তাই হয়: কিভাবে?)
- যাই হোক না কেন: আমি কীভাবে বাস্তবায়নটি যুক্ত করতে পারি? তারা এটি কীভাবে করেছে তা দেখতে আমি ইউআই-মডিউলটি দিয়ে খনন করছি, তবে আমি কিছুই খুঁজে পাচ্ছি না।
\Magento\Framework\View\Element\UiComponent\Config\Provider\Component\Definition::setComponentData()
একটি ইভেন্ট ব্যবহার করে একটি কাস্টম উপাদান যুক্ত করার চেষ্টা করছিলাম , তবে এটি অনেক বেশি সুবিধাজনক! আমার সত্যিই সেই ম্যাজেন্টো 2 উদাহরণগুলিতে আরও নজর দেওয়া উচিত।