Réalisation d'un éditeur de texte pour un CMS maison

Réalisation d'un éditeur de texte pour un CMS maison - HTML/CSS - Programmation

Marsh Posté le 18-05-2010 à 13:09:40    

Bonjour tout le monde. Première fois que je poste sur prog, c'est un grand moment pour moi :'(
 
J'ai une question très très bête sans doute, mais je ne sais plus exactement comment rechercher les infos, à cause du type de retour sur les recherches "éditeur de texte".
 
Je suis en train, pour apprendre à maîtriser php un peu plus convenablement, de me faire un CMS maison. Pour l'instant c'est très basique, je sécurise les pages, je créé des formulaires, j'aloue des droits à différents types de profils, etc etc..
 
J'arrive bien sûr sans problème à remplir ma base mysql à partir de formulaires (encore heureux hein?). Mais une question se poste pour moi.
A un moment ou un autre, il faudra bien que je réalise un éditeur de texte me permettant de réaliser quelques besoin (insertion de lien, texte en gros, couleurs du texte, comme sur le forum par exemple etc etc..). Et j'imagine que ces fonctionnalités ne seront pas du coté de php, mais plus d'un truc genre javascript?  
 
Donc pour être simple, je recherche des infos, même basiques, sur ces procédés. Je ne recherche pas un truc tout fait. Je tiens vraiment à apprendre personnellement, donc je voulais savoir s'il fallait bien se tourner vers js? Parce que pour l'instant je ne vois pas encore exactement comment réaliser ça..
 
Merci bien à celui ou ceux qui me trouveront des pistes :)
 
EDIT: bon j'suis con, je viens de regarder tout simplement le code source d'hfr. Donc au moins je sais que c'est bien du JS, il va falloir s'y mettre une fois que j'aurais la base de mon cms. Si vous avez des pistes, des bons sites, etc.. J'ai appris les bases du php sur le site du zero, mais ils n'ont pas de section js :(


Message édité par wizopunker le 18-05-2010 à 13:11:57

---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 18-05-2010 à 13:09:40   

Reply

Marsh Posté le 18-05-2010 à 13:30:58    

regardes les sources de http://ckeditor.com/. C'est l'un des plus connus.
 
Edit : autre piste : tu regardes les éditeurs en JS des autres CMS (SPIP, Drupal, Joomla...).

Message cité 1 fois
Message édité par rufo le 18-05-2010 à 13:31:54

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-05-2010 à 13:36:28    

Pour ton CMS maison, si je peux te conseiller de le générer via XSL :D


---------------
Blablaté par Harko
Reply

Marsh Posté le 18-05-2010 à 13:43:57    

rufo a écrit :

regardes les sources de http://ckeditor.com/. C'est l'un des plus connus.
 
Edit : autre piste : tu regardes les éditeurs en JS des autres CMS (SPIP, Drupal, Joomla...).


Ouais, j'ai un CMS spip pour l'instant, je regarderai un peu :)
Pour l'instant je pense que je vais me contenter de mettre en place la structure de mon cms et de mon site, et taper le code à la mano dans mon éditeur de texte. Et puis commencer à zieuter doucement sur le javascripte qui va encore être une nouvelle montagne à gravir :D
 

gatsu35 a écrit :

Pour ton CMS maison, si je peux te conseiller de le générer via XSL :D


oulah, je sais même pas ce que c'est :D
Je viens de regarder un peu, c'est pour mettre en page du xml.. mais j'ai aps de xml :o
Ca aurait quoi comme avantage? Et je peux générer un xml à partir de ma base de données j'imagine?


---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 18-05-2010 à 13:52:49    

t'as un flux xml et ensuite tu le transforme en ce que tu veux : ihm IHM, feuille d'impression, fichier csv ou pdf... Ca peut s'appliquer quand on fait du MVC : séparation des données et de la mise en forme.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-05-2010 à 14:04:06    

gatsu35 a écrit :

Pour ton CMS maison, si je peux te conseiller de le générer via XSL :D


 [:lol wut]

Reply

Marsh Posté le 18-05-2010 à 14:39:56    


on s'est mal compris, générer les pages du site avec XSL.
 
Bon c'est clair que c'est super chiant à gérer quand tu veux juste rajouter un petit caca toussa toussa, mais quand tu as super bien organisé ton dawa c'est tout magique.
J'ai tout un site dans un XML, et je génère les pages via XSL en utilisant PHP (echo du resultat de la transformation). C'est beaucoup plus simple à gérer. Si je veux génerer mes pages sans le header, une simple feuille XSL modifier et je peux générer toutes mes pages de cette maniere \o/


---------------
Blablaté par Harko
Reply

Marsh Posté le 18-05-2010 à 14:40:47    

J'avais fait ça au tout début. Mais je suis revenu en arrière, un peu trop lourdingue par moments :/

Reply

Marsh Posté le 18-05-2010 à 14:45:41    

Mon site perso est fait comme ça, c'est vrai que c'est pas mal (surtout pour gérer le multi-langues) mais y'a certains trucs pas évident à faire (ça dépend aussi des possibilités de la lib XSLT disponible).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-05-2010 à 15:06:09    

