netresearch / config-fields-m2

netresearch/config-fields-m2

A collection of custom config types for Magento 2 system configuration development.

  • Max Melzer
magento2-module 2.4.8-2.4.9 Compatible Based on composer requirements only QA: failed OSL-3.0

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 select with YesNo 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 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)
Versions
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
QA results
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
License
OSL-3.0
Authors
Make it pay

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.