Je commence tout juste à bidouiller avec ça (sans codage agentique).
J’ai l’impression qu’il ne faudrait pas grand-chose pour convertir cela en un composant de thème qui contrôlerait uniquement la page d’accueil d’un site — par exemple, un site utilisant déjà le thème Horizon. Serait-ce une idée stupide ?
Aussi, j’ai remarqué quelques problèmes :
Le bloc « Événements à venir » ne trie pas les sujets
Il affiche simplement les sujets d’événements par date de création ; c’est tout sauf utile !!
ask.discourse.com suggère ce type de modification pour résoudre le problème, ce que je peux confirmer fonctionne (pardon pour mon manque de réflexion critique humaine) :
@bind
async fetchEvents() {
const count = this.args.count || 5;
const results = await ajax("discourse-post-event/events");
if (!results.events?.length) {
return null;
}
const now = new Date();
// Séparer les événements passés et futurs, puis trier par ordre croissant de date de début
const upcoming = results.events
.filter((e) => new Date(e.starts_at) >= now)
.sort((a, b) => new Date(a.starts_at) - new Date(b.starts_at));
return upcoming.slice(0, count);
}
Le bloc « Bannières de catégorie » ne respecte pas les paramètres
Il s’affiche sur toutes les catégories (et pas seulement sur celles spécifiées), et ne semble pas se rafraîchir lors de la navigation (seulement lors d’un rechargement de la page).