SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 222 visiteurs en ce moment

Accueil > Rédaction > Assistants de rédaction > CKeditor > Préserver la typo SPIP avec CKeditor

Préserver la typo SPIP avec CKeditor

19 février 2011 – par Emmanuel Dreyfus – 50 commentaires

53 votes

Depuis la version 0.14 du plugin CKeditor pour SPIP, il est possible d’utiliser CKeditor en préservant la typo SPIP : aucun code HTML n’est introduit dans vos articles, tout est reconverti en typographie SPIP.

Les éditeurs visuels ont l’avantage de la simplicité pour l’usager : pas de langage de typo à apprendre, il suffit de cliquer sur des boutons. Le prix à payer pour cette simplicité, c’était jusqu’ici l’introduction de code HTML dans les articles SPIP, là où il ne devrait y avoir que du code typo. Ce code HTML introduit des disparités dans le rendu visuel du site, et il interdit un certain nombre de manipulations basées sur la typo SPIP. De plus, la présence de ce code HTML rendait la cohabitation impossible entre les usagers de CKeditor et les usagers préférant manipuler la typo dans l’éditeur SPIP.

Cette limitation appartient au passé, puisque depuis la version 0.14 du plugin CKeditor pour SPIP, on peut utiliser une librairie — judicieusement nommée HTML2SPIP — pour retransformer en typo SPIP tout le code HTML produit par CKeditor. On a ainsi un éditeur visuel, mais les articles restent rédigés en typo SPIP.

Pour rentrer dans les détails, au moment où on lance CKeditor, SPIP converti sa typo en HTML. CKeditor manipule le code HTML, et quand on enregistre, la librairie HTML2SPIP converti l’HTML en typo SPIP. Tout ne peut pas être converti, et certains enrichissements de CKeditor seront ignorés au moment de la reconversion en typo. Par exemple, CKeditor permet de choisir la couleur d’une section, opération qui n’a pas de sens en typo SPIP (et plus généralement qui est à proscrire si on tente d’imposer une charte graphique cohérente). HTML2SPIP ignorera les colorations introduites par CKeditor, qui seront perdues.

Configuration de CKeditor pour préserver la typo

Tout d’abord, il faut télécharger la librairie HTML2SPIP. Prenez la dernière version, et décompactez la dans le dossier lib de
votre installation de SPIP.

Rendez vous ensuite dans les formulaires de configuration de CKeditor dans l’espace privé. Choisissez le formulaire Configuration avancée, qui ressemble à ceci :

Si à la place des réglages de la section Options HTML2SPIP, vous avez un message indiquant La librairie html2spip n’est pas installée(...), vous pouvez avoir un des problèmes suivants

  • HTML2SPIP n’est pas installée dans le dossier lib.
  • Les permissions dans le système de fichier ne permettent pas au serveur d’y accéder.
  • La version de HTML2SPIP n’est pas celle attendue par le plugin CKeditor. Le plugin attend une version spécifique de la librairie. Le message d’erreur vous donne un lien vers la bonne version.

Activez l’option Reconvertir l’HTML en typo SPIP. Si vous souhaitez que le plugin désactive de lui même les fonctionnalités de CKeditor incompatibles avec la typo SPIP, cochez aussi l’option N’utiliser que les options de CKEditor compatibles avec les raccourcis typographiques SPIP.

Conserver certaines balises HTML

HTML2SPIP élimine les balises HTML qui n’ont pas d’équivalent en typo SPIP, vous pouvez néanmoins vouloir conserver certaines balises, telles que <object> ou <embed>. C’est possible, avec le champ Balises HTML que HTML2SPIP doit laisser intouchées. Placez-y la liste des balises à préserver, séparées par des point-virgules.

Gestion des modèles propres au site

Si vous utilisez des modèles propre au site, il est important de les renseigner dans le champ Balises SPIP à autoriser dans CKEditor, afin que CKeditor et HTML2SPIP n’y touchent pas.

Interception des traitements de conversion

Vous pouvez placer dans votre fichier mes_fonctions.php des fonctions qui seront invoqués avant et après les opérations de conversions HTML vers typo SPIP et typo SPIP vers HTML. Les noms sont assez explicites :

  • ckeditor_spip2html_pre($texte)
  • ckeditor_spip2html_post($texte)
  • ckeditor_html2spip_pre($texte)
  • ckeditor_html2spip_post($texte)

