netresearch / config-fields-m2
A collection of custom config types for Magento 2 system configuration development.
Installs: 251 814
Dependents: 9
Suggesters: 0
Security: 0
Stars: 9
Watchers: 11
Forks: 2
Open Issues: 0
Type:magento2-module
Requires
- php: ^7.2.0 || ^8.1.0
- magento/framework: ^102.0.0 || ^103.0.0
- magento/module-backend: ^101.0.0 || ^102.0.0
- magento/module-config: ^101.1.0
README
No more fiddly "Yes/No" dropdowns in your configuration.
This Magento 2 extension offers a selection of custom "Field Types" and "Frontend Models" for use in Magento 2 extensions with a system configuration section.
Features
Custom field types
- Checkboxset: Functionally equivalent to native Magento field type
multiselect
- Radioset: Functionally equivalent to native Magento field type
select
- Checkbox: Functionally equivalent to native Magento field type
select
withYesNo
source model - Toggle: Same as "Checkbox", but with special styling
- TimeWithMinutePrecision: Works like the Magento field type
time
but hides the 'seconds' selection.
Custom frontend model blocks
- InfoBox: A customizable information section for your extension
Installation via composer
Requires PHP >=7.0 and Magento >=2.2
composer require netresearch/config-fields-m2:*
Usage
In your Magento 2 extension's etc/adminhtml/system.xml
, enter the class name of one
of the Types at Netresearch\ConfigFields\Model\Type
.
For example:
<field id="logging" type="Netresearch\ConfigFields\Model\Type\Checkbox"> <label>Logging</label> <button_label>Record messages to Magento logs</button_label> <comment>You must have global logging activated for this to work.</comment> </field> <field id="loglevel" type="Netresearch\ConfigFields\Model\Type\Radioset"> <label>Logging Level</label> <depends> <field id="logging">1</field> </depends> <source_model>Some\Module\Model\Config\Source\LogLevel</source_model> <comment>The log level Debug may result in very large log files.</comment> </field>
Custom frontend model blocks may use additional configuration values transmitted via <attribute>
nodes:
For example:
<field id="plugin-info"> <frontend_model>Netresearch\ConfigTypes\Block\InfoBox</frontend_model> <attribute type="logo">Some_Module::images/logo.svg</attribute> <attribute type="body_template">Some_Module::system/config/infoBoxBody.phtml</attribute> <attribute type="header_template">Some_Module::system/config/infoBoxHeader.phtml</attribute> <attribute type="view_model">Some\Module\ViewModel\Adminhtml\System\InfoBox</attribute> <attribute type="background">#ffcc01</attribute> </field>
The available attributes are documented inside the Block source code file.
Support & Issues
This extension is provided "as is", the author does not offer or promise any support. However, feel free to open a GitHub issue for any problems you encounter.