Spout_SPIPCSV : export CSV amélioré pour SPIP

This contribution is overloading some essential SPIP’s core files &/or functions: there is no guaranty it will work with any other contribution, overloading the same files/functions. It’s compatibility to furthcoming SPIP versions might also be restrained.

Surcharge de la fonction native d’export CSV de SPIP avec la lib Spout

Objectif

Ce plugin surcharge l’export CSV natif [1] de SPIP (fonctions de ecrire/inc/exporter_csv.php) en le rendant plus robuste et puissant : l’export se fait directement au format XLSX si c’est CSV pour Excel qui est demandé [2].
Le plugin Formidable et sa fonction d’export vers Excel en bénéficie automatiquement [3].

Ce plugin utilise la librairie Spout facilitant l’export de de données aux formats :

  • CSV (universel)
  • XLSX (Microsoft Excel)

Installation

Ce plugin s’installe comme tous les autres plugins.

Usage basique

Il n’y a rien à faire, le plugin remplace automatiquement l’export natif de SPIP.

Usage développeur

Exemple de code utilisant la fonction d’export CSV de SPIP :

Simplification du code de formidable en guise d’exemple :

$exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
$delim=','; // Export au format CSV
$fichier_csv = $exporter_csv('nomdufichier', $array_data, $delim, $array_entetes, true);
$delim='TAB'; // Export au format XLSX
$fichier_csv = $exporter_csv('nomdufichier', $array_data, $delim, $array_entetes, true);

Footnotes

[1Et présent aussi dans SPIP Bonux, lui aussi surchargé par le plugin Spout.

[2L’appel de la fonction exporter_csv avec $delim=“TAB “ou”;” provoque l’export au format Excel, et “,” au format CSV

[3Retours apprécié pour d’autres plugins

À faire : surcharger aussi la fonction d’import CSV native de SPIP (si pertinent).

updated on 3 February 2020

Discussion

2 discussions

  • 4

    Bonsoir,
    Plugin vraiment utile, merci.
    Avec Formidable il faut juste penser que depuis la page
    ecrire/?exec=formidable_tablesorter&id_formulaire=x
    le bouton “exporter” n’est pas lié à Spout et donc permet uniquement l’export en CSV
    au contraire du cadre “Exporter les réponses”
    de la page “/ecrire/?exec=formulaires_reponses&id_formulaire=x”
    qui là donne bien le choix.

    dd

    • oui je n’ai pas encore eu le temps de brancher formidable tablesorter sur spout... pas trop le temps de regarder comment...

    • En fait, il ne s’agit pas de brancher formidable tablesorter sur spout, mais d’utiliser les fonctions natives de SPIP pour l’export CSV qui sont juste surchargées par Spout ;-)

    • oui mais ca revient au même, puisqu’il faudrait brancher formidable_tablesorter sur les fonctions natives de l’export csv. Or l’export csv dans formidable_tablesorter se fait en js (car affichage dynamique du formulaire)...

      donc ....

    • formidabe table_sorter fait plus que de l’export csv : tri, filtre, choix des colonnes. Tout ca en js. Il faudrait renvoyer ces resultats vers php. Il y a un bout de code ici
      https://mottie.github.io/tablesorter/docs/example-widget-output.html#setup_example_php

      a adapter après pour la fonction csv de spip (encore que: plus complexe que cela, car si on a pas le plugin spout, alors il vaudrait mieux utiliser le csv de tablesorter)

    Reply to this message

  • Superbe projet !!... Vivement l’import à partir de fichiers xlsx !

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom