Skip to content
Extraits de code Groupes Projets
  1. sept. 19, 2017
    • marcimat@rezo.net's avatar
      438e00f5
    • marcimat@rezo.net's avatar
      Fonctionnement basique du serveur de conversion, via odt2spip. · 528ba122
      marcimat@rezo.net a rédigé
      Principe :
      * Sur le serveur de conversion (A) : installer un SPIP, libreoffice et activer odt2spip. Créer des clés d’Api nécessaires en configuration.
      * Sur un autre site SPIP (B), activer odt2spip, renseigner en configuration l’URL du site spip de conversion, et la clé d’API.
      
      Lorsque le site B charge le formulaire document2spip, il regarde s’il peut convertir les documents,
      - soit lui-même (s’il a accès à l’application libreoffice)
      - soit via un serveur, si la configuration est renseignée.
      - s’il peut, il permet de charger des documents odt, doc(x), html, pdf. Sinon… uniquement odt.
      
      Si un document F non .odt est envoyé à l’API : 
      - on le récupère temporairement sur B,
      - on le poste à l’api A
      - on le stocke sur A temporairement
      - on le convertit F' sur A ; on supprime F de A
      - on envoie F' à B ; on supprime F'
      - on récupère sur B le fichier F', on le stocke temporairement.
      - on applique les traitements habituels de odt2spip avec ce fichier.
      
      La seule embrouille possible peut provenir d’un timeout ou d’un gros fichier.
      Les traitements se faisant successivement (ce n’est pas le serveur A qui fait un hit sur un callback de B lorsqu’il a fini son traitement ; B attend simplement patiemment),
      et le fichier reçu de A n’est pas streamé mais stocké dans une variable. 
      C'est surtout ce dernier point qui me semble à améliorer : ie, rediriger le résultat de A directement dans le fichier F' de B en stream.
      
      Pour le reste, ça fonctionne en local. Restera à tester sur un serveur et peaufiner.
      528ba122
    • marcimat@rezo.net's avatar
    • marcimat@rezo.net's avatar
    • marcimat@rezo.net's avatar
      On avance un peu en proposant un formulaire de configuration qui permet de : · c8e200eb
      marcimat@rezo.net a rédigé
      - vérifier si 'libreoffice' (la commande) est présente sur le serveur (ou définie par la constante `_LIBREOFFICE_PATH`)
      - si oui : on pourra convertir des documents doc, docx sur ce site directement.
      - si oui : propose de servir de serveur de conversion en générant des clés d’API acceptées.
      - si non : propose d’indiquer une URL et une clé d’API d’un serveur de conversion.
      
      Si la commande 'libreoffice' est dispo, le formulaire 'document2spip' permet de saisir des fichiers
      .doc, .docx, .html... qui seront convertis par l’application en .odt.
      Note: on ne prend pas en compte encore de serveur distant de conversion à ce point.
      
      Pour l’instant cela fonctionne, en local, sous macOS en déclarant la constante :
      `define('_LIBREOFFICE_PATH', '/Applications/LibreOffice.app/Contents/MacOS/soffice');`
      
      L’application a besoin d’écrire dans un répertoire en s’exécutant.
      J’ai tenté en vain (en local) de pouvoir utiliser notre répertoire temporaire tmp/libreoffice/{id_auteur}/,
      mais les droits ne semblaient pas suffisants. Utiliser `/tmp` fonctionne par contre.
      
      Il faudra voir ce que ça donne sur un serveur.
      
      c8e200eb
    • marcimat@rezo.net's avatar
      On remplace le formulaire odt2spip par un nouveau 'document2spip', · aac51cf4
      marcimat@rezo.net a rédigé
      qui peut prendre en entrée plusieurs types de documents éventuellement
      (ie: si un serveur de conversion est indiqué en configuration (mais il faut le faire))
      
      L’idée (à faire) est de pouvoir passer, à terme, des .docx, de les traduire en .odt, 
      et de les importer ensuite avec odt2spip comme avant.
      aac51cf4
  2. sept. 18, 2017
  3. avr. 14, 2017
  4. avr. 10, 2017
  5. avr. 02, 2017
  6. nov. 09, 2015
  7. nov. 08, 2015
  8. sept. 14, 2014
  9. juin 09, 2014
  10. avr. 14, 2014
  11. mars 22, 2014
  12. août 08, 2013
  13. avr. 13, 2013
  14. avr. 07, 2013
Chargement en cours