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
|
// Récupérer les paramètres
|
||||||
$type = isset($_GET['type']) ? $_GET['type'] : '';
|
$type = isset($_GET['type']) ? $_GET['type'] : '';
|
||||||
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
|
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
|
||||||
|
$categoryId = isset($_GET['category']) ? intval($_GET['category']) : 0;
|
||||||
|
|
||||||
// Vérifier que le type est valide
|
// 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
|
http_response_code(400); // Requête incorrecte
|
||||||
echo json_encode(['error' => 'Type de vidéos non valide']);
|
echo json_encode(['error' => 'Type de vidéos non valide']);
|
||||||
exit;
|
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
|
// Récupérer les vidéos en fonction du type
|
||||||
$videos = [];
|
$videos = [];
|
||||||
$offset = $page * LOAD_MORE_COUNT;
|
$offset = $page * LOAD_MORE_COUNT;
|
||||||
@@ -57,6 +65,18 @@ switch ($type) {
|
|||||||
]);
|
]);
|
||||||
$videos = formatVideosData($data['data'] ?? []);
|
$videos = formatVideosData($data['data'] ?? []);
|
||||||
break;
|
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
|
// Préparer la réponse HTML
|
||||||
|
|||||||
@@ -275,7 +275,7 @@
|
|||||||
if (!empty($category['videos'])):
|
if (!empty($category['videos'])):
|
||||||
?>
|
?>
|
||||||
<!-- Section Catégorie: <?php echo $category['name']; ?> -->
|
<!-- 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-header">
|
||||||
<div class="section-logo">
|
<div class="section-logo">
|
||||||
<img src="img/logo.png" alt="Kaubuntu.re">
|
<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 sectionTitle = section.querySelector('.section-title').textContent.trim().toLowerCase();
|
||||||
const videoGrid = section.querySelector('.video-grid');
|
const videoGrid = section.querySelector('.video-grid');
|
||||||
let videoType = '';
|
let videoType = '';
|
||||||
|
let categoryId = null;
|
||||||
|
|
||||||
if (sectionTitle.includes('dernières')) {
|
if (sectionTitle.includes('dernières')) {
|
||||||
videoType = 'recent';
|
videoType = 'recent';
|
||||||
@@ -135,8 +136,21 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
videoType = 'trending';
|
videoType = 'trending';
|
||||||
} else if (sectionTitle.includes('indépendance')) {
|
} else if (sectionTitle.includes('indépendance')) {
|
||||||
videoType = 'independence';
|
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
|
// Stocker le numéro de page actuel
|
||||||
button.dataset.page = '1';
|
button.dataset.page = '1';
|
||||||
|
|
||||||
@@ -147,8 +161,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
button.textContent = 'Chargement...';
|
button.textContent = 'Chargement...';
|
||||||
button.disabled = true;
|
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
|
// Faire la requête AJAX
|
||||||
fetch(`ajax/load-more-videos.php?type=${videoType}&page=${page}`, {
|
fetch(url, {
|
||||||
headers: {
|
headers: {
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user