[Spip] Pistes de travail pour le nouveau portail

Salut tout le monde,

Comme certains d'entre vous le savent déjà, Fil et moi sommes en train
de préparer le déménagement de rezo.net à Paris, sur atlas. Jusque là,
sur rezo.net, je ne pouvais mettre qu'une page d'accueil statique que je
renouvelais toutes les heures : maintenant, on va pouvoir utiliser
MySQL, personnaliser les slots, faire apparaître les nouveautés,
naviguer par thème ou par dossier, fabriquer plus facilement les listes
de diffusion, etc...

Le nouveau portail sera entièrement reconstruit autour d'une base
d'articles en MySQL.

En gros, pour chaque article:
- le titre (obl.)
- le chapô (fac.)
- l'URL (obl.)
- date de parution (obl.)
- le code du webzine (obl.)

A noter qu'il ne peut y avoir qu'un seul article par URL. Je veux dire
par là que l'article "cyberie.webdo.ch/#1" du mardi d'après doit
remplacer l'article du mardi précédent puisque son URL n'est plus
valide. Donc, faire en sorte que l'insert écrase l'entrée précédente.
L'URL serait donc la clé? Je sais pas, je suis pas une star en SQL.

Chaque article peut être rattaché à 0 à N rubriques. Une rubrique peut
être un thème (ECONOMIE, CINEMA...), ou un dossier (START-UP...), ou un
type d'articles (CHRONIQUES, ENQUETES, PORTRAITS...). Ca permettra
ensuite de naviguer dynamiquement selon les rubriques qui nous
intéressent.

Je me demande même si le code du webzine ne peut pas être assimilé à une
rubrique. Ma dernière chronique serait par exemple rattachée à
CHRONIQUES, à MENTEUR, au dossier START-UP, à MEDIAS, etc.

Pareil, tous les sites "simples" que j'ai répertoriés en "ET AUSSI"
pourraient sans doute, en base, être assimilés à des articles d'une
rubrique particulière : le titre de l'article est le titre du webzine,
le chapô sa présentation, l'URL celle de sa page d'accueil, et il est
rattaché à la rubrique SITES. Je crois qu'on a tout intérêt à avoir une
base qui ait des tables assez génériques, ça fait beaucoup moins de code
à écrire.

Dernière chose, que je sais pas trop comment gérer en BD : je voudrais
qu'on prévoie le filtrage coopératif. En gros, qu'un article référencé
manuellement par son auteur ou pompé automatiquement par mes scripts
soit dans un état 0 (lu par personne, donc non garanti). Mais que les
autres rédacteurs du portail pourraient faire évoluer avec une interface
ad hoc : je lis "L'année du blaireau" de Mona, je m'enthousiasme, et je
clique pour le faire savoir. Du coup, ledit article prend de
l'importance en base et apparaît mieux sur le site, sur la liste de
diff, etc... Bref, il faut coder quelque part en base la valeur de
chaque article, et définir des règles (voir Slashdot?) pour les faire
évoluer.

Voilà voilà pour mes "requirements" base de données. Si quelqu'un
(Erwan, Arno?) est capable de transcrire ça en un modèle MySQL, avec les
tables à créer et les requêtes de base, ça m'arrangerait bien... Je vais
essayer d'installer phpMyAdmin au plus vite.

L'idée, c'est que si on arrive à créer le modèle base de données
rapidement, ça nous permettra de bosser dessus en parallèle : moi, il
faut que je transforme mes scripts d'alimentation pour qu'ils alimentent
la base d'articles automatiquement. Ce qui permettra par exemple à Arno
de faire des essais de navigation dynamique avec une base d'articles à
peu près remplie...

J'attends vos remarques!

Laz