Merge pull request #23326 from civicrm/5.49
[civicrm-core.git] / mixin / menu-xml@1 / mixin.php
1 <?php
2
3 /**
4 * Auto-register "xml/Menu/*.xml" files.
5 *
6 * @mixinName menu-xml
7 * @mixinVersion 1.0.0
8 *
9 * @param CRM_Extension_MixInfo $mixInfo
10 * On newer deployments, this will be an instance of MixInfo. On older deployments, Civix may polyfill with a work-a-like.
11 * @param \CRM_Extension_BootCache $bootCache
12 * On newer deployments, this will be an instance of MixInfo. On older deployments, Civix may polyfill with a work-a-like.
13 */
14 return function ($mixInfo, $bootCache) {
15
16 /**
17 * @param \Civi\Core\Event\GenericHookEvent $e
18 * @see CRM_Utils_Hook::xmlMenu()
19 */
20 Civi::dispatcher()->addListener('hook_civicrm_xmlMenu', function ($e) use ($mixInfo) {
21 if (!$mixInfo->isActive()) {
22 return;
23 }
24
25 $files = (array) glob($mixInfo->getPath('xml/Menu/*.xml'));
26 foreach ($files as $file) {
27 $e->files[] = $file;
28 }
29 });
30
31 };