Meilleure manière de poster des articles sur un site [PHP] - PHP - Programmation
Marsh Posté le 27-08-2002 à 11:29:38
Plusieurs possibilités : la première c'est de faire comme sur ce forum... Cad un code spécial entre crochets que tu transformes ensuite en HTML.
Mais celle qui je pense est la meilleure est un peu la tienne. Tu mets une liste déroulante permettant au rédacteur de choisir de rédiger en normal (tu transformes les sauts de ligne en <br> ) ou en HTML. Je te conseille également de rajouter l'éditeur HTML WYSIWYG online (disponible dans NPDS (cherche Google)). Certes le code généré est pourri mais c'est tjrs ça de gagner si le rédacteur n'a pas d'éditeur HTML chez lui.
Marsh Posté le 27-08-2002 à 11:59:38
D'accord, mais en faisant comme ça, tu stockes le contenue des pas dans ta base MySQL, pas dans des fichiers HTML, c'est bien ça ?
Parce que la technique avec le "code spécial" (qui doit être le code de UBB), je l'utilise pour mes news.
Mais le code est trop limité pour publier des articles entiers.
Marsh Posté le 27-08-2002 à 17:21:02
Mais Hardware.fr, à mon avis, stocke ses articles dans une base MySql car souvent en haut des articles je vois <!-- Cache AAAA-MM-JJ --> ou un truc du genre...
En fait ils mettent ca dans MySql puis dès que 1er visiteur accède ca créé une page HTML. Cette page est recréée à intervalle régulier.
Marsh Posté le 27-08-2002 à 17:22:45
Sinon le truc que je voulais faire une fois ct programmer moi-même mon éditeur WYSIWYG HTML... Mais j'ai po eu le courage d'apprendre Delphi.
Comme ça mes rédacteurs aurait eu un éditeur qui allait parfaitement avec le site (qui ne met pas <title>, ni <html>, etc.).
Marsh Posté le 28-08-2002 à 19:23:18
Ca m'arrange pas ça... Comment je peux faire pour stocker ça dans une table si il y a plusieurs pages dans l'article ?
Parce que si je stocke les articles comme des pages html, j'ai juste besoin d'une table avec N° de l'article, titre, auteur, nb de pages et le nom générique du fichier html à ouvrir. Après j'appelle mes fichier avec articlep1.html, articlep2.html etc
Bilan => 1 ligne dans la table = 1 article.
Alors a votre avis, si je veux stocker les pages dans la base, comment j'organise mes données ? une ligne par page ? une table avec les info générale (date, auteur etc) et une autre avec les pages ?
merci pour votre aide
Marsh Posté le 29-08-2002 à 17:34:02
Une idée :
1 table avec la liste des articles (numéro d'identification, auteur, titre de l'article, icone associé, date de création, date de dernière modification, ...)
1 table avec tes diférentes pages (numéro d'identification unique d'une page afin de povoir la modifié, numéro d'articles, numéro de page dans l'article, texte)
pour les images de l'article, les stocker en dehors de la base
pour les problèmes de titre de paragraphes, des images, et autres problèmes d'affichages, il faut proposer des balises spécifiques.
Avec ça, tu devrais pouvoir te débrouiller.
Marsh Posté le 29-08-2002 à 22:11:33
omega2 a écrit a écrit : Une idée : 1 table avec la liste des articles (numéro d'identification, auteur, titre de l'article, icone associé, date de création, date de dernière modification, ...) 1 table avec tes diférentes pages (numéro d'identification unique d'une page afin de povoir la modifié, numéro d'articles, numéro de page dans l'article, texte) pour les images de l'article, les stocker en dehors de la base pour les problèmes de titre de paragraphes, des images, et autres problèmes d'affichages, il faut proposer des balises spécifiques. Avec ça, tu devrais pouvoir te débrouiller. |
Ok, je me retrouve donc avec deux tables au lieu d'un mais je dois pouvoir gérer ça.
dernière question : pourqoui vouloir à tout prix utiliser les balises spécifiques ?
Pourquoi ne pas simplement stocker le code HTML des pages sans rien modifier ?
Marsh Posté le 29-08-2002 à 22:35:11
le problème des balises html :
- l'utilisateur fait une erreur ou ne connait pas assez l'html et ta mise en page peut être détruite.
- l'utilisateur s'amuse à mettre un code 'aggressif' (popup, marquee, ...)
Donc c betement un question de confiance et de connaissance...
Si tu l'autorises tu dois gérer beaucoup plus de choses qu'en le refusant simplement
Marsh Posté le 30-08-2002 à 00:22:33
latruffe a écrit a écrit : Ok, je me retrouve donc avec deux tables au lieu d'un mais je dois pouvoir gérer ça. dernière question : pourqoui vouloir à tout prix utiliser les balises spécifiques ? Pourquoi ne pas simplement stocker le code HTML des pages sans rien modifier ? |
plusieurs raison :
1) il y a les deux raisons données par ethernal
2) sit t'as tes propres balises, tous les articles auront la même présentation tandis que si c'est du code html, chaque article aura sa propre mise en page avec sa propre codification (les italiques n'auront pas la même signification et autre truc du genre)
3) si tu laisse à l'utilisteur la possibilité de mettre de l'html, tu auras droit tôt ou tard aux malveillances du genre des refresh automatique en boucle ou l'insertien de code malveillant (javascript, java ou autre)
4) laisser l'utilisateur de l'html à l'utilisateur, ca peut provoquer des problèmes d'affichages sur certains navigateurs que tu retrouveras pas avec les autres articles et à par en conaisssant les spécificitées de beaucoup de navigateur et en ayant plusieurs pour test, t'auras du mal à trouer d'où ca viens.
Voilà les principales raison.
Pour le 4) je suis tombé directement dessus vu que mon site s'adressait à un marché de niche qui ne disposait que d'un navigateur pas des plus complet (pas de javascript ni de java ni autres truc du genre) et qui réagissait pas toujours comme il faut par rapport à de l'html conforme aux normes.
Marsh Posté le 30-08-2002 à 14:05:34
Si ! Tu peux mettre directement en HTML et tu utilises la fct strip_tags() pour ne garder que les tags qui t'intéressent... Mais tu auras tjrs le pb des attributs de ces balises.
(si c'est un pb car je vois pas comment les rédacteurs d'un site soient assez cons pour le planter !)
Marsh Posté le 30-08-2002 à 14:25:03
Merci pour toutes vos réponses.
En fait, seule 2 personnes sont authorisées à poster des articles et le site empêche evident qu'un utilisateur puisse ajouter un article en détournant les URLs.
Sur vos bon conseils, je pense donc uploader directement mes pages en html dans la base dans un premier temps (afin d'accélerer le remplissage du site) puis ensuite d'implémenter ma propre codification de balise (ou du moins en reprendre une déjà existente).
Sur ce, encore merci.
Marsh Posté le 30-08-2002 à 14:43:07
Comme je te l'ai déjà dit tu peux mettre les 2...
Perso je mets un
<select> |
qui me permet de savoir si l'article que le rédacteur poste est en HTML ou pas.
Marsh Posté le 30-08-2002 à 14:43:48
Dans ce cas il te faut un chps supplémentaire qui dit si c HTML ou pas pour l'edit et traiter en conséquence l'article.
Marsh Posté le 30-08-2002 à 20:13:16
C loin d'être idiot cette solution ... je pense que je vais l'adopter.
Marsh Posté le 27-08-2002 à 11:13:11
Salut à tous,
j'ai incorporé une petit gestionnaire de news sur mon site et ça marche plutôt pas mal. Maintenant, je voudrais que les utilisateurs puissent poster des articles sur mon site (à la manière de HFR qui distingue news et articles).
L'upload de news se fait via un formulaire avec titre, texte et eventuellement l'url de l'image associée.
Pour l'upload d'article, je ne pense pas que la même méthode soit applicable : les articles sont beaucoup plus structurés que les news (paragraphe, plusieurs images etc...).
Je voudrais donc que les utilisateurs puissent faire leur design avec l'éditeur de leur choix et qu'ensuite les fichiers HTML soient uploadés sur le serveur, le tout étant géré par via table article (contenant le titre de l'article et les références des pages)
Pensez-vous que ce soit la meilleure manière de procéder ou y a-t-il une manière beaucoup plus simple de gérér des articles ?
Peut-on placer le contenu des pages HTML uploadées directement dans un champ texte stocké dans la base ou est-il plus pratique d'uploader les fichier HTML dans un répertoire et de ne stocker que la référence de l'article dans la base ?
Merci pour votre aide