From b2d8361e82e3fdaadde2846774f0130b4c773783 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Sat, 22 Aug 2020 17:54:42 -0700 Subject: [PATCH] CRM_Core_Resources_Common - Add skeleton for bundles, 'coreStyles' and 'coreResources' --- CRM/Core/Resources/Common.php | 68 +++++++++++++++++++++++++++++++++++ CRM/Utils/Hook.php | 16 +++++++++ Civi/Core/Container.php | 6 ++++ 3 files changed, 90 insertions(+) create mode 100644 CRM/Core/Resources/Common.php diff --git a/CRM/Core/Resources/Common.php b/CRM/Core/Resources/Common.php new file mode 100644 index 000000000000..008b60a5af3c --- /dev/null +++ b/CRM/Core/Resources/Common.php @@ -0,0 +1,68 @@ +filter(function ($s) use ($region) { + if ($s['type'] !== 'settings' && !isset($s['region'])) { + $s['region'] = $region; + } + return $s; + }); + return $bundle; + } + +} diff --git a/CRM/Utils/Hook.php b/CRM/Utils/Hook.php index 381b69f8f685..17532b2bb8b8 100644 --- a/CRM/Utils/Hook.php +++ b/CRM/Utils/Hook.php @@ -421,6 +421,22 @@ public static function links($op, $objectName, &$objectId, &$links, &$mask = NUL return self::singleton()->invoke(['op', 'objectName', 'objectId', 'links', 'mask', 'values'], $op, $objectName, $objectId, $links, $mask, $values, 'civicrm_links'); } + /** + * Alter the contents of a resource bundle (ie a collection of JS/CSS/etc). + * + * TIP: $bundle->add*() and $bundle->filter() should be useful for + * adding/removing/updating items. + * + * @param CRM_Core_Resources_Bundle $bundle + * @return null + * @see CRM_Core_Resources_CollectionInterface::add() + * @see CRM_Core_Resources_CollectionInterface::filter() + */ + public static function alterBundle($bundle) { + return self::singleton() + ->invoke(['bundle'], $bundle, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_alterBundle'); + } + /** * This hook is invoked during the CiviCRM form preProcess phase. * diff --git a/Civi/Core/Container.php b/Civi/Core/Container.php index ee8b214e7fd1..5a36afacf4d7 100644 --- a/Civi/Core/Container.php +++ b/Civi/Core/Container.php @@ -206,6 +206,12 @@ public function createContainer() { [] ))->setPublic(TRUE); + $container->setDefinition('bundle.coreStyles', new Definition('CRM_Core_Resources_Bundle', ['coreStyles'])) + ->setFactory('CRM_Core_Resources_Common::createStyleBundle'); + + $container->setDefinition('bundle.coreResources', new Definition('CRM_Core_Resources_Bundle', ['coreResources'])) + ->setFactory('CRM_Core_Resources_Common::createFullBundle'); + $container->setDefinition('pear_mail', new Definition('Mail')) ->setFactory('CRM_Utils_Mail::createMailer');