[SPIP Zone] [Spip-zone-commit] r25483 - in /_plugins_/_dev_/export_odt: inc/spip2odt_styliser.php plugin.xml spipoasis.html spipoasis_fonctions.php testodt.html

Serait-il possible que ce plugin aille chercher le document OpenOffice
ailleurs que dans le répertoire "plugins" ? (un peu comme le fait le
gestionnaire de plugins ou le plugin fckeditor)

Sinon on risque d'avoir plein de versions différentes de ces fichiers
binaires dans la base de spip-zone -- qui est sous sqlite3 : donc
actuellement on arrive à saturation..

.Gilles
---
2008/12/24 <marcimat@free.fr>:

Author: marcimat@free.fr
Date: Wed Dec 24 16:57:46 2008
New Revision: 25483

Log:
Mis en dev du plugin ODT pour essais avec SPIP 2.0

- correction constante du répertoire du plugin
- correction du fichier testodt.html qui n'était plus à jour visiblement
- cache0 et include sur spipoasis.html sinon le fait de cliquer 2 fois de suite sur l'icone télécharger amenait à une erreur php (fonction inconnue)

3 problèmes identifiés :
- entête de template odt non pris en compte par le parseur SPIP
- un résidu de <text:p > (non fermé) apparait (avec mon template) après l'appel de la fonction spip2odt_reparagrapher(), générant une erreur de lecture XML par OOo.
- les textes sont encadrés de balises "<p>" visibles dans le rendu OOo qui manifestement ne sont pas convertis.

Modified:
_plugins_/_dev_/export_odt/inc/spip2odt_styliser.php
_plugins_/_dev_/export_odt/plugin.xml
_plugins_/_dev_/export_odt/spipoasis.html
_plugins_/_dev_/export_odt/spipoasis_fonctions.php
_plugins_/_dev_/export_odt/testodt.html

Modified: _plugins_/_dev_/export_odt/inc/spip2odt_styliser.php

--- _plugins_/_dev_/export_odt/inc/spip2odt_styliser.php (original)
+++ _plugins_/_dev_/export_odt/inc/spip2odt_styliser.php Wed Dec 24 16:57:46 2008
@@ -13,6 +13,9 @@