Ce type d’interception peut être utile si vous pratiquez des opérations sur la typo SPIP. Par exemple si vous interceptez typographie_fr() pour transformer les adresses de courriel en images, un traitement dans ckeditor_html2spip_pre() permettra de réaliser l’opération inverse, et ainsi retrouver votre adresses en texte dans votre article.

Chaque fonction prends un unique argument, contenant le texte à traiter, et doit renvoyer le texte traité.

Dernière modification de cette page le 20 février 2011

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 1er septembre 2013 à 12:58, par Maïeul En réponse à : Préserver la typo SPIP avec CKeditor

    Salut,

    j’aimerais créer une version de ckeditor pour SPIP qui produise directement du spip, sans faire de la rétroversion depuis HTML. À la manière de http://ckeditor.com/demo#bbcode.

    Je ne pense pas répartir de ton code, mais faire quelque chose de plus simple, brique par brique.
    mais avant de me lancer : est-ce que c’est dans tes projets ces temps ci ?

    Répondre à ce message

  • Le 29 juin 2012 à 13:21, par ygornet En réponse à : Préserver la typo SPIP avec CKeditor

    Une migration du plugin compatible SpipV3 est-il prévu ?

    Répondre à ce message

  • Le 20 mars 2013 à 11:56, par racha En réponse à : Préserver la typo SPIP avec CKeditor

    bonjour
    j’ai installer ckeditor mais il m’affiche ce erreur
    Fatal error : Could not extract a stage height from the CSS. Traced height : 0px.
    j’ai pas compris
    quelqu’un peut m’aider

    Répondre à ce message

  • Le 12 février 2013 à 13:00, par cyrion En réponse à : Préserver la typo SPIP avec CKeditor

    J’ai le mesage suivant dans l’onglet avancé de cfg :

    Warning : Invalid argument supplied for foreach() in /mnt/125/sda/0/5/sgdf1ere.altkirch/plugins/ckeditor-spip-plugin/formulaires/ckc.php on line 17

    et je n’arrive pas à supprimer les modeles

    Répondre à ce message

  • Le 6 octobre 2011 à 10:52, par Jean-Baptiste Pressac En réponse à : Préserver la typo SPIP avec CKeditor

    Bonjour,
    J’utilise le script HTML2SPIP en combinaison avec le plugin Flux RSS en articles qui converti des flux RSS en articles et je rencontre un problème avec les images jpeg, celles-ci sont parfois stockées dans la table spip_documents comme étant de type « jpeg » au lieu de « jpg » et ne peuvent pas s’afficher avec les raccourcis typographiques <img123>. Quel est le mécanisme qui permet de déterminer le format des images ?
    Cordialement,

    Répondre à ce message

  • Le 1er janvier 2012 à 21:10, par Mib68 En réponse à : Préserver la typo SPIP avec CKeditor

    Bonjour j’ai un petit probleme avec l’utilisation de la librairie html2spip-0.6 lorsque j’ouvre un article pour l’éditer avec l’éditeur il m’affiche systématiquement le méssage suivant a la place du texte :

    Parse error : syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ’’ in /mnt/125/sda/0/5/sgdf1ere.altkirch/lib/html2spip-0.6/HTMLEngine.class on line 22

    Je suis obliger de passer par l’éditeur de base de spip afin de rédiger les articles

    De plus dans la config CFG dans avancé j’ai le méssage suivant :

    Warning : Invalid argument supplied for foreach() in /mnt/125/sda/0/5/sgdf1ere.altkirch/plugins/ckeditor-spip-plugin/formulaires/ckc.php on line 17

    Si quelqu’un à une idée d’ou peu venir le problème et comment le résoudre je suis preneur

    Merci d’avance pour vos réponses

    • Le 2 janvier 2012 à 04:40, par Emmanuel Dreyfus En réponse à : Préserver la typo SPIP avec CKeditor

      Quelle version de PHP ? HTML2SPIP requiert 5.1 minimum si je me souviens bien.

    • Le 2 janvier 2012 à 17:47, par Mib68 En réponse à : Préserver la typo SPIP avec CKeditor

      Le site tourne sous free et dans le gestionnaire de base Mysql j’ai les info suivante

      Version du serveur : 5.0.83
      Jeu de caractères pour MySQL : UTF-8 Unicode (utf8)
      Serveur web
      Apache
      Version du client MySQL : 5.1.35
      Extension PHP : mysql
      phpMyAdmin : Version : 3.1.5

      Je ne sait pas exactement laquelle des valeur représente la version de PHP

      Coordialement

    Répondre à ce message

  • Le 24 juin 2011 à 11:21, par Jean-Baptiste Pressac En réponse à : Préserver la typo SPIP avec CKeditor

    Bonjour,
    En essayant de réutiliser la librairie HTML2SPIP v0.5 pour le plugin Flux RSS en articles, j’ai constaté un problème de traitement du caractère « à » avec HTML2SPIP v0.5 : le caractère est mal interprété. Par exemple, avec le script suivant :

    <?php
    require_once('misc_tools.php');
    require_once('HTMLEngine.class');
    require_once('HTML2SPIPEngine.class');

    $parser = new HTML2SPIPEngine("", "");
    $parser->loggingEnable();

    $output = $parser->translate('<p>C\'est l\'été, bonjour à tous</p>');
    echo $output['default'];                       
    ?>

    Affiche : C’est l’été, bonjour � tous

    Version de PHP utilisée : 5.3.1.

    D’ailleurs, à propos de la version de PHP, j’ai constaté que la librairie HTML2SPIP utilise des fonctions PHP qui ne sont disponibles qu’à partir de la version 5.1, serait-il possible de le préciser dans votre article ? Merci.

    Répondre à ce message

  • Le 25 juillet 2011 à 12:22, par Frédéric Bonnaud En réponse à : Préserver la typo SPIP avec CKeditor

    Je poste ici le lien vers un message qui concerne plus précisément html2spip :
    http://www.spip-contrib.net/CKeditor-3-0#comment448077

    Répondre à ce message

  • Le 30 juin 2011 à 12:46, par VideoMAN En réponse à : Préserver la typo SPIP avec CKeditor

    bonjour,

    merci et bravo pour ce plugin, cependant j’ai un site qui contient 2600 articles (basé sur fckeditor et spip 1.9), j’aimerai appliqué votre solution d’un coup sur tous les articles, existe-t’il une solution pour ça !!
    j’ai testé et appliqué (après migration vers spip 2.1 et utilisation de ckeditor 3.6.1 et html2spip 0.4) sur 20 articles, mais faut à chaque fois les ouvrir un à un dans spip (modifier article) ce qui est fastidieux !! le résultat est très bon (ça élimine plein de tags html pas utile et encombrant d’ailleurs !)

    si quelqu’un à une moulinette (automatiser l’application, un plugin pour ça peut être ??)qui se charge de faire passer votre solution sur tous les articles en base je suis preneur !

    merci.
    ps : j’ai vu qu’il y a la 0.6 où peut on avoir un changelog pour suivre les évolutions ? (pourquoi ne pas la mettre sur la zone ? dans galaxie car ce n’est pas un plugin en soi ?)

    • Le 30 juin 2011 à 13:31, par VideoMAN En réponse à : Préserver la typo SPIP avec CKeditor

      je confirme ce que Jean Baptiste Pressac, suite à une mise à jour en version 0.6, j’obtiens de bien curieuses bêtes :

      [| � |][| � |][| � |][|

      en effet les accents sont ignorés donnant des � (alors que ça fonctionnait mieux avant : version 0.4
      les autres caracteres je en sais pas ce que c’est ?

      @+

    • Le 5 juillet 2011 à 18:04, par VideoMAN En réponse à : Préserver la typo SPIP avec CKeditor

      heu personne pour me répondre ?
      ou bien je suis le seul à vivre ça !?!

      merci.

    • Le 5 juillet 2011 à 18:06, par manu0111 En réponse à : Préserver la typo SPIP avec CKeditor

      c’est un caractère UTF-8 afficher avec un type MIME iso-8859-1. Ton site est en iso-8859-1 ?

    Répondre à ce message

  • Le 24 mai 2011 à 17:08, par François Daniel Giezendanner En réponse à : Préserver la typo SPIP avec CKeditor

    Bonjour,

    Quand je colle du texte formaté dans le champ texte il est en page. Quand j’enregistre l’article j’obtiens ceci :

    1. ERROR : Failed SQL query : CREATE PROCEDURE InsertOrUpdateFichier( OUT _id_document BIGINT(21), IN _id_vignette BIGINT(21), IN _extension VARCHAR(10), IN _titre TEXT, IN _date DATETIME, IN _descriptif TEXT, IN _fichier VARCHAR(255), IN _taille INT(11), IN _largeur INT(11), IN _hauteur INT(11), IN _mode ENUM(’vignette’,’image’,’document’), IN _distant VARCHAR(3), IN _maj TIMESTAMP ) BEGIN DECLARE count, id BIGINT(21) ;
    2.  
    3. SELECT count(*), id_document INTO count, _id_document FROM spip_documents WHERE fichier = _fichier ;
    4.  
    5. IF count = 0 THEN INSERT INTO spip_documents ( id_vignette, extension, titre, date, descriptif, fichier, taille, largeur, hauteur, mode, distant, maj ) VALUES ( _id_vignette, _extension, _titre, _date, _descriptif, _fichier, _taille, _largeur, _hauteur, _mode, _distant, _maj ) ; SELECT LAST_INSERT_ID() INTO _id_document ; END IF ; END , error : Access denied for user ’std001_usr’@%’ to database ’spip_std001’

    Télécharger

    Comment surmonter ce problème ?

    Quelques questions préliminaires :

    • faut-il renommer html2spip-0.4 en html2spip ?
    • Faut-il déclarer les droits de plugins et/ou de certaines librairies (attributs de dossiers) en 777 ?

    Cordialement

    FDG

    • Le 26 mai 2011 à 13:12, par gilb En réponse à : Préserver la typo SPIP avec CKeditor

      Bonjour
      j’ai le même problème.
      Je ne pense pas qu’il faille le renommer, lorsque j’ai essayé, Html2spip n’était plus vu dans les options avancées.
      s attributs 777 n’ont rien changé.
      que faire ?
      cordialement,

    • Le 30 mai 2011 à 16:56, par Jean-Jacques Puig En réponse à : Préserver la typo SPIP avec CKeditor

      Aïe, je n’avais pas prévu que la fonctionnalité serait activée depuis le plugin ckeditor. C’est une procédure stockée qui était utilisée pour des raisons historiques dans html2spip (conçu initialement pour une migration drupal => spip ; ceux qui veulent s’y frotter peuvent me contacter). Vous pouvez commenter soit l’invocation de spip_register_procedures dans ckeditor-spip-plugin/inc/ckeditor_tools.php, soit les invocations de my_mysql_query dans les fonctions spip_register_procedures et spip_unregister_procedures dans html2spip-0.4/misc_tools.php

      Je vais voir ce que je peux faire pour rendre tout ça plus utilisable.

    • Le 30 mai 2011 à 17:14, par François Daniel Giezendanner En réponse à : Préserver la typo SPIP avec CKeditor

      Bonjour Jean-Jacques,

      J’espère que tu pourras rendre tout cela (Préserver la typo SPIP avec CKeditor) utilisable car cette fonctionnalité est d’une grande importance.

      Apparté drupal2spip :
      D’autre part, tu évoque « une migration drupal => spip », c’est là un sujet qui m’intéresse, il serait pour le moins plaisant, pour ne pas dire utile qu’un plugin drupal2spip, quelque chose est-il publié sur ce thème.

      Cordialement

      FDG

    • Le 8 juin 2011 à 14:16, par Jean-Jacques Puig En réponse à : Préserver la typo SPIP avec CKeditor

      Bonjour,

      La nouvelle mouture d’html2spip (http://ftp.espci.fr/pub/html2spip/html2spip-0.5.zip) n’utilise plus de procédure stockée, ce qui devrait vous éviter une erreur bloquante comme celle mentionnée plus haut.

      Concernant le processus de migration drupal => spip, ce n’est pas un travail pour un plugin, mais plutôt pour un script de migration. Pour ma part, j’avais principalement extrait des données des tables node et node_revision, ainsi que de différentes tables note_type_ et node_field_ créées automatiquement dans Drupal pour des spécificités de notre site.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Champs Extras 3

    16 janvier 2012 – 524 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 188 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

  • Recommander

    3 avril 2011 – 16 commentaires

    Ce plugin propose une manière simple de suggérer de recommander par email un article à un ami. Fonction « recommander un article à un ami ». On l’ajoute dans n’importe quel squelette sous la forme : #RECOMMANDERtitre de la page,url de la page,intro (...)

Ça spipe par là