Arno, tu nous annonces un scarabee tout refait à neuf... Peux-tu détailler
ici tes techniques/recettes/paquets de software ?
Ouh là, c'est vraiment du très très simple...
Tout est basé sur le couple PHP-mySQL, bien entendu (avant, les éditos étaient dans un PHP extrêmement basique, et seule la liste des éditos était centralisée dans un fichier-tableau).
Il y a deux parties:
- les éditos eux-mêmes; très simple, le tableau "edito" est constitué de
id_edito (auto-incremente);
titre
chapo
date (entrée mannuellement), pour garder la compatibilité des anciens liens et des adresses (URL), c'est autour de cette date que se base la navigation
texte
ps (post-scriptum)
themes (pas utilisé pour l'instant, de toute façon si je le fais, je le mettrai pas à cet endroit)
- les contributions (les forums)
là-encore, un seul tableau "contrib):
id_contrib (auto-incrémenté)
id_parent (utilisé de manière récursive, il permet de traiter les "threads": une contribution est toujours la réponse à une autre contribution)
id_edito (le numero dont dépend la contribution - je pourrais sans doute me passer de ce champ, mais je crois que ça permet d'accéler les recherchers en paternité des contributions: une contribution est SELECTionnée en fonction de l'édito dont elle dépend ET de la contribution à laquelle elle répond)
auteur, email, web, url
ip (adresse IP de l'expéditeur: pour des raisons juridiques...)
date (au format DATETIME: ce coup-ci c'est inscrit automatiquement par le serveur)
afficher (pas utilisé pour l'instant: variable oui/non; me permettra si nécessaire de ne pas afficher une contribution mais de la garder dans la base en cas de problème).
La gestion est carrément triviale, rien d'innovant ici... Seule "subtilité", pour gérer l'affichage des contributions, plutôt que de faire un "nl2br($texte)", qui remplacerait les passages à la ligne par des BR (ça pose des problèmes, certains utilisateurs insèrent des passages à la ligne parasites à la fin de chaque ligne, ce qui perturbe l'affichage), j'ai fait un ereg_replace:
$texte=ereg_replace("(\n( *)){3,}","<BR><BR>",$texte);
Signification: ça recherche les suites de trois retours-chariot ou plus, chaque retour chariot pouvant éventuellement suivi de blancs. Inconvénient: les simples retours à la ligne ne sont plus pris en compte, il faut impérativement laisser au moins une ligne blanche pour changer de paragraphe. Avantage: on peut mettre des blancs parasites dans un saut de paragraphe, le système les détecte et les efface (utile notamment pour ceux qui font un copier-coller depuis un email).
ARNO*