Skip to content
Extraits de code Groupes Projets
  1. déc. 08, 2023
  2. juin 04, 2023
  3. mai 19, 2022
  4. mai 03, 2022
  5. mars 28, 2022
  6. août 02, 2021
  7. juin 23, 2021
  8. juin 04, 2021
  9. juil. 22, 2019
  10. avr. 01, 2019
  11. jan. 04, 2019
  12. déc. 24, 2018
  13. sept. 06, 2018
  14. juin 12, 2018
  15. oct. 17, 2017
  16. oct. 02, 2017
  17. sept. 21, 2017
  18. sept. 20, 2017
    • marcimat@rezo.net's avatar
      On passe en test. · c2da7fa1
      marcimat@rezo.net a rédigé
      Et corrections d’erreurs PHP lorsque le document contient des images dont la taille n’est pas indiquée (peut être du à la conversion doc > odt et la version de libreoffice utilisée pour le faire).
      c2da7fa1
    • marcimat@rezo.net's avatar
      Sur le serveur, /tmp n’est pas toujours accessible pour l’application... · 415c0df1
      marcimat@rezo.net a rédigé
      Sur le serveur, /tmp n’est pas toujours accessible pour l’application libreoffice, et notre tmp/odt2spip y fonctionne.
      On permet donc simplement de définir _LIBREOFFICE_HOME pour les tests locaux éventuels `define('_LIBREOFFICE_HOME', '/tmp');`
      
      Par précaution, aussi, on nettoie régulièrement le répertoire tmp/odt2spip.
      
      415c0df1
  19. 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
  20. sept. 18, 2017
  21. avr. 14, 2017
  22. avr. 10, 2017
Chargement en cours