Admin : tableau de bord des feeds de sortie (/feed) #2

Closed
opened 2026-05-16 08:26:25 +00:00 by cedricAbonnel · 0 comments
Owner

Contexte

Le site expose un feed RSS de sortie (public/feed.php) accessible sous plusieurs URLs :

URL Contenu
/feed Tous les articles publiés (paginé, 20 par page)
/feed?category=<slug> Articles d'une catégorie donnée
/feed/<uuid> Page suivante (curseur de pagination)

Il n'existe actuellement aucune interface pour savoir qui lit ces feeds, combien, ni quels feeds par catégorie sont effectivement utilisés. La page /admin/stats agrège toutes les visites sans filtrer sur les accès feed.

Besoin

Ajouter dans le panneau admin un tableau de bord dédié aux feeds de sortie, exploitant les logs Apache (même mécanisme que /admin/stats).

Fonctionnalités attendues

1. Inventaire des feeds disponibles

  • Lister tous les feeds actifs :
    • Feed principal /feed
    • Un feed par catégorie publique (/feed?category=<slug>)
  • Pour chaque feed : URL, nb d'articles couverts, date du dernier article

2. Stats d'utilisation (depuis les logs Apache)

Par feed

  • Nombre d'accès total sur les 14 derniers jours
  • Visiteurs uniques (IPs distinctes)
  • Tendance jour par jour (sparkline ou tableau)

Par réseau (AS)

  • Répartition des accès /feed* par AS (comme le tableau AS existant dans /admin/stats, mais filtré sur les URLs feed)
  • Distinction agrégateurs connus (Feedly, Inoreader, NewsBlur…) vs robots vs humains

Par User-Agent

  • Top 10 des User-Agents ayant accédé à /feed*
  • Permettre d'identifier les agrégateurs abonnés et leur volume

3. Intégration dans le panneau admin

  • Nouvel onglet Feeds dans la navigation admin (à côté de Statistiques)
  • Ou section supplémentaire dans /admin/stats

Implémentation technique

  • Données : parse des logs Apache (même chemin que stats_as existant) en filtrant les lignes où l'URL commence par /feed
  • Extraction : URL exacte, IP, User-Agent, code HTTP, timestamp
  • Résolution AS : réutiliser le mécanisme existant (whois/cache)
  • Route : case 'admin' avec tab=feeds dans public/index.php
  • Template : templates/admin_feeds.php
  • Lien nav : ajouter dans templates/admin.php

Critères d'acceptation

  • Inventaire des feeds disponibles avec nb d'articles
  • Comptage des accès par feed (total + uniques) sur 14 jours
  • Tableau de répartition par AS filtré sur /feed*
  • Top User-Agents sur /feed*
  • Accessible uniquement aux admins
  • Testé sur http://abonnel-wiki.acegrp.lan
## Contexte Le site expose un feed RSS de sortie (`public/feed.php`) accessible sous plusieurs URLs : | URL | Contenu | |---|---| | `/feed` | Tous les articles publiés (paginé, 20 par page) | | `/feed?category=<slug>` | Articles d'une catégorie donnée | | `/feed/<uuid>` | Page suivante (curseur de pagination) | Il n'existe actuellement aucune interface pour savoir **qui lit ces feeds**, **combien**, ni **quels feeds par catégorie sont effectivement utilisés**. La page `/admin/stats` agrège toutes les visites sans filtrer sur les accès feed. ## Besoin Ajouter dans le panneau admin un tableau de bord dédié aux feeds de **sortie**, exploitant les logs Apache (même mécanisme que `/admin/stats`). ## Fonctionnalités attendues ### 1. Inventaire des feeds disponibles - Lister tous les feeds actifs : - Feed principal `/feed` - Un feed par catégorie publique (`/feed?category=<slug>`) - Pour chaque feed : URL, nb d'articles couverts, date du dernier article ### 2. Stats d'utilisation (depuis les logs Apache) #### Par feed - Nombre d'accès total sur les 14 derniers jours - Visiteurs uniques (IPs distinctes) - Tendance jour par jour (sparkline ou tableau) #### Par réseau (AS) - Répartition des accès `/feed*` par AS (comme le tableau AS existant dans `/admin/stats`, mais filtré sur les URLs feed) - Distinction agrégateurs connus (Feedly, Inoreader, NewsBlur…) vs robots vs humains #### Par User-Agent - Top 10 des User-Agents ayant accédé à `/feed*` - Permettre d'identifier les agrégateurs abonnés et leur volume ### 3. Intégration dans le panneau admin - Nouvel onglet **Feeds** dans la navigation admin (à côté de Statistiques) - Ou section supplémentaire dans `/admin/stats` ## Implémentation technique - **Données** : parse des logs Apache (même chemin que `stats_as` existant) en filtrant les lignes où l'URL commence par `/feed` - **Extraction** : URL exacte, IP, User-Agent, code HTTP, timestamp - **Résolution AS** : réutiliser le mécanisme existant (whois/cache) - **Route** : `case 'admin'` avec `tab=feeds` dans `public/index.php` - **Template** : `templates/admin_feeds.php` - **Lien nav** : ajouter dans `templates/admin.php` ## Critères d'acceptation - [ ] Inventaire des feeds disponibles avec nb d'articles - [ ] Comptage des accès par feed (total + uniques) sur 14 jours - [ ] Tableau de répartition par AS filtré sur `/feed*` - [ ] Top User-Agents sur `/feed*` - [ ] Accessible uniquement aux admins - [ ] Testé sur http://abonnel-wiki.acegrp.lan
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/abonnel-www#2