* * Parameters: * $pageTitle (required) - Page title to display * $bannerImage (optional) - URL to banner background image. If not set, uses random banner * $breadcrumbs (optional) - Array of breadcrumb items. Default: [['Home' => 'index.php']] * $classes (optional) - Additional CSS classes for banner section */ // Default values $pageTitle = $pageTitle ?? 'Page'; $bannerImage = $bannerImage ?? ''; $breadcrumbs = $breadcrumbs ?? [['Home' => 'index.php']]; $classes = $classes ?? ''; // If no banner image provided, try to use random banner if (empty($bannerImage)) { // Try to determine root path if not already set if (!isset($rootPath)) { $rootPath = $_SERVER['DOCUMENT_ROOT'] ?? dirname(__DIR__); } $bannerFolder = $rootPath . '/assets/images/banners/'; $bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE); // Convert absolute paths back to web-relative paths $bannerImages = array_map(function($path) use ($rootPath) { return str_replace($rootPath, '', $path); }, $bannerImages); $bannerImage = !empty($bannerImages) ? $bannerImages[array_rand($bannerImages)] : '/assets/images/base4/camping.jpg'; } // Add the page title to breadcrumbs as last item (not a link) $breadcrumbItems = []; foreach ($breadcrumbs as $item) { foreach ($item as $label => $url) { $breadcrumbItems[] = ['label' => $label, 'url' => $url]; } } $breadcrumbItems[] = ['label' => $pageTitle, 'url' => null]; ?>