netresearch / config-fields-m2
netresearch/config-fields-m2
A collection of custom config types for Magento 2 system configuration development.
Custom Config Fields for Magento 2
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
selectwithYesNosource model - Toggle: Same as "Checkbox", but with special styling
- TimeWithMinutePrecision: Works like the Magento field type
timebut hides the 'seconds' selection.
Custom frontend model blocks
- InfoBox: A customizable information section for your extension
Installation via composer
Requires PHP 8.3, 8.4 or 8.5 and Magento 2.4.8 or 2.4.9.
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.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
1.4.1
Changed
- Use tilde version range for PHP requirement to match Magento framework convention.
1.4.0
Added
- Support for Magento 2.4.9
- Support for PHP 8.5
Removed
- Support for PHP 7.2, 8.1 and 8.2
- Support for Magento 2.4.4, 2.4.5, 2.4.6 and 2.4.7
1.3.0
Added
- Support for Magento 2.4.4
- Support for PHP 8.1
1.2.4
Fixed
- add item marker styling for nested lists in info box
1.2.3
Fixed
- allow empty info box view model
Changed
- info box default size
1.2.2
Fixed
- allow virtual types as info box view model
1.2.1
Fixed
- removed unused method argument
1.2.0
Removed
- Support for Magento 2.2 and below
- Support for PHP 7.0
Added
- Support for Magento 2.4
1.1.1
Fixed
- Checkbox sets and radio sets are now correctly disabled if "Use Default" is checked
- Info box default styling modernized
1.1.0
Fixed
- Fixed Markup of InfoBox to be valid HTML
Added
- New ModalGroup frontend model (experimental)
| Version | Stability | QA Status | Released |
|---|---|---|---|
| 1.4.1 | stable | Fail | 2026-06-03 09:18:20 |
| 1.4.0 | stable | Fail | 2026-06-01 11:56:20 |
| 1.3.0 | stable | Not tested | 2022-04-26 09:53:29 |
| 1.2.4 | stable | Not tested | 2021-03-04 19:01:36 |
| 1.2.3 | stable | Not tested | 2020-10-15 11:40:19 |
| 1.2.2 | stable | Not tested | 2020-09-10 08:49:58 |
| 1.2.1 | stable | Not tested | 2020-09-01 11:37:33 |
| 1.2.0 | stable | Not tested | 2020-08-19 11:59:15 |
| 1.1.1 | stable | Not tested | 2020-03-17 16:42:01 |
| 1.1.0 | stable | Not tested | 2019-09-27 08:36:39 |
| 1.0.1 | stable | Not tested | 2019-04-29 15:18:19 |
| 1.0.0 | stable | Not tested | 2019-03-13 12:11:25 |
Requires 4
| Package | Constraint |
|---|---|
| magento/framework | ^103.0.8 |
| magento/module-backend | ^102.0.8 |
| magento/module-config | ^101.2.8 |
| php | ~8.3.0||~8.4.0||~8.5.0 |
| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Pass | 0 | |
| PHPStan | Fail | 1 | 1 errors (level 4, ruleset: phpstan + bitexpert/phpstan-magento) |
| Cpd | Pass | 0 | |
| Security | Pass | 0 |
Turn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.