// retablir les boucles et autres tags du squelette
function inc_spip2odt_styliser($odf_dir, $contexte){
+ // pas de fond dans le contexte
+ unset($contexte['fond']);
+
// lire le content
lire_fichier($odf_dir."content.xml",$texte);

@@ -32,7 +35,7 @@

   // ecrire le squelette et le fichier fonctions associe
   ecrire\_fichier\(\_DIR\_TMP\.&quot;content\.html&quot;,$texte\);

- lire_fichier(_DIR_PLUGIN_SPIPOASIS."content_fonctions.php",$fonctions);
+ lire_fichier(_DIR_PLUGIN_SPIPODF."content_fonctions.php",$fonctions);
ecrire_fichier(_DIR_TMP."content_fonctions.php",$fonctions);

   // calculer le fond

@@ -67,8 +70,10 @@

   $texte = preg\_replace\(&quot;,&lt;br\(\\s\*/\)?&gt;,ims&quot;,&quot;&lt;p /&gt;&quot;,$texte\);
   // faire un heritage des &lt;p&gt;

+
$texte = spip2odt_heriter_p($texte,$dossier);

+
// on ajoute ici des paragraphe, donc a faire avant reparagraphage
$texte = spip2odt_convertir_tags_blocs($texte);

Modified: _plugins_/_dev_/export_odt/plugin.xml

--- _plugins_/_dev_/export_odt/plugin.xml (original)
+++ _plugins_/_dev_/export_odt/plugin.xml Wed Dec 24 16:57:46 2008
@@ -6,10 +6,10 @@
Cedric
</auteur>
<version>
- 0.1
+ 0.2
</version>
<etat>
- test
+ dev
</etat>
<description>
Export au format Open Document Text

Modified: _plugins_/_dev_/export_odt/spipoasis.html

--- _plugins_/_dev_/export_odt/spipoasis.html (original)
+++ _plugins_/_dev_/export_odt/spipoasis.html Wed Dec 24 16:57:46 2008
@@ -1,3 +1,4 @@
-#SET{res,(#ENV*|spip2odt)}<?php
+#CACHE{0}#SET{res,(#ENV*|spip2odt)}<?php
+include_spip('inc/spipoasis');
spipoasis_envoyer("[(#GET{res}|reset)]","[(#GET{res}|end)]");
?>
\ No newline at end of file

Modified: _plugins_/_dev_/export_odt/spipoasis_fonctions.php

(empty)

Modified: _plugins_/_dev_/export_odt/testodt.html

--- _plugins_/_dev_/export_odt/testodt.html (original)
+++ _plugins_/_dev_/export_odt/testodt.html Wed Dec 24 16:57:46 2008
@@ -1,12 +1,13 @@
#CACHE{0}
<?php
-include_spip('inc/odt_api');
+include_spip('inc/spipoasis');

$template = find_in_path('templates/article.odt');
$unzip = spipoasis_unzip($template);

// styliser
-spip2odt_styliser_contenu($unzip,array('id_article'=>'#ID_ARTICLE'));
+$spip2odt_styliser = charger_fonction('spip2odt_styliser', 'inc');
+$spip2odt_styliser($unzip,array('id_article'=>'#ID_ARTICLE'));
$odt = spipoasis_zip($unzip,_DIR_TMP . 'test.odt');
spipoasis_envoyer($odt);
?>
\ No newline at end of file

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit

Gilles VINCENT a écrit :

Serait-il possible que ce plugin aille chercher le document OpenOffice
ailleurs que dans le répertoire "plugins" ? (un peu comme le fait le
gestionnaire de plugins ou le plugin fckeditor)

Sinon on risque d'avoir plein de versions différentes de ces fichiers
binaires dans la base de spip-zone -- qui est sous sqlite3 : donc
actuellement on arrive à saturation..

Je ne comprends pas Gilles. Il n'y a pas de binaires dans ce plugin, et les templates ODT qu'on souhaite utiliser sont à mettre dans le dossier /templates (plugin ou dossier squelette peu importe). Qu'est-ce qui gène de ce point de vue ?

--
MM.

En fait c'est pour éviter d'avoir beaucoup de contribs comme
programmer.spip.org qui inclue le fichier .odt dans le dépôt svn (un
fichier .odt, c'est bien une archive .zip renommé).
Au passage, je chipote un peu, mais si le fichier .odt qui sert de
template pouvait être chargé à distance, je trouverais ça top.
(Maintenant, je peux le programmer moi-même, si tu le souhaites et que
tu es d'accord avec ce principe)

-- Bon, un fichier .odt, c'est pas si lourd que ça non plus ; on a
déjà des images, des archives, des .pdf, des fichiers .thumb, etc..
dans les fichiers qui sont mémorisés dans la base svn --

.Gilles
---
2009/3/18 Matthieu Marcillaud <marcimat@free.fr>:

Gilles VINCENT a écrit :

Serait-il possible que ce plugin aille chercher le document OpenOffice
ailleurs que dans le répertoire "plugins" ? (un peu comme le fait le
gestionnaire de plugins ou le plugin fckeditor)

Sinon on risque d'avoir plein de versions différentes de ces fichiers
binaires dans la base de spip-zone -- qui est sous sqlite3 : donc
actuellement on arrive à saturation..

Je ne comprends pas Gilles. Il n'y a pas de binaires dans ce plugin, et les
templates ODT qu'on souhaite utiliser sont à mettre dans le dossier
/templates (plugin ou dossier squelette peu importe). Qu'est-ce qui gène de
ce point de vue ?

--
MM.

-- Bon, un fichier .odt, c'est pas si lourd que ça non plus ; on a
déjà des images, des archives, des .pdf, des fichiers .thumb, etc..
dans les fichiers qui sont mémorisés dans la base svn --

Je crois que ce serait pas mal de lancer un projet spip-zone 2 de
toutes façons. Au bout de 4 ans et avec le grand succès du truc, ce
serait pas du luxe

-- Fil

un spip-zone pour les plugins qui fonctionnent sur spip2 ?
Ca peut en effet faire le ménage et purger tout plein d'anciens
commits qui nous ont plombé à forcé la base (je pense à une époque à
laquelle on avait plusieurs plugins FckEditor, avec les sources du
module externe dedans)

.G
---
2009/3/18 Fil <fil@rezo.net>:

-- Bon, un fichier .odt, c'est pas si lourd que ça non plus ; on a
déjà des images, des archives, des .pdf, des fichiers .thumb, etc..
dans les fichiers qui sont mémorisés dans la base svn --

Je crois que ce serait pas mal de lancer un projet spip-zone 2 de
toutes façons. Au bout de 4 ans et avec le grand succès du truc, ce
serait pas du luxe

-- Fil
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone