feat: permit display one video in index
This commit is contained in:
+26
-6
@@ -213,15 +213,16 @@ cp mentions-legales.php.sample mentions-legales.php
|
|||||||
|
|
||||||
Ces fichiers sont listés dans le `.gitignore` afin que vos modifications ne soient pas suivies par Git, ce qui vous permet de personnaliser votre instance sans affecter le code source principal.
|
Ces fichiers sont listés dans le `.gitignore` afin que vos modifications ne soient pas suivies par Git, ce qui vous permet de personnaliser votre instance sans affecter le code source principal.
|
||||||
|
|
||||||
== 📺 Section Hero : Direct et Playlists
|
== 📺 Section Hero : Direct, Vidéo et Playlists
|
||||||
|
|
||||||
FEDIVERSE OKI propose une section hero flexible et configurable en haut de la page d'accueil, pouvant afficher soit un direct PeerTube, soit une playlist audio/vidéo (PeerTube, Funkwhale, Castopod), soit être masquée complètement.
|
FEDIVERSE OKI propose une section hero flexible et configurable en haut de la page d'accueil, pouvant afficher soit un direct PeerTube, soit une vidéo unique, soit une playlist audio/vidéo (PeerTube, Funkwhale, Castopod), soit être masquée complètement.
|
||||||
|
|
||||||
=== 🎯 Modes disponibles
|
=== 🎯 Modes disponibles
|
||||||
|
|
||||||
La section hero supporte trois modes configurables via `HERO_TYPE` :
|
La section hero supporte quatre modes configurables via `HERO_TYPE` :
|
||||||
|
|
||||||
- *`live`* : Affiche le direct PeerTube s'il est actif, sinon affiche l'annonce du prochain live
|
- *`live`* : Affiche le direct PeerTube s'il est actif, sinon affiche l'annonce du prochain live
|
||||||
|
- *`video`* : Affiche une vidéo PeerTube spécifique
|
||||||
- *`playlist`* : Affiche une playlist embarquée (PeerTube, Funkwhale ou Castopod)
|
- *`playlist`* : Affiche une playlist embarquée (PeerTube, Funkwhale ou Castopod)
|
||||||
- *`none`* : Masque complètement la section hero
|
- *`none`* : Masque complètement la section hero
|
||||||
|
|
||||||
@@ -232,12 +233,20 @@ Ajoutez dans votre `config.local.php` :
|
|||||||
[source,php]
|
[source,php]
|
||||||
----
|
----
|
||||||
// Type de contenu à afficher dans la section hero
|
// Type de contenu à afficher dans la section hero
|
||||||
// Options: 'live', 'playlist', 'none'
|
// Options: 'live', 'video', 'playlist', 'none'
|
||||||
define('HERO_TYPE', 'playlist');
|
define('HERO_TYPE', 'video');
|
||||||
|
|
||||||
// === Configuration pour HERO_TYPE = 'live' ===
|
// === Configuration pour HERO_TYPE = 'live' ===
|
||||||
define('LIVE_ACCOUNT_NAME', 'admin');
|
define('LIVE_ACCOUNT_NAME', 'admin');
|
||||||
|
|
||||||
|
// === Configuration pour HERO_TYPE = 'video' ===
|
||||||
|
|
||||||
|
// ID de la vidéo (extrait de l'URL: https://gade.o-k-i.net/w/VIDEO_ID)
|
||||||
|
define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio');
|
||||||
|
|
||||||
|
// Titre de la vidéo (optionnel, pour l'accessibilité)
|
||||||
|
define('HERO_VIDEO_TITLE', 'Vidéo de présentation');
|
||||||
|
|
||||||
// === Configuration pour HERO_TYPE = 'playlist' ===
|
// === Configuration pour HERO_TYPE = 'playlist' ===
|
||||||
|
|
||||||
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
||||||
@@ -256,7 +265,18 @@ define('PLAYLIST_TITLE', 'Sélection OKI');
|
|||||||
define('PLAYLIST_DESCRIPTION', 'Notre sélection de vidéos');
|
define('PLAYLIST_DESCRIPTION', 'Notre sélection de vidéos');
|
||||||
----
|
----
|
||||||
|
|
||||||
=== 🎵 Exemples de configuration par plateforme
|
=== 🎬 Exemples de configuration
|
||||||
|
|
||||||
|
==== Vidéo unique PeerTube
|
||||||
|
|
||||||
|
[source,php]
|
||||||
|
----
|
||||||
|
define('HERO_TYPE', 'video');
|
||||||
|
define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio');
|
||||||
|
define('HERO_VIDEO_TITLE', 'Présentation du mouvement');
|
||||||
|
----
|
||||||
|
|
||||||
|
L'URL de la vidéo sera : `https://gade.o-k-i.net/w/1aJ2u9euwF9fWKQhFxwFio`
|
||||||
|
|
||||||
==== PeerTube (Playlist vidéo)
|
==== PeerTube (Playlist vidéo)
|
||||||
|
|
||||||
|
|||||||
@@ -108,12 +108,16 @@ if (!defined('CACHE_DURATION')) define('CACHE_DURATION', 3600); // En secondes (
|
|||||||
// =========================================
|
// =========================================
|
||||||
|
|
||||||
// Type de contenu à afficher dans la section hero
|
// Type de contenu à afficher dans la section hero
|
||||||
// Options: 'live' (direct PeerTube), 'playlist' (playlist audio/vidéo), 'none' (masquer)
|
// Options: 'live' (direct PeerTube), 'playlist' (playlist audio/vidéo), 'video' (vidéo unique), 'none' (masquer)
|
||||||
if (!defined('HERO_TYPE')) define('HERO_TYPE', 'live');
|
if (!defined('HERO_TYPE')) define('HERO_TYPE', 'live');
|
||||||
|
|
||||||
// Configuration pour le direct (HERO_TYPE = 'live')
|
// Configuration pour le direct (HERO_TYPE = 'live')
|
||||||
if (!defined('LIVE_ACCOUNT_NAME')) define('LIVE_ACCOUNT_NAME', 'admin');
|
if (!defined('LIVE_ACCOUNT_NAME')) define('LIVE_ACCOUNT_NAME', 'admin');
|
||||||
|
|
||||||
|
// Configuration pour une vidéo unique (HERO_TYPE = 'video')
|
||||||
|
if (!defined('HERO_VIDEO_ID')) define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio');
|
||||||
|
if (!defined('HERO_VIDEO_TITLE')) define('HERO_VIDEO_TITLE', 'Vidéo de présentation');
|
||||||
|
|
||||||
// Configuration pour les playlists (HERO_TYPE = 'playlist')
|
// Configuration pour les playlists (HERO_TYPE = 'playlist')
|
||||||
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
||||||
if (!defined('PLAYLIST_PLATFORM')) define('PLAYLIST_PLATFORM', 'peertube');
|
if (!defined('PLAYLIST_PLATFORM')) define('PLAYLIST_PLATFORM', 'peertube');
|
||||||
|
|||||||
@@ -34,12 +34,19 @@ define('APP_HOST_NAME', 'fediverse.o-k-i.net');
|
|||||||
// =========================================
|
// =========================================
|
||||||
|
|
||||||
// Type de contenu à afficher dans la section hero
|
// Type de contenu à afficher dans la section hero
|
||||||
// Options: 'live' (direct PeerTube), 'playlist' (playlist audio/vidéo), 'none' (masquer)
|
// Options: 'live' (direct PeerTube), 'video' (vidéo unique), 'playlist' (playlist audio/vidéo), 'none' (masquer)
|
||||||
// define('HERO_TYPE', 'live');
|
// define('HERO_TYPE', 'live');
|
||||||
|
|
||||||
// Configuration pour le direct (HERO_TYPE = 'live')
|
// Configuration pour le direct (HERO_TYPE = 'live')
|
||||||
// define('LIVE_ACCOUNT_NAME', 'admin');
|
// define('LIVE_ACCOUNT_NAME', 'admin');
|
||||||
|
|
||||||
|
// Configuration pour une vidéo unique (HERO_TYPE = 'video')
|
||||||
|
// ID de la vidéo (extrait de l'URL: https://gade.o-k-i.net/w/VIDEO_ID)
|
||||||
|
// define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio');
|
||||||
|
|
||||||
|
// Titre de la vidéo (optionnel, pour l'accessibilité)
|
||||||
|
// define('HERO_VIDEO_TITLE', 'Vidéo de présentation');
|
||||||
|
|
||||||
// Configuration pour les playlists (HERO_TYPE = 'playlist')
|
// Configuration pour les playlists (HERO_TYPE = 'playlist')
|
||||||
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
// Type de plateforme: 'peertube', 'funkwhale', 'castopod'
|
||||||
// define('PLAYLIST_PLATFORM', 'peertube');
|
// define('PLAYLIST_PLATFORM', 'peertube');
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Section Hero - Affichage conditionnel (Direct / Playlist / Rien)
|
* Section Hero - Affichage conditionnel (Direct / Playlist / Vidéo / Rien)
|
||||||
*
|
*
|
||||||
* Ce fichier gère l'affichage de la section hero en fonction de la configuration:
|
* Ce fichier gère l'affichage de la section hero en fonction de la configuration:
|
||||||
* - HERO_TYPE = 'live': Affiche le direct PeerTube
|
* - HERO_TYPE = 'live': Affiche le direct PeerTube
|
||||||
|
* - HERO_TYPE = 'video': Affiche une vidéo PeerTube unique
|
||||||
* - HERO_TYPE = 'playlist': Affiche une playlist (PeerTube/Funkwhale/Castopod)
|
* - HERO_TYPE = 'playlist': Affiche une playlist (PeerTube/Funkwhale/Castopod)
|
||||||
* - HERO_TYPE = 'none': N'affiche rien
|
* - HERO_TYPE = 'none': N'affiche rien
|
||||||
*/
|
*/
|
||||||
@@ -19,7 +20,15 @@ if ($heroType === 'none') {
|
|||||||
|
|
||||||
<section class="hero" aria-labelledby="hero-section-title">
|
<section class="hero" aria-labelledby="hero-section-title">
|
||||||
<h2 id="hero-section-title" class="sr-only">
|
<h2 id="hero-section-title" class="sr-only">
|
||||||
<?php echo $heroType === 'live' ? 'Diffusion en direct' : 'Playlist'; ?>
|
<?php
|
||||||
|
if ($heroType === 'live') {
|
||||||
|
echo 'Diffusion en direct';
|
||||||
|
} elseif ($heroType === 'video') {
|
||||||
|
echo 'Vidéo';
|
||||||
|
} else {
|
||||||
|
echo 'Playlist';
|
||||||
|
}
|
||||||
|
?>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<?php if ($heroType === 'live'): ?>
|
<?php if ($heroType === 'live'): ?>
|
||||||
@@ -252,5 +261,31 @@ if ($heroType === 'none') {
|
|||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php elseif ($heroType === 'video'): ?>
|
||||||
|
<!-- Mode VIDÉO -->
|
||||||
|
<?php
|
||||||
|
$videoId = defined('HERO_VIDEO_ID') ? HERO_VIDEO_ID : '';
|
||||||
|
$videoTitle = defined('HERO_VIDEO_TITLE') ? HERO_VIDEO_TITLE : 'Vidéo de présentation';
|
||||||
|
|
||||||
|
if (!empty($videoId)):
|
||||||
|
?>
|
||||||
|
<div class="hero-video-container">
|
||||||
|
<iframe
|
||||||
|
src="<?php echo PEERTUBE_URL; ?>/videos/embed/<?php echo $videoId; ?>"
|
||||||
|
frameborder="0"
|
||||||
|
allowfullscreen="allowfullscreen"
|
||||||
|
sandbox="allow-same-origin allow-scripts allow-popups"
|
||||||
|
allow="autoplay; fullscreen"
|
||||||
|
title="<?php echo htmlspecialchars($videoTitle); ?>">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="hero-no-live">
|
||||||
|
<i class="fas fa-video"></i>
|
||||||
|
<h2>Vidéo non configurée</h2>
|
||||||
|
<p>Configurez HERO_VIDEO_ID dans votre fichier de configuration.</p>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user