Civi extension: register xml/Menu via hook_civicrm_xmlMenu
The Engagement Report tab on Organization contact pages was loading the contact-view summary recursively inside its own tab pane. Root cause: Civi's menu router was not picking up the extension's xml/Menu file, so `civicrm/contact/view/engagement-report` fell back to the parent `civicrm/contact/view` route. Adding an explicit hook_civicrm_xmlMenu implementation forces the menu file to register, after which the route resolves to CRM_WebformMw_Page_Tab and the iframe renders as intended. Deploy: replace the extension files on the Civi server, then in Administer → System Settings → Extensions Disable + re-Enable webform-mw (or run `cv flush` on the server) so the menu cache is rebuilt.
This commit is contained in:
@@ -37,6 +37,20 @@ function _webform_mw_staff_key(): string {
|
|||||||
return is_string($env) ? $env : '';
|
return is_string($env) ? $env : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements hook_civicrm_xmlMenu().
|
||||||
|
*
|
||||||
|
* Registers this extension's menu file. Civi 5.50+ usually auto-discovers
|
||||||
|
* `xml/Menu/*.xml` from extensions, but some installations only pick the
|
||||||
|
* file up when an explicit hook returns it. Without this the new path
|
||||||
|
* `civicrm/contact/view/engagement-report` falls back to the parent
|
||||||
|
* `civicrm/contact/view` route and the tab pane recursively embeds the
|
||||||
|
* contact-view summary instead of our iframe.
|
||||||
|
*/
|
||||||
|
function webform_mw_civicrm_xmlMenu(&$files) {
|
||||||
|
$files[] = __DIR__ . '/xml/Menu/webform_mw.xml';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements hook_civicrm_tabset().
|
* Implements hook_civicrm_tabset().
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user