FlorentG a écrit :

J'avais fait ça au tout début. Mais je suis revenu en arrière, un peu trop lourdingue par moments :/


lourdingue mais simplifie la vie, je compte faire un CMS qui permet de créer des XSL :D dans les limites du faisables hein :o
 
c'est clair que c'est lourdingue, pour un truc qui devait me prendre 2j, j'en mets 5


---------------
Blablaté par Harko
Reply

Marsh Posté le 18-05-2010 à 15:06:09   

Reply

Marsh Posté le 18-05-2010 à 15:15:28    

ça pose aussi le pb des perfs : faire un rendu xml/xsl me semble plus lourd que des echo de code html... :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-05-2010 à 15:22:58    

rufo a écrit :

ça pose aussi le pb des perfs : faire un rendu xml/xsl me semble plus lourd que des echo de code html... :/


et le cache ça te dit rien ?
 
quand tu as des paquets d'accès sur ton site, tu mets une page en cache toutes les 2 minutes ça sera super rapide.


---------------
Blablaté par Harko
Reply

Marsh Posté le 18-05-2010 à 15:44:35    

comment on gère le cache? :D
C'est quoi concrètement l'avantage du xml du coup?


---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 18-05-2010 à 15:52:42    

Citation :


t'as un flux xml et ensuite tu le transforme en ce que tu veux : ihm IHM, feuille d'impression, fichier csv ou pdf... Ca peut s'appliquer quand on fait du MVC : séparation des données et de la mise en forme.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-05-2010 à 16:05:08    

wizopunker a écrit :

comment on gère le cache? :D
C'est quoi concrètement l'avantage du xml du coup?


Avant de créer ma page HTML, j'encode l'url complete en replacant les /, ? et & par - et en virant les accents. s'il y a,  
exemple simple :  
http://www.monsite.com/?cat=3&page [...] labla=toto  
devient :  
http-www-monsite-com-cat-3-page-2-blabla-toto
 
je regarde ensuite si ce fichier existe dans mon dossier cache. S'il existe je check la date, si date today - date fichier > durée max du cache.  
je regénère le fichier, sinon je fais un simple readfile.
 
ah et au final, je n'ai qu'un seul fichier PHP dans mon site, au pire quelques includes de fonction. Et une fonction de generation de page HTML qui prend en entrée une XSL et un XML.


---------------
Blablaté par Harko
Reply

Marsh Posté le 19-05-2010 à 13:31:20    

Ok, je viens de me taper pas mal de lecture sur le XLM. Mais je viens juste de comprendre que ça remplace complètement la base de donnée non? Du coup perso ça m'intéresse moins. Alors pour moi c'est php/mysql et javascript pour l'instant :D
 
En revanche, l'avantage d'un xml c'est son intégration dans du flash plus tard si je décide de faire un site en flash (toujours pour le fun et l'apprentissage :D)

Message cité 1 fois
Message édité par wizopunker le 19-05-2010 à 13:44:49

---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 19-05-2010 à 13:34:52    

wizopunker a écrit :

Ok, je viens de me taper pas mal de lecture sur le XLM. Mais je viens juste de comprendre que ça remplace complètement la base de donnée nom? Du coup perso ça m'intéresse moins. Alors pour moi c'est php/mysql et javascript pour l'instant :D
 
En revanche, l'avantage d'un xml c'est son intégration dans du flash plus tard si je décide de faire un site en flash (toujours pour le fun et l'apprentissage :D)


ça remplace pas la DB, ça permet juste d'avoir un code propre en sortie et pas des echo dans tous les sens et de mieux controler ce que je fais.
C'est plus chiant à gérer, un peu plus lourd mais c'est power.
 
Tu peux très bien en sortie de bd, generer un XML puis ensuite le balancer à ta feuille de style.


---------------
Blablaté par Harko
Reply

Marsh Posté le 19-05-2010 à 13:35:26    

non, xml ne remplace pas une BD. Faut plus le voir comme un format d'échange entre applications (web en particulier). Qq ex : RSS, SOAP, RDF...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-05-2010 à 13:47:30    

gatsu35 a écrit :


ça remplace pas la DB, ça permet juste d'avoir un code propre en sortie et pas des echo dans tous les sens et de mieux controler ce que je fais.
C'est plus chiant à gérer, un peu plus lourd mais c'est power.
 
Tu peux très bien en sortie de bd, generer un XML puis ensuite le balancer à ta feuille de style.


ok, ça je saisis. Mais pour pondre le xml, il faut bien faire des echo dans ton php non? ou alors j'ai mal saisit certaines fonctions (en n'oubliant pas que je suis débutant :D). Enfin à part en ce qui concerne la portativité du contenu, j'ai du mal à saisir l'avantage. Surtout que je comptais sortir du xhtml. Donc à priori ça reste quand même accessible à certaine formes de portabilité je pense..
 
Bon, ça se sent que j'ai des connaissances mais que je suis méga débutant sur l'emploi des différentes technos :D


