Merge pull request #21865 from colemanw/SearchKitTags
[civicrm-core.git] / mixin / mgd-php@1 / mixin.php
CommitLineData
80262cf2
TO
1<?php
2
3/**
4 * Auto-register "**.mgd.php" files.
5 *
6 * @mixinName mgd-php
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 */
14return function ($mixInfo, $bootCache) {
15
16 /**
17 * @param \Civi\Core\Event\GenericHookEvent $e
18 * @see CRM_Utils_Hook::managed()
19 */
20 Civi::dispatcher()->addListener('hook_civicrm_managed', function ($event) use ($mixInfo) {
21 // When deactivating on a polyfill/pre-mixin system, listeners may not cleanup automatically.
22 if (!$mixInfo->isActive()) {
23 return;
24 }
25
26 $mgdFiles = CRM_Utils_File::findFiles($mixInfo->getPath(), '*.mgd.php');
27 sort($mgdFiles);
28 foreach ($mgdFiles as $file) {
29 $es = include $file;
30 foreach ($es as $e) {
31 if (empty($e['module'])) {
32 $e['module'] = $mixInfo->longName;
33 }
34 if (empty($e['params']['version'])) {
35 $e['params']['version'] = '3';
36 }
37 $event->entities[] = $e;
38 }
39 }
40 });
41
42};