Fix FA7 not loading: simplify to single all.css, fix kit code check

- Load only all.css (or all.min.css) instead of 5 redundant files
- Trim fA6KitCode to prevent whitespace from triggering CDN path
- Remove nested try/catch with 10 fallback registrations
- Single clean try/catch with one dynamic fallback
- all.css already bundles brands + solid + regular + fontawesome

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 23:03:49 -05:00
parent 8b49ff679b
commit 27c0006ac2

View File

@@ -184,39 +184,19 @@ if (!empty($params_googlesitekey)) {
$this->setMetaData('google-site-verification', htmlspecialchars($params_googlesitekey, ENT_QUOTES, 'UTF-8')); $this->setMetaData('google-site-verification', htmlspecialchars($params_googlesitekey, ENT_QUOTES, 'UTF-8'));
} }
if ($this->params->get('fA6KitCode')) { // Font Awesome 7 — Kit (CDN) or local files
$faKit = "https://kit.fontawesome.com/" . $this->params->get('fA6KitCode') . ".js"; $faKitCode = trim((string) $this->params->get('fA6KitCode', ''));
HTMLHelper::_('script', $faKit, ['crossorigin' => 'anonymous']); if ($faKitCode !== '') {
HTMLHelper::_('script', 'https://kit.fontawesome.com/' . $faKitCode . '.js', ['crossorigin' => 'anonymous']);
} else { } else {
try { // Load local FA7 Free — all.css includes brands, solid, regular, fontawesome
if($params_developmentmode){ $faAsset = $params_developmentmode ? 'vendor.fa7free.all' : 'vendor.fa7free.all.min';
$wa->useStyle('vendor.fa7free.all'); try {
$wa->useStyle('vendor.fa7free.brands'); $wa->useStyle($faAsset);
$wa->useStyle('vendor.fa7free.fontawesome');
$wa->useStyle('vendor.fa7free.regular');
$wa->useStyle('vendor.fa7free.solid');
} else {
$wa->useStyle('vendor.fa7free.all.min');
$wa->useStyle('vendor.fa7free.brands.min');
$wa->useStyle('vendor.fa7free.fontawesome.min');
$wa->useStyle('vendor.fa7free.regular.min');
$wa->useStyle('vendor.fa7free.solid.min');
}
} catch (\Throwable $e) { } catch (\Throwable $e) {
if($params_developmentmode){ // Fallback: register dynamically if asset not in registry
$wa->registerAndUseStyle('vendor.fa7free.all.dynamic', $templatePath . '/vendor/fa7free/css/all.css'); $faCss = $params_developmentmode ? 'vendor/fa7free/css/all.css' : 'vendor/fa7free/css/all.min.css';
$wa->registerAndUseStyle('vendor.fa7free.brands.dynamic', $templatePath . '/vendor/fa7free/css/brands.css'); $wa->registerAndUseStyle('vendor.fa7free.all.dynamic', $templatePath . '/' . $faCss);
$wa->registerAndUseStyle('vendor.fa7free.fontawesome.dynamic', $templatePath . '/vendor/fa7free/css/fontawesome.css');
$wa->registerAndUseStyle('vendor.fa7free.regular.dynamic', $templatePath . '/vendor/fa7free/css/regular.css');
$wa->registerAndUseStyle('vendor.fa7free.solid.dynamic', $templatePath . '/vendor/fa7free/css/solid.css');
} else {
$wa->registerAndUseStyle('vendor.fa7free.all.min.dynamic', $templatePath . '/vendor/fa7free/css/all.min.css');
$wa->registerAndUseStyle('vendor.fa7free.brands.min.dynamic', $templatePath . '/vendor/fa7free/css/brands.min.css');
$wa->registerAndUseStyle('vendor.fa7free.fontawesome.min.dynamic', $templatePath . '/vendor/fa7free/css/fontawesome.min.css');
$wa->registerAndUseStyle('vendor.fa7free.regular.min.dynamic', $templatePath . '/vendor/fa7free/css/regular.min.css');
$wa->registerAndUseStyle('vendor.fa7free.solid.min.dynamic', $templatePath . '/vendor/fa7free/css/solid.min.css');
}
} }
} }
$params_leftIcon = htmlspecialchars($this->params->get('drawerLeftIcon', 'fa-solid fa-chevron-left'), ENT_COMPAT, 'UTF-8'); $params_leftIcon = htmlspecialchars($this->params->get('drawerLeftIcon', 'fa-solid fa-chevron-left'), ENT_COMPAT, 'UTF-8');