enregistrer des fichiers avec SPIP

Salut,

je me demande depuis longtemps si SPIP propose des fonctions pour
enregistrer son "output" dans des fichiers particuliers.

Il crée bien son cache, mais je ne vois aucune documentation à propos de
cela.

Actuellement je cherche une possibilité d'enregistrer les PDF produits
par "Article PDF" (https://contrib.spip.net/Article-PDF,2226) et spiPDF
(https://contrib.spip.net/spiPDF-generer-des-contenus-sur-mesure-en-PDF)
afin de les intégrer dans des archives zippées.

Une version ancienne d'Article PDF enregistrait les PDFs d'articles dans
le repertoire IMG/article_PDF où on pouvait les récupérer.

Une idée ?

Merci :-)k++

Le 06/06/2019 à 08:18, klaus++ a écrit :

Une version ancienne d'Article PDF enregistrait les PDFs d'articles dans
  le repertoire IMG/article_PDF où on pouvait les récupérer.
Une idée ?

Il ne le fait plus ?

Dans le plugin, le PDF est produit par la méthode Output de la librairie fpdf
Selon que le premier argument est I ou F, le PDF est affiché dans le browser
ou sauvegardé sur le disque, or dans le source, c'est F qui est employé,
dans la méthode Build du plugin, et donc ça continue à créer un fichier quelque part.

Je vois aussi dans le pipeline article_pdf_build_pdf($flux)
qu'il y a un paramétrage de config article_pdf/pdf_to_document
pour automatiquement créer et associer un document SPIP
et, a priori, ensuite accéder classiqment au fichier.

JL

Salut JLuc,

dans notre site de production on a remplacé le plugin ArticlePDF contre
spiPDF qui n'enregistre pas son output sur disque dur comme ArticlePDF
avant de l'envoyer au serveur web qui le livre au client.

Merci pour ton indication, je m'intéresserai alors au paramètres des
librairies qui ne sont pas mentionnés dans la doc des plugins SPIP.

Il faudrait toutefois répondre à la question des fonctions SPIP qui
servent à sauvegarder des données sur disque. Elle n'est pas abordée sur
programmer.spip.net alors qu'il serait pratique de disposer une série de
fonctions sécurisées pour enregistrer des données.

J'ai trouvé par grep -R 'ecrire_fichier' ./ :

./ecrire/inc/session.php:function ecrire_fichier_session($fichier,
$auteur) {

./ecrire/inc/plugin.php:function ecrire_fichier_php($nom, $contenu,
$comment = '') {

./ecrire/inc/flock.php:function ecrire_fichier($fichier, $contenu,
$ignorer_echec = false, $truncate = true) {

./ecrire/inc/flock.php:function ecrire_fichier_securise($fichier,
$contenu, $ecrire_quand_meme = false, $truncate = true) {

Ces fonctions ne sont pas documentées sur programmer.spip.net , alors je
vous ferai signe si j'arrive à des conclusion qui vaillent la peine
d'une description détaillée.

:-)k++

On 06.06.19 12:07, JLuc wrote:

Le 06/06/2019 à 08:18, klaus++ a écrit :

Une version ancienne d'Article PDF enregistrait les PDFs d'articles dans
le repertoire IMG/article_PDF où on pouvait les récupérer.
Une idée ?

Il ne le fait plus ?

Dans le plugin, le PDF est produit par la méthode Output de la librairie
fpdf
Selon que le premier argument est I ou F, le PDF est affiché dans le
browser
ou sauvegardé sur le disque, or dans le source, c'est F qui est employé,
dans la méthode Build du plugin, et donc ça continue à créer un fichier
quelque part.

Je vois aussi dans le pipeline article_pdf_build_pdf($flux)
qu'il y a un paramétrage de config article_pdf/pdf_to_document
pour automatiquement créer et associer un document SPIP
et, a priori, ensuite accéder classiqment au fichier.

JL

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Le 07/06/2019 à 09:55, Klaus Meier a écrit :

dans notre site de production on a remplacé le plugin ArticlePDF contre
spiPDF qui n'enregistre pas son output sur disque dur comme ArticlePDF
avant de l'envoyer au serveur web qui le livre au client.

> Merci pour ton indication, je m'intéresserai alors au paramètres des
> librairies qui ne sont pas mentionnés dans la doc des plugins SPIP.

Apparemment Spipdf peut utiliser différentes librairies
non pas fpdf comme article_pdf mais mpdf, dompdf ou html2pdf

La fonction spipdf_html2pdf peut aussi envoyer vers un fichier
selon ses arguments, avec le commentaire suivant :
// $file : Nom du fichier vers lequel enregistrer (uniquement fonctionnel avec mpdf pour l'instant)

Il faut donc mpdf et transmettre un nom de fichier à la fonction...

Il faudrait toutefois répondre à la question des fonctions SPIP qui
servent à sauvegarder des données sur disque. Elle n'est pas abordée sur
programmer.spip.net alors qu'il serait pratique de disposer une série de
fonctions sécurisées pour enregistrer des données.

À ce propos, le code de article_pdf que je citais est peut être intéressant
puisqu'il reste dans un relatif haut niveau de fonctions :

>> dans le pipeline article_pdf_build_pdf($flux)
>> qu'il y a un paramétrage de config article_pdf/pdf_to_document
>> pour automatiquement créer et associer un document SPIP
>> et, a priori, ensuite accéder classiqment au fichier.

JL

J'ai trouvé par grep -R 'ecrire_fichier' ./ :

./ecrire/inc/session.php:function ecrire_fichier_session($fichier,
$auteur) {

./ecrire/inc/plugin.php:function ecrire_fichier_php($nom, $contenu,
$comment = '') {

./ecrire/inc/flock.php:function ecrire_fichier($fichier, $contenu,
$ignorer_echec = false, $truncate = true) {

./ecrire/inc/flock.php:function ecrire_fichier_securise($fichier,
$contenu, $ecrire_quand_meme = false, $truncate = true) {

Ces fonctions ne sont pas documentées sur programmer.spip.net , alors je
vous ferai signe si j'arrive à des conclusion qui vaillent la peine
d'une description détaillée.

:-)k++

On 06.06.19 12:07, JLuc wrote:

Le 06/06/2019 à 08:18, klaus++ a écrit :

Une version ancienne d'Article PDF enregistrait les PDFs d'articles dans
le repertoire IMG/article_PDF où on pouvait les récupérer.
Une idée ?

Il ne le fait plus ?

Dans le plugin, le PDF est produit par la méthode Output de la librairie
fpdf
Selon que le premier argument est I ou F, le PDF est affiché dans le
browser
ou sauvegardé sur le disque, or dans le source, c'est F qui est employé,
dans la méthode Build du plugin, et donc ça continue à créer un fichier
quelque part.

Je vois aussi dans le pipeline article_pdf_build_pdf($flux)
qu'il y a un paramétrage de config article_pdf/pdf_to_document
pour automatiquement créer et associer un document SPIP
et, a priori, ensuite accéder classiqment au fichier.

JL

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc