Voir aussi la documentation de la version 3
odt2spip v3+ : création d’articles à partir de fichiers textes
Important :
La transformation des fichiers ODT impose que l’extension XSL de PHP soit active sur le serveur web
Installation
- téléchargez le zip du plugin correspondant à votre version de SPIP
- pour l’installation et l’activation, suivez la procédure standard : cf la documentation officielle
Utilisation
Rien que de très simple : une fois le plugin activé, dans la page de gestion d’une rubrique vous trouverez une boite de dialogue qui permet de choisir le fichier à télécharger depuis votre ordinateur : « Créer un article à partir d’un fichier ODT ».
De la même manière, si vous souhaitez remplacer le contenu d’un article existant par celui d’un fichier odt, dans les pages des articles vous trouverez la boite de dialogue « Remplacer l’article par le contenu d’un fichier ODT ».
Une fois validé l’article est automatiquement créé avec le statut « proposé à la publication », si nécessaire le fichier ODT original est attaché comme document à l’article et le plugin vous bascule sur la page de cet article.
La transformation opérée par le plugin
Ce plugin ne fait qu’une transformation du contenu du fichier en code SPIP : il n’assure aucun miracle si votre fichier initial est construit de façon non-conforme aux règles de l’utilisation d’un traitement de texte et ne fera rien que vous ne puissiez reproduire avec les raccourcis typographiques de SPIP...
Un exemple de page générée à partir d’un fichier « type » : http://tice.espe.univ-amu.fr/demo/s...
Plus de précisions :
-
il est nécessaire d’avoir utilisé les styles pour définir les titres dans le fichier OpenOffice si vous voulez que le plugin les détecte. La conversion se fait selon les règles suivante (que les puristes passent leur chemin, il n’y a ici aucun respect des aspects sémantiques habituellement liés à l’utilisation des raccourcis typographiques !) :
- si il existe au moins un paragraphe avec le style Titre, son contenu est utilisé pour générer le titre de l’article. Sinon c’est le Titre de niveau le plus important qui est utilisé : Titre 1 > Titre 2 > Titre 3... .
- Le premier niveau de Titres est transformé en intertitres SPIP
{{{Titre niveau 1 intertitre}}}
(si Titre 1 n’existe pas, Titre 2 est utilisé à sa place, Titre 3 à la place de Titre 2, et ainsi de suite) - le deuxième niveau est mis en gras et séparé du restant par des sauts de lignes
{{Titre niveau 2 en gras}}
- tous les autres niveaux de titre sont passés en italique et séparés par des sauts de ligne
{Titres de niveau 3, 4, 5... en italique}
- si d’aventure vous aviez décidé d’utiliser le plugin Enluminure typographique ou le plugin Intertitres hiérarchisés qui définissent et utilisent des niveaux de titres supplémentaires (vade retro satanas !), odt2spip détecte leur présence et, automatiquement, utilise les raccourcis « enrichis » tels que
{2{titre niveau deux}2} ou {4{titre niveau quatre}4}
(ces raccourcis sont interprétés par ces 2 plugins). - Le plugin récupère les images intégrées dans le fichier d’origine à condition qu’elles soient au format jpg ou png ou gif (n’espérez rien si vous avez des fichier BMP ou TIFF intégrés !), les retaille pour approximer du mieux possible la taille qu’elles avaient dans le texte, les intègre comme documents SPIP et les place avec un raccourci de la forme
<imgXXX|left> ou <imgXXX|right> ou <imgXXX|center>
en fonction de la position à laquelle se trouvait l’image dans le texte d’origine.
Attention ! pour que cette fonctionnalité soit opérationnelle, il faut que les images aient été intégrées dans le texte en utilisant les fonctions d’insertion d’image (menu « Insertion » > « Image » > « A partir d’un fichier... ») et non pas via un copié/collé du contenu de l’image dans le texte (qui génère un bitmap non récupérable). - Les formules mathématiques (rédigées à l’aide de l’éditeur d’équation natif d’OOo Writer ou des outils complémentaires tels l’excellent Cmath) sont en principe complètement gérées : le plugin génère le code LateX et le place dans une balise math :
<math>$\frac{\sqrt{2x+9}}{4y-6}=\frac{\alpha 3}{\beta 2}$</math>
- Les notes de bas de page sont gérées sans problèmes ni restrictions.
- Pour les tableaux, pas de problème tant que vous n’essayez pas de faire des tableaux imbriqués (c’est à dire un tableau dans une cellule de tableau) : les fusions de cellules horizontales et verticales sont gérées en principe correctement.
- Les listes à puce et numérotées, imbriquées ou non, sont en principe correctement gérées tant qu’elles ne sont pas interrompues par d’autres éléments (donc pas de reprise de numérotation d’une liste à la suivante).
Eléments non-gérés ou supprimés
- Pour les tableaux et les listes le plugin ne gère pas les contenus ayant un style de Titre.
- Les fioritures de style de texte sont limitées à celles autorisées par les raccourcis typographiques : gras et italique donc pas de texte de couleur ni avec des fonds colorés (beurk !), pas de variations de police ni de taille de texte (ce qui évitera que les rédacteurs pourrissent la charte graphique du site !)
- Les en-têtes, pieds de page, index ou table des matières sont purement et simplement supprimés.
- Les dessins (flêches, bulles et autres formes crées avec l’outil de dessin d’OOo Writer) ne sont pas (encore ?) supportés.
Utilisation de fichiers Word :
Pour passer d’un fichier Word (format .doc ou .docx) à un fichier odt utilisable par ce plugin, il est conseillé de faire la conversion (« enregistrer sous... » au format ODT) dans LibreOffice (ou OpenOffice) et non pas dans Word (vous avez déja vu un logiciel Microsoft respecter correctement des spécifications de format standard ???)
TO DO
- Comme d’habitude, piètre graphiste que je suis, si quelqu’un avait le courage de faire un logo moins crasseux, il est le bienvenu ! Merci popojcb !
- Ajouter la gestion des dessins SVG intégrés dans le fichier texte (avec une version jpg obtenue par conversion automatique pour les navigateurs qui supportent pas svg..)
- Ajouter la gestion des équations mathématiques qui sont en MathML dans le fichier texte (si vous connaissez un convertisseur MathML -> LaTeX écrit en PHP et open-source, merci de me prévenir !) Merci Amaury Adon pour m’avoir trouvé la référence de la librairie XSLT « MathML 2.0 to LaTeX »
- Ajouter une interface de configuration pour rendre paramétrable les conversion « imposées » pour les niveaux de titre...
Notes techniques
Le moteur de transformation du fichier odt est basé sur une feuille de style XSLT (/odt2spip/inc/odt2spip.xsl) qui opère sur le fichier content.xml extrait du fichier odt envoyé et dézippé dans un répertoire temporaire /tmp/odt2spip/XXX où XXX représente l’id_auteur en cours . Cette transformation permet de produire le titre et le texte de l’article. Les images sont également extraites du fichier dézippé et intégrées comme documents attachés à cet article (après un éventuel redimensionnement). Le répertoire temporaire de l’auteur (/tmp/odt2_spip/XXX) est effacé à la fin de l’opération.
Si vous souhaitez participer au développement de ce plugin ou faire des modifications du convertisseur XSLT, le répertoire /tests de ce plugin comprend le fichier ODT « type » ainsi que le fichier xml correspondant pour réaliser vos tests.
Si vous êtes sur un SPIP mutualisé, il se peut que vous ayez des problèmes de chemins vers les fichiers lors de la transformation xslt : voir ce fil de discussion pour une éventuelle solution (pour PHP 5) problème réglé avec la version [0.14].
Versions
[version 0.11] support des formules mathématiques
[version 0.12] choix du mode d’intégration des images (img / doc)
[version 0.13] choix de la langue de publication de l’article généré
[version 0.14] compatibilité avec la mutualisation du noyau SPIP 2.0
[version 0.15] compatibilité avec la barre typo V3 (cf #forum435614) et correction de l’incompatibilité des fonctions de révision du plugin snippets avec la version 2.1 de SPIP (cf #forum434725)
[version 2.0] compatibilité SPIP 3.0
[version 2.1] permettre la mise à jour d’un article à partir d’un fichier odt (cf #forum474504)
Ce plugin existe en 2 version :
- La version « historique » (0.15.3, fichier odt2spip_19_20_21.zip) assure un maximum de compatibilité PHP / SPIP : php5 + spip 2.* , php5 + spip 1.9.2*, php4 + spip 2.*, php4 + spip 1.9.2*.
- la version « actuelle » : (2.1.*, fichier odt2spip_30.zip) exclusivement PHP 5 + SPIP 3.*
Discussions par date d’activité
69 discussions
Bonjour,
Je viens de passer à spip3 j’installe odt2spip 2.02 mais malheureusement il ne publie plus mes images...
dans l’article il met bien les balises :
mais il ne charge pas les photos dans les documents
et du coup il n’y a rien dans mon article enfin que le texte.
j’ai peut être oublié quelque chose mais j’ai essayé en cochant image et en cochant document et le résultat est le même : pas de photo...
merci d’avance
Bonjour,
Pour info et pour les débutants comme moi :
Il ne faut pas :
- utiliser word
- utiliser le « enregistrer sous odt » de word
- faire des copier coller dans open office
il faut :
- créer de toute pièce son article dans open office
- les copier coller depuis excel fonctionnent
- utiliser la fonction insérer image
- importer le odt dans spip en cochant « image »
Merci à la personne qui m’a apporté un début de réponse qui m’a mis sur la bonne voie,
à+
Merci pour ces précisions : j’ai ajouté à la doc les points sur l’intégration des images et la méthode de conversion depuis Word.
Répondre à ce message
Une bonne nouvelle ! J’attendais avec impatience la version compatible avec SPIP 3.0. Merci je vais essayer ça tout de suite !
Répondre à ce message
Merci beaucoup pour la correction.
Répondre à ce message
Bonjour,
Auparavant, sous Spip 2, un rédacteur (non administrateur) pouvait utiliser odt2spip ; à présent, sous Spip 3, rien ne s’affiche dans la page d’édition d’une rubrique. Seuls les administrateurs voient le bouton permettant de créer un article depuis un fichier odt. Est-ce normal ? Et si oui, est-il possible de rétablir l’ancien fonctionnement ?
Merci.
Oups ! Je n’avais pas essayé cette version avec un compte simple auteur...
C’est donc corrigé : http://zone.spip.org/trac/spip-zone/changeset/74657
Répondre à ce message
Bonsoir,
J’ai un bug depuis la version 2.0.1 d’odt2spip avec spip 3 (en spip 3.0.7 pour être précis).
1) serait-il possible d’avoir une copie de la version 2.0.0 d’ODT2Spip, pour voir si c’est bien la version 2.0.1 ce ce super plugin qui pose problème ?
2) seule le titre de l’article est pris en compte.
3) Le 1er « Titre1 » de l’ODT est bien transformé en titre de l’article, comme avant, mais précédé d’un très gros paquet de code ( il y en a plusieurs dizaines de lignes !) :
exemple avec qu’une partie du code apparu dans la case titre de l’article :
2013-05-12T18:54:04< !—[if gte mso 9]>
< !—StartFragment—>3e Dimanche de Pâques 14 avril 2013 – n°14
Merci d’avance
Bonjour,
Je complète mes observations à propos de ce problème :
Je viens de faire un test avec un Spip 3.0.7 tout neuf, avec ODT2Spip 2.0.1 comme seul plugin spip installé et activé.
Le problème décrit dans mon premier post reste le même.
Donc, pas de bugs liés à une interaction avec un autre plugin Spip.
Merci d’avance
1) pour récupérer un zip de la version 2.0.0 d’odt2spip sans utiliser SVN : http://zone.spip.org/trac/spip-zone/changeset/71740/_plugins_/odt2spip/trunk?old_path=/&format=zip
...mais ça m’étonnerais vraiment beaucoup que les différences entre la 2.0.0 et la 2.0.1 soient responsables de ton problème
2) il faudrait le fichier utilisé pour pouvoir reproduire le problème...
3)
ça c’est typiquement des en-têtes de fichier Word...
on retombe sur le fait que pour corriger ce bogue il faudrait d’abord pouvoir le reproduire : tu aurais un exemple d’article avec son fichier .odt attaché pour pouvoir faire des tests ?
Je viens de tester avec la version 2.0.0 d’odt2spip et, effectivement, cela ne règle pas le problème.
Par contre :
je viens de vérifier ton hypothèse : elle semble la bonne !
Mais elle pose un problème :
pour que ça marche, il faut :
je te le joins, en espérant que cela ne te gêne pas de travailler à partir d’une feuille d’annonce hebdomadaire d’un site de paroisses catho.
Par contre, comme seuls les gif, jpg et png peuvent être joints aux commentaires sur spip-contrib :
Je vais le faire sur mon propre site : http://www.reflexwebstudio.fr/2013-05-12T18-54-04-if-gte-mso-9
Tu vas voir le massacre :
même le titre du document est affecté !
Merci de cette première solution, pas idéale, mais qui fonctionne.
Hervé
Répondre à ce message
Bonjour,
je viens d’installer odt2spip sans problème.
Il fonctionne bien (même avec un fichier Word enregistré en odt) lorsqu’il s’agit d’un paragraphe de texte « classique » disons : x lignes dans 1 ou + paragraphe(s).
Par contre pour une petite liste avec retours à la ligne genre :
lundi
10h r.v.
mardi
9 h rien
mercredi
....
Il fonctionne d’une manière qui semble aléatoire : sur 2 ou 3 enregistrements différents du même passage je n’ai pas les mêmes mots ’modifiés’ qui apparaissent correctement pris en compte et parfois aucune mise en valeur n’est reconnue ....
J’ai désactivé tous les plugins et utilisé spip le plus réduit possible...
Je pige pas... si on peut m’aider... merci d’avance.
Marc.
en clair il ne reproduit pas la surcharge en gras ou en italique dans la liste mais bien dans le paragraphe ...
oublié de préciser :
spip v 3.05
squelette escal v3.70.64
je ne reproduis pas le problème : cf http://transhumance-festival.org/Te... + fichier odt attaché : les formatages des éléments en gras ou italique de la liste sont OK.
Répondre à ce message
Bonjour,
Merci pour ce plugin.
J’ai bien noté que le plugin récupère les images intégrées dans le fichier d’origine à condition qu’elles soient au format jpg ou png ou gif.
Avec un fichier ODT existant, qui contient beaucoup d’images jpeg, plus quelques unes qui ne sont pas au format jpg ou png ou gif, j’ai constaté que l’article généré contient bien les images jpeg avec les bons raccourcis, mais que lorsqu’on prévisualise l’article (où qu’on le publie), SPIP n’affiche pas certaines images jpeg (celles qui sont situées à la fin de l’article).
J’ai noté que le texte de l’article généré contient par exemple plusieurs fois le raccourci :
En enlevant manuellement ces raccourcis, SPIP affiche alors toutes images jpeg.
Aussi, je suggère de modifier le fichier action/odt2spip_importe.php de la manière suivante, afin qu’il ne laisse pas le raccourci d’une image qui n’a pas pu être ajoutée dans SPIP :
Cordialement
Je précise qu’il s’agit de SPIP 2.1 et de la version 0.15.2 du plugin odt2spip.
c’est fait (pour la version 2.0 et la version 1.5) avec une solution un peu plus radicale : élimination des balises img ne correspondant pas à des fichiers au format jpg/gif/png avant leur intégration (cf http://zone.spip.org/trac/spip-zone/changeset/72009)
Bonjour,
Merci pour ces commits. Je viens de tester ces deux nouvelles versions (sous SPIP 2.1 et sous SPIP 3.0) avec le fichier ODT en question (qui contient beaucoup d’images jpeg, plus quelques unes qui ne sont pas au format jpg ou png ou gif) et désormais SPIP affiche bien toutes les images jpeg (y compris celles qui sont situées à la fin de l’article).
Cordialement
Equipement
Répondre à ce message
Reproduction du commentaire que j’ai laissé sous l’article Snippets et concernant odt2spip :
est-ce qu’une mise à jour pour spip 3 est prévue ?
le plugin odt2spip (en version SVN il est vrai) , une fois ajouté au répertoire plugin de spip 3 beta 2 est indiqué comme compatible (du moins, il n’est pas indiqué comme incompatible).
mais quand on veux l’activer, spip affiche le message suivant « Le plugin odt2spip dépend de SNIPPETS [0.1 ;] »
Or Snippets 0.2, même en version SVN est indiqué comme incompatible avec spip 3.
merci d’avance.
Pour l’instant le portage pour SPIP 3 n’est pas opérationnel. C’est prévu mais sans délais annoncés...
Que puis-je faire pour aider au développement du portage pour spip3 de ce formidable plugin ?
Je développe des sites sous SPIP depuis la version 1.5 (voir 1.4) de SPIP.
Mais j’avoue ne pas être sûr d’avoir les connaissances pour travailler à la programmation d’un plugin.
Néanmoins, je suis disponible pour, au minimum, être beta-testeur.
Par contre, si, sûr d’autres points, je peux être utile, je suis partant :
traduction en Anglais, par exemple (je pense avoir le niveau suffisant).
Merci d’avance
J’ai posté un message un peu doublon de ce fil, désolé. Je suis moi aussi tout à fait disposé à aider à son développement.
La version pour SPIP 3 est désormais disponible : tous retours de tests bienvenus...
Bonjour,
Lorsque j’importe, avec odt2spip version 2.0, un fichier ODT dans un site sous SPIP 3.0.7 qui est en iso-8859-1, les caractères accentués posent problèmes. Par exemple, le mot général devient
général
. En revanche, si le site est en utf-8, les caractères accentués ne rencontrent pas de problème.Cordialement
Equipement
En ajoutant, à la fin du fichier inc/odt2spip_generer_sortie.php (juste avant
return $Tarticle;
) le code suivant, cela règle le problème des caractères accentués :cette modification est intégrée (http://zone.spip.org/trac/spip-zone/changeset/72005), mais je n’ai pas de SPIP 3 en ISO-8859-1 : peux tu tester pour confirmer que le commit est OK ?
Merci pour le patch « clé en main » !
Bonjour,
Merci pour ce commit. J’ai importé, avec odt2spip version 2.0 (avec ce commit), un fichier ODT dans un site sous SPIP 3.0.7 qui est en iso-8859-1, et les caractères accentués passent désormais parfaitement.
Cordialement
Equipement
Répondre à ce message
Une version pour SPIP 3 ?
Ce plugin est génial, et ce serait encore plus génial qu’il y ait une version pour SPIP 3 ! Je ne me sens pas très capable de le faire... malheureusement.
Répondre à ce message
Bonjour,
Après un peu de temps, et après avoir poursuivi mon idée, je reviens sur mon message du 19 septembre.
Voilà, je suis allée fouiller dans le code et, comme exercice pratique, j’ai trouvé le moyen de faire générer les balises
<quote> </quote>
pour les passages mis en caractères gras.Mon idée était de faire en sorte que, pour un paragraphe marqué avec un style dont le nom est défini (comme « citation » par exemple), celui-ci soit publié entre les deux
<quote> </quote>
. Lorsque j’essaie, néanmoins, cela me fait sauter tous les paragraphes.Du coup, je me demande si mon idée est réalisable...
Quelqu’un aurait-il tenté de coder cette adaptation ? Par avance, merci pour un éventuel tuyau !
Cordialement,
KMk.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |