Currently using the Trove template and I need to customize the user drop-down menu links rendered by HelixUltimateFeatureMenu::renderLogin() (Wishlist, Orders, Profile, Logout). These links are hardcoded in the feature class file at templates/{template}/features/menu.php, not in a component or module view.
The standard Joomla html/layouts/ override mechanism doesn't work here because:
getHeaderStyle() passes the template's headers/ directory as the basePath to FileLayout, which has highest search priority and always wins over html/layouts/.
The feature classes are loaded via include_features() in HelixUltimate.php, which hardcodes the features/ directory path — there's no override path lookup.
My current workaround:
Created templates/{template}/overrides/features/ with copies of the feature files.
Edited all templates/{template}/headers/*/header.php to change $feature_folder_path from features/ to overrides/features/.
Edited all templates/{template}/offcanvas/*/canvas.php similarly.
Edited HelixUltimate.php include_features() to check for overrides/features/ first (to avoid "Cannot redeclare class" fatal errors).
This works, but steps 2–4 are lost on every trove template and Helix Ultimate plugin update, requiring manual re-application.
Is there an officially supported, upgrade-safe method to override feature class behavior in Helix Ultimate? For example:
A plugin event that fires before renderLogin() output is returned?
A layout override path that getHeaderStyle() actually respects?
A config option to point include_features() at a custom directory?
Any guidance on the intended customization path for feature classes would be appreciated.