Zipper des fichiers produits par des squelettes - comments Zipper des fichiers produits par des squelettes 2016-04-13T15:11:23Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment487002 2016-04-13T15:11:23Z <p>Bonjour,</p> <p>Merci pour ce plugin super utile !</p> <p>J'utilise le filtre zippeur_dynamique pour générer un zip qui contient un PDF généré dynamiquement par le plugin <a href="http://contrib.spip.net/spiPDF-generer-des-contenus-sur-mesure-en-PDF" class="spip_out" rel='nofollow external'>SpiPDF</a> et plusieurs fichiers statiques attachés à un auteur.</p> <p>Le code que j'ai fonctionne bien pour un lien, mais je souhaiterais inclure deux liens vers ce fichier zip dans la même page (en haut et en bas de la page).</p> <p><strong>Lorsque je mets deux fois le code ci-dessous dans le même squelette</strong>, j'obtiens l'erreur</p> <p>“<i>Le système a rencontré une erreur lors de l'écriture du fichier local/Nom_fichier_ZIP/Nom_fichier_genere_par_SpiPDF.pdf. Veuillez, en tant qu'administrateur du site, vérifier les droits d'écriture sur le répertoire local/Nom_fichier_ZIP.</i>”.</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><a href="<span class="re4">[</span><span class="re4">(</span><span class="re1">#VAL</span><span class="re40">{Dossier_<span class="re4">[</span><span class="re4">(</span><span class="re1">#GET</span>{num_dossier}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re50">|zippeur_dynamique</span><span class="re40">{'','',<span class="re1">#ARRAY</span>{ 0,<span class="re1">#ARRAY</span>{ 0,spipdf, 1,Dossier_<span class="re1">#GET</span>{num_dossier}.pdf, 2,<span class="re1">#ARRAY</span>{ spipdf,pdf_dossier, id_auteur,<span class="re1">#ENV</span>{id_auteur} } } },<span class="re1">#GET</span>{liste_fichiers},'','48*3600' }</span><span class="re4">)</span><span class="re4">]</span>">Dossier complet</a></code></pre></div> <p>Par contre, si je fais change juste le nom du fichier ZIP pour le second lien, ca fonctionne :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><a href="<span class="re4">[</span><span class="re4">(</span><span class="re1">#VAL</span><span class="re40">{Dossier_<span class="re4">[</span><span class="re4">(</span><span class="re1">#GET</span>{num_dossier}<span class="re4">)</span><span class="re4">]</span>_bis}</span><span class="re50">|zippeur_dynamique</span><span class="re40">{'','',<span class="re1">#ARRAY</span>{ 0,<span class="re1">#ARRAY</span>{ 0,spipdf, 1,Dossier_<span class="re1">#GET</span>{num_dossier}.pdf, 2,<span class="re1">#ARRAY</span>{ spipdf,pdf_dossier, id_auteur,<span class="re1">#ENV</span>{id_auteur} } } },<span class="re1">#GET</span>{liste_fichiers},'','48*3600' }</span><span class="re4">)</span><span class="re4">]</span>">Dossier complet</a></code></pre></div> Zipper des fichiers produits par des squelettes 2012-04-03T12:14:45Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment455975 2012-04-03T12:14:45Z <p>non, il peut être dans un sous dossier, mais dans ce cas il faut le préciser (cf la notion de chemin que j'ai mis dans l'article)</p> <p>ex</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="latex"><code><a href="<span class="sy0">[</span><span class="re2">(#VAL<span class="sy0">{</span><span class="re9">exemple<span class="sy0">}</span>|zippeur_dynamique{'','',#ARRAY{ 0,#ARRAY{ 0,dossier/squelette, 1,squelette1, 2,#ARRAY{ id_article,1} } } </span>})</span><span class="sy0">]</span>">Le zip</a></code></pre></div> Zipper des fichiers produits par des squelettes 2012-04-02T21:05:52Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment455953 2012-04-02T21:05:52Z <p>Merci pour cette réponse.<br class="autobr" /> Juste une précision, j'étais dans le cas d'un squelette zpip. Autant on peut mettre l'appel du code du zappeur dans une page z (dans mon cas contenu/page-zip.html) autant le squelette à interpréter doit être à la racine du dossier squelettes (ou du plugin si c'est un squelette en plugin).<br class="autobr" /> En tout cas ça marche et merci beaucoup.<br class="autobr" /> Amaury</p> Zipper des fichiers produits par des squelettes 2012-04-02T21:05:15Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment455952 2012-04-02T21:05:15Z <p>Merci pour cette réponse.<br class="autobr" /> Juste une précision, j'étais dans le cas d'un squelette zpip. Autant on peut mettre l'appel du code du zappeur dans une page z (dans mon cas contenu/page-zip.html) autant le squelette à interpréter doit être à la racine du dossier squelettes (ou du plugin si c'est un squelette en plugin).<br class="autobr" /> En tout cas ça marche et merci beaucoup.<br class="autobr" /> Amaury</p> Zipper des fichiers produits par des squelettes 2012-04-02T20:40:04Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment455949 2012-04-02T20:40:04Z <p>Vous souhaitez obtenir un fichier appelé squelette1 contenant le titre de l'article, et mettre ce fichier dans un zip.</p> <p>Vous mettez dans le fichier squelette.html :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><BOUCLE_zip(ARTICLES){id_article}> <h2>#TITRE</h2> #TEXTE </BOUCLE_zip></code></pre></div> <p>Ensuite dans un autre squelette, vous mettez :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><a href="[(#VAL{exemple}|zippeur_dynamique{'','',#ARRAY{ 0,#ARRAY{ 0,squelette, 1,squelette1, 2,#ARRAY{ id_article,1} } } })]">Le zip</a></code></pre></div> <p>Ceci va interpeter squelette.html et produire un fichier nommer squelette1 qui sera zipper dans un fichier nommé exemple.zip</p> Zipper des fichiers produits par des squelettes 2012-04-02T20:33:44Z https://files.spip.org/Zipper-des-fichiers-produits-par-des-squelettes#comment455948 2012-04-02T20:33:44Z <p>Bonsoir<br class="autobr" /> Je dois avouer que je ne comprends pas bien.<br class="autobr" /> Imaginons qu'on veuille récupérer le titre et le texte d'un article, on utilisera sans doute quelque chose comme</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><BOUCLE_zip(ARTICLES){id_article}> <h2>#TITRE</h2> #TEXTE </BOUCLE_zip></code></pre></div> <p>Mais où faut-il placer ce code ? dans squelette ou dans squelette1 ? Parce que (mais c'est sûrement par ce que je m'y prend mal quelque part...), que ce soit dans l'un ou dans l'autre, je n'obtiens rien de probant.</p>