WizdomWeb/resources/views/layouts/head.php

50 lines
2.1 KiB
PHP

<?php
/**
* Head Partial (v6)
*
* This file includes metadata, stylesheets, and scripts necessary for rendering the site.
* Implements improved error handling to prevent undefined variable issues and corrects file path references.
*/
// Ensure all optional configurations have default values
$heroConfig = $heroConfig ?? ['enabled' => false];
$sliderConfig = $sliderConfig ?? ['enabled' => false];
$sidebarConfig = $sidebarConfig ?? ['enabled' => false];
$pageId = $pageId ?? null;
?>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $title ?? 'Wizdom Networks'; ?></title>
<!-- Bootstrap CSS with Fallback -->
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
onerror="this.onerror=null;this.href='/assets/bootstrap/css/bootstrap.min.css';">
<!-- Main Stylesheets -->
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/utilities.css">
<!-- Conditionally Load Component Stylesheets -->
<?php if (!empty($heroConfig) && isset($heroConfig['enabled']) && $heroConfig['enabled']) : ?>
<link rel="stylesheet" href="/assets/css/hero.css">
<?php endif; ?>
<?php if (!empty($sliderConfig) && isset($sliderConfig['enabled']) && $sliderConfig['enabled']) : ?>
<link rel="stylesheet" href="/assets/css/slider.css">
<?php endif; ?>
<?php if (!empty($sidebarConfig) && isset($sidebarConfig['enabled']) && $sidebarConfig['enabled']) : ?>
<link rel="stylesheet" href="/assets/css/sidebar.css">
<?php endif; ?>
<!-- Load Page-Specific Styles if Defined and File Exists -->
<?php
$pageCssFile = "/assets/css/" . htmlspecialchars($pageId, ENT_QUOTES, 'UTF-8') . ".css";
if (!empty($pageId) && file_exists($_SERVER['DOCUMENT_ROOT'] . $pageCssFile)) : ?>
<link rel="stylesheet" href="<?php echo $pageCssFile; ?>">
<?php endif; ?>
<!-- Favicon -->
<link rel="icon" type="image/png" href="/assets/images/favicon.png">