जैसा कि @Wojtek Naruniec लिखता है, आपको एक जावास्क्रिप्ट फ़ाइल में अपनी स्वयं की कस्टम सत्यापन विधि बनानी होगी और इसे system.xml फ़ाइल में अपने मॉड्यूल कॉन्फ़िगरेशन फ़ील्ड में उपयोग करना होगा।
मान लीजिए कि आपका क्षेत्र इस प्रकार है:
<field id="color" translate="label comment" type="text" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Color</label>
<comment>Exadecimal value, without #: ex. FFFFFF</comment>
</field>
और आप क्षेत्र की लंबाई (ठीक 6 वर्ण) की जांच करना चाहेंगे।
अपनी जावास्क्रिप्ट फ़ाइल बनाएँ,
vendorName / moduleName / देखें / adminhtml / वेब / js / validation.js
उदाहरण के लिए:
require([
'jquery',
'mage/translate',
'jquery/validate'],
function($){
$.validator.addMethod(
'validate-exadecimal-color-length', function (v) {
return (v.length == 6);
}, $.mage.__('Field must have length of 6'));
}
);
फिर व्यवस्थापक कॉन्फ़िगरेशन पृष्ठ में जावास्क्रिप्ट फ़ाइल लोड करें ताकि आपको फ़ाइल उत्पन्न करनी पड़े
vendorName / moduleName / देखें / adminhtml / लेआउट / adminhtml_system_config_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<link src="vendorName_moduleName::js/validation.js"/>
</head>
</page>
अब आप अपने सत्यापनकर्ता को अपने system.xml फ़ाइल के <validate>
टैग में <field>
टैग जोड़ने का उपयोग कर सकते हैं :
<field id="color" translate="label comment" type="text" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Color</label>
<validate>validate-exadecimal-color-length</validate>
<comment>Exadecimal value, without #: ex. FFFFFF</comment>
</field>