fix load more on categories videos
This commit is contained in:
@@ -12,14 +12,22 @@ if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQ
|
||||
// Récupérer les paramètres
|
||||
$type = isset($_GET['type']) ? $_GET['type'] : '';
|
||||
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
|
||||
$categoryId = isset($_GET['category']) ? intval($_GET['category']) : 0;
|
||||
|
||||
// Vérifier que le type est valide
|
||||
if (!in_array($type, ['recent', 'trending', 'independence'])) {
|
||||
if (!in_array($type, ['recent', 'trending', 'independence', 'category'])) {
|
||||
http_response_code(400); // Requête incorrecte
|
||||
echo json_encode(['error' => 'Type de vidéos non valide']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Vérifier que la catégorie est fournie si le type est 'category'
|
||||
if ($type === 'category' && $categoryId <= 0) {
|
||||
http_response_code(400); // Requête incorrecte
|
||||
echo json_encode(['error' => 'ID de catégorie manquant ou invalide']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Récupérer les vidéos en fonction du type
|
||||
$videos = [];
|
||||
$offset = $page * LOAD_MORE_COUNT;
|
||||
@@ -57,6 +65,18 @@ switch ($type) {
|
||||
]);
|
||||
$videos = formatVideosData($data['data'] ?? []);
|
||||
break;
|
||||
|
||||
case 'category':
|
||||
// Récupérer les vidéos de la catégorie
|
||||
$data = callPeerTubeApi('videos', [
|
||||
'categoryOneOf' => $categoryId,
|
||||
'count' => LOAD_MORE_COUNT,
|
||||
'start' => $offset,
|
||||
'sort' => '-publishedAt', // Les plus récentes d'abord
|
||||
'isLocal' => true
|
||||
]);
|
||||
$videos = formatVideosData($data['data'] ?? []);
|
||||
break;
|
||||
}
|
||||
|
||||
// Préparer la réponse HTML
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
if (!empty($category['videos'])):
|
||||
?>
|
||||
<!-- Section Catégorie: <?php echo $category['name']; ?> -->
|
||||
<div class="video-section">
|
||||
<div class="video-section" data-category-id="<?php echo $category['id']; ?>">
|
||||
<div class="section-header">
|
||||
<div class="section-logo">
|
||||
<img src="img/logo.png" alt="Kaubuntu.re">
|
||||
|
||||
+21
-1
@@ -128,6 +128,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
const sectionTitle = section.querySelector('.section-title').textContent.trim().toLowerCase();
|
||||
const videoGrid = section.querySelector('.video-grid');
|
||||
let videoType = '';
|
||||
let categoryId = null;
|
||||
|
||||
if (sectionTitle.includes('dernières')) {
|
||||
videoType = 'recent';
|
||||
@@ -135,7 +136,20 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
videoType = 'trending';
|
||||
} else if (sectionTitle.includes('indépendance')) {
|
||||
videoType = 'independence';
|
||||
} else {
|
||||
// Vérifier si c'est une section de catégorie
|
||||
const categorySection = section.querySelector('[data-category-id]');
|
||||
if (categorySection) {
|
||||
videoType = 'category';
|
||||
categoryId = categorySection.dataset.categoryId;
|
||||
} else if (section.hasAttribute('data-category-id')) {
|
||||
videoType = 'category';
|
||||
categoryId = section.dataset.categoryId;
|
||||
}
|
||||
}
|
||||
|
||||
// Si aucun type reconnu, ne pas configurer l'événement
|
||||
if (!videoType) return;
|
||||
|
||||
// Stocker le numéro de page actuel
|
||||
button.dataset.page = '1';
|
||||
@@ -147,8 +161,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
button.textContent = 'Chargement...';
|
||||
button.disabled = true;
|
||||
|
||||
// Préparer l'URL avec les paramètres
|
||||
let url = `ajax/load-more-videos.php?type=${videoType}&page=${page}`;
|
||||
if (videoType === 'category' && categoryId) {
|
||||
url += `&category=${categoryId}`;
|
||||
}
|
||||
|
||||
// Faire la requête AJAX
|
||||
fetch(`ajax/load-more-videos.php?type=${videoType}&page=${page}`, {
|
||||
fetch(url, {
|
||||
headers: {
|
||||
'X-Requested-With': 'XMLHttpRequest'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user