getAvailableYears(); if ($year) { $itemsToLoad = $db->searchTheses(['year' => $year], $itemsPerPage, $offset); $totalItems = $db->countSearchResults(['year' => $year]); } elseif ($isDefaultView) { $latestYear = $db->getLatestPublishedYear(); $itemsToLoad = $db->getLatestYearTheses($itemsPerPage); $totalItems = count($itemsToLoad); // no pagination on default view } else { $itemsToLoad = $db->getPublishedTheses($itemsPerPage, $offset); $totalItems = $db->countPublishedTheses(); } $totalPages = $isDefaultView ? 1 : (int)ceil($totalItems / $itemsPerPage); // Batch-load cover images for theses that have no banner_path $coverMap = []; if (!empty($itemsToLoad)) { $needCover = array_column( array_filter($itemsToLoad, fn($t) => empty($t['banner_path'])), 'id' ); $coverMap = $db->getCoverPathsForTheses($needCover); } } catch (Exception $e) { error_log("Error loading theses: " . $e->getMessage()); $itemsToLoad = []; $totalPages = 0; $availableYears = []; $totalItems = 0; $latestYear = null; $isDefaultView = false; $coverMap = []; } $currentNav = ''; $pageTitle = 'Posterg'; $extraCss = ['assets/main.css']; ?>
Année : ✕ Réinitialiser
Découvrez les TFE de — sélection aléatoire
" class="card-link">
<?= htmlspecialchars($item['title']) ?>

Aucun mémoire trouvé.

1): ?>
« / »