Plugins: CKeditor

StéphaneStéphane Member, Former PluXml Project Manager
décembre 2009 modifié dans Modifications

1) 03/11/2009: Mise à jour de la procédure d'installation et de l'archive contenant ckeditor en tenant compte des différents bugs remontés dans cette discussion du forum

2) Si vous souhaitez utiliser le dossier /data/images plutot que /data/documents, appliquez les modifications expliquées ici



Bonjour

Voici donc le plugin qui permet de remplacer la plxToolbar par l'éditeur wysiwyg CKeditor avec en plus un gestionnaire de fichier

Pour l'installation:

1) Récupérer le fichier suivant et décompresser le à la racine de votre pluxml

Télécharger le plugin CKeditor

2) Éditer le fichier core/admin/prepend.php et ajouter tout à la fin du fichier la ligne suivante:
<?php include(PLX_ROOT.'plugins/plx.ckeditor.php') ?>
(veillez à ce que le format du fichier modifié soit bien en ANSI une fois enregistré)

3) Éditer le fichier core/admin/top.php et au dessus de la ligne
</head>
ajoutez la ligne:
<?php ckeditor() ?>
(veillez à ce que le format du fichier modifié soit bien en ANSI une fois enregistré)

L'éditeur sera visible sur la page de rédaction d'un nouvel article.

Concernant le gestionnaire de fichiers, il a quelques restrictions:
- pas de gestion des miniatures telque le fait la plxtoolbar
- pas de possibilité d'ajouter des liens cryptés pour télécharger des fichiers telque le fait la plxtoolbar

Toutes vos images et fichiers uploadés en passant par ce gestionnaire de fichiers seront stockés dans le dossier: /data/documents

Si vous avez déjà utilisé la plxtoolbar pour uploader des images sur votre site, vous pouvez déplacer toutes les images du dossier data/images dans data/documents (inutile de déplacer les fichiers .tb)
Ainsi vous verrez vos anciennes images dans le gestionnaires de fichiers de CKEditor.

