How to extend a formatter plugin#
While the module provides an extensive set of formatters out of the box, we provide the ability to extend them further to meet your specific needs.
- Review the existing formatters in the module folder:
/modules/contrib/custom_field/src/Plugin/CustomField/FieldFormatter - Create the plugin directory in your module:
/src/Plugin/CustomField/FieldFormatter - Copy one of the formatters from step #1 into this directory.
- Rename the file and class name accordingly.
- Open the file and modify the plugin attributes:
- id – Change the id to a unique name (required). Prefixing with your module name is recommended.
- label – Change the label to a human-friendly name that will differentiate it from other widgets in the UI.
- description – Provide a description (optional)
- field_types – At least one field_type is required. In most cases, you will want to maintain the original value from the plugin you're extending to prevent unexpected issues of incompatibility.
- Modify the existing methods in the class.
- Save the file and clear the cache.
- Edit the field formatter settings on the Manage display page.
- You should now be able to select your new formatter type for a subfield with a matching field type.
Here's an example of a class that extends the TelephoneLinkFormatter plugin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |