PanikDB - gestion radio

Personnalisation de panikweb

Toute l’apparence et le contenu de panikweb peut être adapté, de manière basique cela peut se passer en posant des nouveaux gabarits et fichiers statiques, de manière plus avancée cela se fait avec la création d’une "application" Django dédiée.

Gabarits et fichiers statiques

Pas testé, dans /etc/panikweb/settings.d/local.py, quelque chose comme :

TEMPLATES[0]['DIRS'].insert(0, '/chemin/vers/templates/')

STATICFILES_DIRS = ['/chemin/vers/static/'] + list(STATICFILES_DIRS)

Application Django dédiée

Cette approche permet notamment d’embarquer des paramètres, d’ajouter des "vues" supplémentaires, elle permet aussi de distribuer ces adaptations de manière standard, sous la forme de module Python.

La structure de base de l’application sera la suivante :

COPYING
MANIFEST.in
panikweb_maradio/
panikweb_maradio/__init__.py
panikweb_maradio/maradio_settings.py
panikweb_maradio/static/...
panikweb_maradio/templates/...
setup.py

Dans le fichier maradio_settings.py, on trouvera notamment,

import os

# déclaration de notre application dédiée
INSTALLED_APPS = list(INSTALLED_APPS) + ['panikweb_maradio']

# répertoire pour les gabarits
TEMPLATES[0]['DIRS'].insert(0,
os.path.join(os.path.dirname(local_settings_file), 'templates'))

# répertoire pour les fichiers statiques
STATICFILES_DIRS = [
os.path.join(os.path.dirname(local_settings_file), 'static'),
] + list(STATICFILES_DIRS)

Structure des pages et gabarits

À chaque type de page est associé un gabarit et classiquement un gabarit de base existe pour fournir le modèle général du site.

base.html : gabarit général, pour la navigation sans coupure de stream. Toutt le contenu doit être englobé sans une section avec All comme identifiant. Il doit contenir une section avec Commons comme identifiant, qui contiendra la lecture audio, restera fixe, et une section avec Changing comme identifiant, qui contiendra le contenu principal du site, variant de page en page. Il est également possible d’avoir une section avec metaNav comme identifiant, pour une navigation en-dehors de la zone "Changing".

<!DOCTYPE html>
<html>
<head>...</head>
<body>
<div id="All">
<div id="metaNav">...</div>
<div id="Commons">
...
</div>
<div id="Changing">
...
</div>
</div>
</body>
</htm>

home.html : gabarit pour la page d’accueil.

emissions/emission_detail.html : gabarit pour la page d’une émission.

emissions/episode_detail.html : gabarit pour la page d’un épisode.

Exemple - radio Esperanzah!

La page d’accueil :

Capture d’écran de la page d’accueil radio Esperanzah! 2021

et la page d’un épisode :

Capture d’écran de la page d’un épisode de radio Esperanzah! 2021

Le code est disponible dans le dépôt https://git.0d.be/?p=panikweb-esperanzah.git, il reprend aussi le rendu des années précédentes.

Exemple - Studio NĂ©au

La page d’accueil dans son entièreté :

Le code est disponible dans le dépôt https://git.0d.be/?p=panikweb-studioneau.git.

Dernière modification : 25 juillet 2022, 14:13