name = $name; $typeAliases = [ '*all*' => ['script', 'scriptFile', 'scriptUrl', 'settings', 'style', 'styleFile', 'styleUrl', 'markup', 'template', 'callback'], '*default*' => ['script', 'scriptFile', 'scriptUrl', 'settings', 'style', 'styleFile', 'styleUrl'], '*style*' => ['style', 'styleFile', 'styleUrl'], '*script*' => ['script', 'scriptFile', 'scriptUrl'], ]; $mapType = function ($t) use ($typeAliases) { return $typeAliases[$t] ?? [$t]; }; $types = $types ?: ['*default*']; $this->types = array_unique(array_merge(...array_map($mapType, (array) $types))); } /** * Fill in default values for the 'region' property. * * @return static */ public function fillDefaults() { $this->filter(function ($s) { if (!isset($s['region'])) { if ($s['type'] === 'settings') { $s['region'] = NULL; } elseif (preg_match(';^(markup|template|callback);', $s['type'])) { $s['region'] = 'page-header'; } else { $s['region'] = CRM_Core_Resources_Common::REGION; } } return $s; }); return $this; } }