This repository was archived by the owner on Mar 1, 2024. It is now read-only.
switched from include to include_once in types #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently implementing custom control types is problematic as it leads to classic chicken-egg problem.
Base classes (e.g. fm_controlBase) are included in types.php.
The same types.php contains code which adds custom control types (via fm_control_types filter).
There is no way to extend the base classes from another plugin and have them registered using this mechnism.
Proposed changes solve the problem partially. After switching to include_once, base type classes can be included_once in custom plugins to enable extension and there is no "Cannot redeclare class" problem anymore.
Remaining problem is that fm_control_types filter is used when Form Manager is loaded and some custom plugins might not be loaded at that time yet (i.e. custom plugin needs to be loaded before Form Manager to have the types registered).