---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 19-05-2010 à 14:02:58    

Y'a des libs xml permettant de générer des docs XML biens formés, donc pas d'echo partout (ex : DOM)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-05-2010 à 14:09:50    

wizopunker a écrit :


ok, ça je saisis. Mais pour pondre le xml, il faut bien faire des echo dans ton php non? ou alors j'ai mal saisit certaines fonctions (en n'oubliant pas que je suis débutant :D). Enfin à part en ce qui concerne la portativité du contenu, j'ai du mal à saisir l'avantage. Surtout que je comptais sortir du xhtml. Donc à priori ça reste quand même accessible à certaine formes de portabilité je pense..
 
Bon, ça se sent que j'ai des connaissances mais que je suis méga débutant sur l'emploi des différentes technos :D


Quand je dis en sortie c'est que tu as du code XML dans une variable.
 
bien sur le xml tu le génère pas comme tu génère du texte, tu utilises une librairie XML pour faire du DOM, sinon c'est un peu dégueulasse. :o


---------------
Blablaté par Harko
Reply

Marsh Posté le 20-05-2010 à 01:18:47    

oulah je suis largué, je vais me chercher de la doc demain ou vendredi :D


---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 18-07-2010 à 18:58:48    

Bon, du coup j'ai pas mal bossé depuis! J'ai pas encore vraiment mis les doigts dans DOM, j'apprends un peu tout et rien pèle-mèle, mais je progresse tout seul comme un grand :D

 

www.wizopunk-art.com

 

Par contre, j'ai un problème complètement débile, j'ai le menu qui décale quand on clique sur un article. Pourtant c'est le même css, et j'ai pas l'impression d'avoir oublié la fermeture d'un div ou un truc du genre, du coup je comprends pas trop trop!

 

Si vous avez une idée??

 

Et j'aimerai améliorer les possibilité en référencement. Du coup je prévois de gérer un url rewriting. Et puis il faut que je développe encore un paquet de trucs, ça reste très basique. Mais j'ai déjà beaucoup apris, je suis content :D

Message cité 1 fois
Message édité par wizopunker le 18-07-2010 à 19:00:24

---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le 18-07-2010 à 22:40:42    

wizopunker a écrit :

Par contre, j'ai un problème complètement débile, j'ai le menu qui décale quand on clique sur un article. Pourtant c'est le même css, et j'ai pas l'impression d'avoir oublié la fermeture d'un div ou un truc du genre, du coup je comprends pas trop trop!

 

Si vous avez une idée??


Original comme bug  [:bighead] (même s'il est logique)

 

Les 30px de décalage proviennent de la marge haute sur le h2 qui suit.

Code :
  1. (ligne 267)
  2. #div_container #div_article h2 { margin-bottom: 0; /* au lieu de 30px */ }


Pour ton "menu" (je croyais que c'était de la déco, vu qu'il y a des dates à droite et que ton header n'est pas cliquable pour revenir à l'accueil et qu'au survol du menu rien ne se passe pas même une petite bordure basse au survol/focus pour faire genre le lien se souligne ... Il a fallu que je regarde avec Firebug ton code pour comprendre que ces 4 images étaient les 1ers liens de la page donc le menu !), vu que tu te compliques la vie avec du positionnement absolu alors que tu as un div#header tout vide, il est positionné en absolu par rapport à son parent #article et celui-ci subit (fusion des marges) la marge haute du 1er élément qu'il contient et qui soit pas hors du flux (ni flottant, ni positionné en absolu ou fixé, ni caché).

 

edit : phrase incompréhensible, je réécris demain :o


Message édité par phosphoreloaded le 18-07-2010 à 22:41:46
Reply

Marsh Posté le 18-07-2010 à 23:10:45    

hahaha, oui effectivement c'est tout con en fait! Merci, je m'empresse de corriger ça dans la semaine :D
 
Le menu je vais encore bosser dessus, ne serait-ce que pour le référencement..
 
J'avoue avoir encore du mal avec les différentes notions de placement en css, c'est pas toujours évident pour moi. Je commence tout juste à comprendre comment fonctionnent les liens de parenté. Si je comprends bien, c'est mon h2 qui modifie les propriété de son parent (#article) et du coup le menu suit les modification sur #article vu qu'il en est enfant? Piouuuu :D
 
J'ai encore pleins de trucs à corriger/finir, le menu en fait partie! Le header cliquable aussi bien évidement. Une interface un peu plus sympa pour les images, une gestion plus efficace de l'affichage de la miniature (genre que ça affiche un gif pendant le chargement, et que si on ressort de l'image avant le chargement elle ne vienne pas s'afficher après :o)
 
Et puis j'ai encore des problèmes d'encodage de texte, quand je l'enregistre dans mon mysql il me fout des \ pour échapper le texte.. enfin il me manque pleins de petits trucs à la con encore sur lesquels il faut que je me documente!
 
Mais merci pour ton aide :love:


---------------
| .:: www.wizopunk-art.com - Développement web ::. |
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed