$repo = new ContentRepository($pdo); // Auto-generate breadcrumb if not provided (pochoir data files use direct $breadcrumb variable) if (empty($breadcrumb)) { $breadcrumb = generateBreadcrumb($_SERVER['REQUEST_URI'], $breadcrumb_label ?? null); } // 2. Détermination du contexte depuis l'URL $requestUri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $pathParts = array_values(array_filter(explode('/', $requestUri))); // Structure : /pochoirs/{category}/ $category = $pathParts[1] ?? null; $subcategory = $pathParts[2] ?? null; // 3. Gestion de la Pagination $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $perPage = 24; // 4. Récupération des données $dbItems = $repo->getContent('pochoir', $category, $subcategory, $page, $perPage); $totalItems = $repo->countContent('pochoir', $category, $subcategory); $totalPages = ceil($totalItems / $perPage); // URL de base pour la pagination $baseUrl = strtok($_SERVER["REQUEST_URI"], '?'); // 5. Meta et Assets (on utilise les variables passées par le fichier de données PHP comme fallback) $page_title = $page_title ?? SITE_NAME; $page_description = $page_description ?? ''; $page_keywords = $page_keywords ?? ''; $page_canonical = $page_canonical ?? ''; // CSS/JS additionnels $page_css = [ '/assets/css/modal.css', '/assets/css/card-actions.css' ]; $page_js = [ '/assets/js/modal-image.js', '/assets/js/merci.js', '/assets/js/boutons-carrousel.js', '/assets/js/likes.js' ]; // 6. Inclusion du Header (Contient , , et la Navigation) $current_page = 'pochoirs'; require $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; ?>