Voilà donc un premier essai du portage de CKeditor pour pluxml, ce qui veut dire que ce n'est pas exempt de bugs. Faite vos remarques si vous avez des problèmes on essayera de trouver une solution. J'ai essayé plusieurs gestionnaires de fichiers compatibles avec CKeditor, j'ai pris celui qui était le moins buggé et qui semblait le mieux fonctionner avec. Il est loin d'être parfait, mais les autres étaient pires :(

Merci d'avance pour ceux qui prendront le temps de l'essayer.
Si tout semble correct il sera ajouté dans le wiki

Stéphane.

ps: aucun fichier de Ckeditor n'a été modifié ce qui devrait permettre de suivre les mise à jour de l'éditeur en récupérant les nouvelles versions sur le site officiel en remplaçant la version de pluxml. c'est pour cette raison que Ckeditor et le gestionnaire de fichiers sont dans 2 dossiers différents (ckeditor, filemanager). En revanche les fichiers dans le dossier filemanager ont été modifiés, traduits en francais et un piti peu débuggés.

Consultant PluXml

Ancien responsable et développeur de PluXml (2010 à 2018)

«13

Réponses

  • Arff c'est embêtant que les images ne soient pas dans le dossier images...
    Pas moyen de faire la modif ?

    La création de répertoire marche aussi avec ce gestionnaire ?

    Merci en tout cas pour le travail. ;)
  • HamtaroHamtaro Member
    novembre 2009 modifié
    Petite correction sur la première modif au niveau du chemin :

    <?php include(PLX_ROOT.'plugins/ckeditor/plx.ckeditor.php') ?>

    Et du coup, il faut changer d'autres chemin dans le fichier :p

    <script type="text/javascript" src="<?php echo PLX_ROOT ?>plugins/ckeditor/ckeditor/ckeditor.js"></script>
    <script type="text/javascript">
    window.onload = function() {

    if (document.getElementsByName('chapo')) {
    CKEDITOR.replace('chapo', {
    filebrowserBrowseUrl: '<?php echo PLX_ROOT ?>plugins/ckeditor/filemanager/index.html',
    filebrowserWindowWidth : '950',
    filebrowserWindowHeight : '500',
    }
    )
    }
    if (document.getElementsByName('content')) {
    CKEDITOR.replace('content', {
    filebrowserBrowseUrl: '<?php echo PLX_ROOT ?>plugins/ckeditor/filemanager/index.html',
    filebrowserWindowWidth : '950',
    filebrowserWindowHeight : '500',
    }
    )
    }

    }
    </script>
  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut Hamtaro

    Si je comprends bien ta modif c'est parce que tu as déplacé:
    - le dossier filemanager dans le dossier de ckeditor
    - le fichier plx.ckeditor.php dans le dossier de ckeditor

    C'est une solution que je n'ai pas choisie pour les arguments cités dans le ps de mon 1er post.
    Me connaissant le jour où je devrais faire une mise à jour de CKeditor lorsqu'une nouvelle version sortira, je serais plutôt du genre à supprimer le dossier ckeditor et mettre le nouveau à la place (pour avoir quelque chose de propre). Aujourd'hui cela ne poserait pas de trop de problème car j'ai bien en tête qu'il faut penser à ne pas supprimer le dossier filemanager et le fichier plx.ckeditor.php mais dans plusieurs mois je n'y penserait peut etre plus et j'ai pas trop envie de me casser la tête pour m'en souvenir.

    Mais maintenant si tu préfères cette organisation dans tes dossiers ça n'empêchera de faire fonctionner ckeditor et tes modifs sont correctes.

    Pour ta question sur la possibilité d'utiliser le dossier data/image: tel que c'est fait actuellement non ce n'est pas possible. ça demanderait que recoder beaucoup de choses. Mais si quelqu'un a le temps, la patience et les connaissances pour le faire, qu'il ne se gêne pas. ça sera grandement apprécié. Personnellement je n'ai pas le temps car ça ne se fera pas en 10 minutes.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Ah ! et oui la création de répertoire fonctionne.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • FrédéricFrédéric Member
    novembre 2009 modifié
    Bonjour,

    Alors je viens de l'essayer mais j'ai un problème quand j'enregistre mes pages que ce soit par le bouton de CKeditor ou celui en bas de page (normale), en effet elles se recharges et m'affiche une page blanche.

    Peut être un problème de redirection ou je ne sais quoi.

    Le fichier prepend.php et top.php on bien étais modifié.

    Pour infos je test en local avec Mamp 1.8.2
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour mouffin

    Dans le fichier config.php, mets en commentaire la ligne
    error_reporting(E_ALL ^ E_NOTICE);
    
    et regarde si tu as des messages d'erreurs qui s'affichent.

    Puisque tu testes sous Mamp, fait en sorte que dans le php.ini tous les messages soient bien affichés (warning, notice, etc...)

    Stéphane

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Ok j'ai bien notifié toutes les erreurs dans mon php.ini.

    J'ai donc:

    Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/pluxml/plugins/plx.ckeditor.php:3) in /Applications/MAMP/htdocs/pluxml/core/admin/article.php on line 22

    La ligne 22 en question dans article.php:

    header('Location: ./article.php?a='.$_POST.'&msg='.urlencode($msg));
  • HamtaroHamtaro Member
    novembre 2009 modifié
    Stéphane a écrit:
    Salut Hamtaro

    Si je comprends bien ta modif c'est parce que tu as déplacé:
    - le dossier filemanager dans le dossier de ckeditor
    - le fichier plx.ckeditor.php dans le dossier de ckeditor

    C'est une solution que je n'ai pas choisie pour les arguments cités dans le ps de mon 1er post.
    Me connaissant le jour où je devrais faire une mise à jour de CKeditor lorsqu'une nouvelle version sortira, je serais plutôt du genre à supprimer le dossier ckeditor et mettre le nouveau à la place (pour avoir quelque chose de propre). Aujourd'hui cela ne poserait pas de trop de problème car j'ai bien en tête qu'il faut penser à ne pas supprimer le dossier filemanager et le fichier plx.ckeditor.php mais dans plusieurs mois je n'y penserait peut etre plus et j'ai pas trop envie de me casser la tête pour m'en souvenir.

    Mais maintenant si tu préfères cette organisation dans tes dossiers ça n'empêchera de faire fonctionner ckeditor et tes modifs sont correctes.

    Pour ta question sur la possibilité d'utiliser le dossier data/image: tel que c'est fait actuellement non ce n'est pas possible. ça demanderait que recoder beaucoup de choses. Mais si quelqu'un a le temps, la patience et les connaissances pour le faire, qu'il ne se gêne pas. ça sera grandement apprécié. Personnellement je n'ai pas le temps car ça ne se fera pas en 10 minutes.
    J'ai tout simplement dézippé (qui m'a donné un répertoire ckeditor contenant les fichiers en question et un autre répertoire ckeditor) ton fichier et placé celui-ci dans les plugins...
    Il faut donc placer uniquement le contenu du dossier... Erreur de ma part, je recommence... :p

    Edit : c'est bon. ;)

    Heu le filemanager est superbe. Vraiment pas moyen de le mettre par défaut dans le dossier Images ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    mouffin a écrit:
    Ok j'ai bien notifié toutes les erreurs dans mon php.ini.

    J'ai donc:

    Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/pluxml/plugins/plx.ckeditor.php:3) in /Applications/MAMP/htdocs/pluxml/core/admin/article.php on line 22

    La ligne 22 en question dans article.php:

    header('Location: ./article.php?a='.$_POST.'&msg='.urlencode($msg));
    Est-ce que tu peuxs essayer sur une version propre de pluxml, pour être sur que cela ne viendrait pas à cause d'autres modifs.

    Merci

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Sur le panneau de connexion lorsque je valide mon login, j'ai cela et il ne charge pas ma page d'admin, il reste sur le login :

    Warning: Cannot modify header information - headers already sent by (output started at /homez.65/customta/www/blog/plugins/plx.ckeditor.php:3) in /homez.65/customta/www/blog/core/admin/auth.php on line 37

    Je m'en vais et redemande la page core/admin et là, je suis connecté oO
  • Stéphane a écrit:
    Est-ce que tu peuxs essayer sur une version propre de pluxml, pour être sur que cela ne viendrait pas à cause d'autres modifs.

    Merci
    Retesté sur une version clean et le même warning
    Hamtaro a écrit:
    Sur le panneau de connexion lorsque je valide mon login, j'ai cela et il ne charge pas ma page d'admin, il reste sur le login :

    Warning: Cannot modify header information - headers already sent by (output started at /homez.65/customta/www/blog/plugins/plx.ckeditor.php:3) in /homez.65/customta/www/blog/core/admin/auth.php on line 37

    Je m'en vais et redemande la page core/admin et là, je suis connecté oO
    Le problème me le fais aussi sur la page auth.php et sur les pages statiques en mode édition et toujour au moment de sauvegarder.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Dans le fichier plx.ckeditor.php, peux-tu essayer en remplaçant:
    global $chapo, $content;
    
    par
    global $chapo, $content, $plxAdmin;
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Et pour déplacer le dossier par défaut sur le dossier Images, tu as une solution ?
  • Toujours pareil mais mon url n'est pas normal quand je retourne dans core/admin:

    http://localhost:8888/pluxml/core/admin/auth.php?p=/pluxml/core/admin/

    Sinon si ça marche sur un serveur ne te casse pas la tête, en local je l'installerais pas.
  • Sinon un détail, lorsque je veux éditer une page statique, le code php est complètement illisible.

    Voila ce que ca donne pour la partie php de la page contact du wiki:
    <p>	gds.$_POST['rep'])) { # Capcha valide $_POST['nom'] = trim($_POST['nom']); $_POST['content'] = trim($_POST['content']); $_POST['ip'] = plxUtils::getIp(); # On verifie les donnees if(empty($_POST['nom']) OR empty($_POST['mail']) OR empty($_POST['content'])) $erreur = 'Merci de remplir tous les champs obligatoires'; if($erreur == '' AND !plxUtils::checkMail(trim($_POST['mail']))) $erreur = 'L\'adresse mail saisie n\'est pas valide'; # On peut envoyer si pas d'erreur if($erreur == '') { $corps = 'Son nom : '.$_POST['nom']."\n"; $corps .= 'Son mail : '.$_POST['mail']."\n"; $corps .= 'Son adresse IP : '.$_POST['ip']."\n"; $corps .= 'Son message : '."\n"; $corps .= $_POST['content']; # On retire certains caracteres $corps = str_replace("\r"," ",$corps); # On envoi le mail $headers = 'From: '.$_POST['mail']."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\n"; $headers .= 'Content-transfer-encoding: 8bit'."\n"; if(mail($email,'## Pluxml ## contact depuis votre formulaire de contact',$corps, $headers)) $succes = 'Merci de nous avoir contacté, nous vous répondrons le plus rapidement possible.'; else $erreur = 'Une erreur s\'est produite au cours de l\'envoi de votre message...'; } } else { # Capcha non valide $erreur = 'la vérification anti-spam a échouée'; } } else { # Initialisation $erreur = 'Merci de remplir le formulaire ci-dessous'; $_POST['nom'] = ''; $_POST['content'] = ''; $_POST['mail'] = ''; } ?></p>
    
    Donc pour ma part je le mettrais que sur les articles.

    Sinon testé sur un serveur et j'ai les mêmes "Warning: Cannot modify header information - headers already sent..."
  • FrédéricFrédéric Member
    novembre 2009 modifié
    Stéphane je viens de voir que tu avez caché la plxtoolbar avec un display:none, mais cela la charge telle pas quand même et de ce fait renvois un headers already sent ?

    Et chez toi tu n'as pas ce bogue lors de la connexion à l'admin et lors des enregistrement d'articles/statiques ?

    Parce que ca ce contourne en retournant sur la page d'édition par exemple et la on bien logué , et les enregistrements se font bien, juste a faire un retour avec le navigateur pour voir que c'est bien pris en compte.

    Ou sinon ca viendrais du path ".PLX_ROOT.$plxAdmin" qui l'on retrouve 2 fois (url sur mon post plus haut) lorsque je clique sur "connexion"
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour mouffin

    1) la plxtoolbar est effectivement cachée avec un display: none, mais ce n'est pas ça qui doit provoquer ton erreur "header alreadt sent".

    2) En effet l'éditeur sur les pages statiques ce n'est pas très judicieux si on saisit du php car les caractères <, > etc... sont remplacés par leur équivalent html. C'est ckeditor qui fait se remplacement. Du coup la balise de début de code php <?php et remplacée par <?php et le code php n'est plus interprété au chargement de la page statique.

    3) j'ai pas compris

    4) de quel endroit parles-tu pour PLX_ROOT.$plxAdmin ?

    Je peux difficilement diagnostiquer les problèmes que tu rencontres, donc n'hésite pas à m'envoyer une copie de ton pluxml modifié pour que je regarde. ça permettra peux-etre de mettre en avant un bug vicieux :)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Ben en fait c'est fonctionnel niveau rendus des articles avec Ckeditor mais avec cette erreur en haut de page dans l'admin que l'on contourne avec le retour arrière de notre navigateur.

    Pour ce défaut d'url je parle du fichier plx.ckeditor.php
  • HamtaroHamtaro Member
    novembre 2009 modifié
    L'erreur sur le modification du header apparait également lors de la sauvegarde d'un article...
    C'est un peu gênant mais pas fatal, l'article est quand même sauvegardé.

    Par contre, je me suis permis d'orienté le dossier par défaut du filemanager vers mon dossier data comme cela, il gère tout (et vraiment tout vu qu'il y a aussi les articles et autres... :/ ) mais il existe un problème au niveau de l'url quand on place un lien ou une image...
    L'url est pas top , il vaut mieux que le http:// apparaisse pour les fluxx rss notamment et référencement image il me semble...

    D'ailleurs petit problème là dessus sur l'éditeur. A la première rédaction, les images et liens sont à la bonne adresse mais dès que l'on reouvre l'article, demande une prévisualisation, il rajoute à nouveau l'url par défaut ce qui fait qu'on arrive à un chemin ainsi :

    <img alt="" height="750" src="../../../../data/images/14.jpg" width="500" /></p>

    Une idée ?
    J'ai essayé d'utiliser l'adresse http:// par défaut dans le fichier config mais il ne la prend pas en contre et je n'arrive pas a trouver les sources de ton filemanager sur le net pour avoir plus d'infos sur les différents critères de config, tu as un lien vers le site officiel ?

    Merci d'avance et si tu pouvais résonner avec l'adresse http:// (je ne sais plus le nom, je confond toujours les deux façons), ça serait excellent :p
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour Hamtaro

    Edite le fichier plx.ckeditor.php

    et remplace partout
    $plxAdmin->aConf['documents']
    
    par
    $plxAdmin->aConf['images']
    
    Cela résoudra le problème de
    <img alt="" height="750" src="../../../../data/images/14.jpg" width="500" />
    puisque tu utilises le dossier images, plutôt que le dossier documents



    Stéphane

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Modifs effectuées mais c'est toujours la même chose :

    Il y a systématiquement rajout de "../../" devant les liens, chemin images. Cela ne vient-il pas de tes fonctions de remplacement ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    Je récapitules les changements à faire pour utiliser les dossiers images à la place du dossier documents

    Dans le fichier plugins/plx.ckeditor.php, remplacer partout
    $plxAdmin->aConf['documents']
    
    par
    $plxAdmin->aConf['images']
    
    dans le fichier plugins/filemanager/scripts/filemanager.config.js, remplacer
    var fileRoot = '../../data/documents/';
    
    par
    var fileRoot = '../../data/images/';
    
    dans le fichier plugins/filemanager/connectors/php/filemanger.config.php, remplacer
    $config['root'] = '../../../../data/documents/';
    
    par
    $config['root'] = '../../../../data/images/';
    
    /!\ Veillez à ce que les fichiers modifiés soient enregistrés au format ANSI (voir votre éditeur de texte)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • FrédéricFrédéric Member
    novembre 2009 modifié
    Stéphane a écrit:
    Je peux difficilement diagnostiquer les problèmes que tu rencontres, donc n'hésite pas à m'envoyer une copie de ton pluxml modifié pour que je regarde. ça permettra peux-etre de mettre en avant un bug vicieux :)
    Bonjour Stéphane, archive envoyée.

    Pour info le bogue apparais pour toute confirmation de paramètres/articles et statiques dans l'admin.
  • Modifs effectuées, c'est toujours la même chose...

    Toujours du chemin rajouté devant les adresses...
  • StéphaneStéphane Member, Former PluXml Project Manager
    Hamtaro a écrit:
    Modifs effectuées, c'est toujours la même chose...

    Toujours du chemin rajouté devant les adresses...
    Hum, hum. Si je te dis que tout fonctionne chez moi et que je n'ai pas de chemin rajouté au début... tu me crois bien sur :)

    Est-ce qu'il te serait possible de m'envoyer ton pluxml modifié. Que le minimum, pour que je regarde ce qui se passe avec l'éditeur dans ton environnement

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    mouffin a écrit:
    Stéphane a écrit:
    Je peux difficilement diagnostiquer les problèmes que tu rencontres, donc n'hésite pas à m'envoyer une copie de ton pluxml modifié pour que je regarde. ça permettra peux-etre de mettre en avant un bug vicieux :)
    Bonjour Stéphane, archive envoyée.

    Pour info le bogue apparais pour toute confirmation de paramètres/articles et statiques dans l'admin.
    Merci.
    Reçu et répondu.
    J'espère que ça sera bon.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Exactement ça Stéphane, pour ceux qui on ce soucis de header ... il faut enregistrer le fichier en AINSI et pas comme moi en UTF-8 avec BOM ^^

    Je n'avais pourtant pas changer le codage de ce fichier mais il a du e^tre sauvegardé par défaut.

    Merci Stéphane
  • StéphaneStéphane Member, Former PluXml Project Manager
    L'enregistrement des fichiers en ANSI est un paramètre dans votre éditeur de texte pour spécifier le jeu de caractères à utiliser dans l'encodage des fichiers.

    UTF8 sans BOM est à proscrire. (cétait l'origine du problème de mouffin)

    Donc: si vous modifiez des fichiers de pluxml, vérifiez qu'ils sont bien enregistrés en ANSI (tous les fichiers de pluxml sont en ANSI)

    Stéphane

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • FrédéricFrédéric Member
    novembre 2009 modifié
    Alors j'en reviens sur ce codage AINSI, donc la j'ai réglé le problème sur windows mais pas sur Mac :(

    Voici ce que j'ai comme codage avec dreamweaver:

    mini_091127064111784333.png

    Sur windows j'utilise UwAmp et Mamp sur osx si ca change quelque chose ^^

    Édite: Problème résolu en supprimant les sauts de ligne dans le code du fichier plx.ckeditor.php
  • HamtaroHamtaro Member
    décembre 2009 modifié
    J'ai refais une install clean (du plugin, pas de pluxml) de base comme tu l'indiquais et le problème de l'url est là.. :/

    J'ai fait deux modifs en plus: enlever les pages statiques, et changer documents par images.

    Si tu veux, je peux te donner accès à mon FTP (à manipuler avec des gants !:D ) et tu verras plus vite, non ?
Connectez-vous ou Inscrivez-vous pour répondre.