Formidable Tablesorter — afficher, trier et filtrer vos réponses

Le plugin Formidable Tablesorter, s’appuyant sur la librairie JS éponyme, permet d’afficher les réponses à un formulaire Formidable sous la forme d’un tableau, triable, filtrable, imprimable et exportable.

La présente documentation est valable à partir de la version 2.0 du plugin.

Installation

Le plugin nécessite, outre Formidable, le plugin Tablesorter dans sa version 2.0 ou supérieure.

Par défaut, le plugin Tablesorter intègre la librairie Tablesorter sur toutes les pages publiques et privées du site. Si l’usage est uniquement pour Formidable Tablesorter, il est recommandé de désactiver, via la configuration du plugin, cette insertion.

Accès au tableau

Une fois le plugin installé, un lien apparaît dans l’espace privé à gauche de la liste des réponses d’un formulaire, ainsi qu’à côté de la page du formulaire.

Lien vers le tableau de réponse

En suivant l’un de ces liens, nous accédons au tableau à double entrée.

Par défaut, celui-ci affiche :

  • tout d’abord, les onglets permettant de filtrer les réponses selon le statut ;
  • puis des boutons d’action et une aide contextuel
  • de haut en bas : toutes les réponses du statut sélectionné
  • de gauche à droite :
    • l’identifiant et la date de chaque réponse
    • les champs extras éventuels associés à la réponse
    • les champs de la réponse

Il sera possible par la suite de masquer des colonnes et des lignes.

Le nombre de lignes est limité à 100 par pages, mais une pagination est proposée au delà.

Exemple de tableau

Tri du tableau

Les entêtes de colonnes permettent de trier le tableau selon la valeur d’une colonne.

Attention : le tri se fait côté serveur, il faut donc parfois patienter un peu

Masquage et déplacement de colonnes / de champs

Selon le besoin, il est possible de masquer certaines colonnes. En cliquant sur le bouton « choix des colonnes », la liste des colonnes apparaît. Il suffit de décocher les colonnes que l’on veut masquer.

Il est possible de déplacer des colonnes, en cliquant sur sur les flèches en haut des colonnes.
Attention, le réordonnancement se fait côté serveur, et peut donc prendre du temps.

Formulaire de masquage de colonne

Filtrage des lignes / des réponses

Il est possible de filtrer les réponses selon la valeur des champs. En dessous de chaque entête de colonne se trouve un champ de saisie. Il suffit d’y mettre la valeur que l’on veut conserver, puis de faire un retour ligne : seules les lignes contenant la valeur saisie s’afficheront désormais.

Le filtrage est souple :

  • pour des champs de type numérique, il est possible d’utiliser les opérateurs de comparaison. Mettre <10 pour afficher uniquement les réponses donnant une valeur inférieure à 10.
  • pour des champs de type texte, ne seront affichés que les réponses contenant la valeur saisie, mais il n’est pas nécessaire que la valeur du champ soit strictement identique à cette valeur. Ainsi, écrire « janvier » permettra d’afficher les réponses ayant « janvier 2019 » comme « janvier 2020 ».
  • pour en savoir plus, sachez que le plugin utilise la syntaxe des tests des affichages conditionnel du plugin Saisies, en omettant simplement le @@ initial.

Attention : le filtrage se fait côté serveur, il faut donc parfois patienter un peu

Sauvegarde des réglages

Les paramètres de filtres, de masquages, de tri de colonne, etc., sont conservés localement par le navigateur. Ils seront donc repris à la prochaine consultation depuis le même navigateur. Le navigateur doit supporter le système WebStorage.

Impression

Un bouton d’impression permet d’imprimer le tableau filtré, sans les colonnes et les lignes masquées.

Export

Des boutons permettent d’exporter le tableau filtré, sans les colonnes et les lignes masquées, dans des formats lisibles par les principaux tableurs du marché.

Réinitialisation

Deux boutons permettent de réinitialiser :

  1. Uniquement les filtres
  2. L’ensemble des réglages

Affichage côté public

Il est possible d’afficher le tableur côté public, en insérant dans un article le modèle <formidable_ts|id_formulaire=xxx>, où xxx est le numéro du formulaire.

Par mesure de sécurité, seul les personnes ayant le droit côté privé de voir les réponses peuvent voir les réponses.
Si vous voulez rendre cela public, il vous faudra surcharger vos autorisations. Pour rendre accessible l’ensemble des réponses de l’ensemble des formulaires, mettez dans votre fichiers mes_options.php le code suivant :

$GLOBALS['spip_pipeline']['autoriser'] .= "|mes_autorisations";

function mes_autorisations(){
	function autoriser_formulairesreponse_voir($faire, $type, $id, $qui, $opt) {
		return true;
	}
}

Il vous faudra également inclure les feuille de style CSS fournit par le plugin, mais qui ne sont présente que côté privée par défaut :

  • css/tablesorter.min.css ;
  • css/formidable_ts.css ;
  • css/formidable_ts_prive_bloc_entete.css

Principaux changements entre la version 1.x et la version 2.x

  • Ajout d’une pagination
  • Aide contextuelle
  • Ajout de la possibilité d’éditer les champs avec les crayons
  • Amélioration du déplacement des colonnes
  • Différentes améliorations des styles CSS
  • Séparation des réponses en onglet, selon les statuts
  • Amélioration du tri sur les champs de date et sur les champs évènements
  • Possibilité d’insérer le tableau côté public via un modèle
  • Aspects techniques :
    • Uniformisation du code, pour utiliser tout le temps formidable_ts et non pas formidable_tablesorter
    • Utilisation de la librairie SPOUT pour les exports en tableaux ;
    • Gestion asynchrone des filtres, tri et ordonanncement des colonnes : tout se fait côté PHP, qui renvoie un fichier JSON

Discussion

Une discussion

  • 1

    Bonjour et merci pour cet excellent plugin...

    J’ai un soucis pour exporter l’ensemble du tableau en excel... Il n’exporte que les 100 ligne affichées...

    J’ai lu plus haut : Le nombre de lignes est limité à 100 par pages, mais une pagination est proposée au delà.

    Est-il possible d’y remédier ?

    Merci

    • Ok, j’ai trouvé l’occurrence à modifier dans le fichier du plugin /formidable_ts/v3.1.0/javascript/formidable_ts.js

      ligne 62 : pager_size : 100,//Nombre de lignes par page → Il suffit de modifier la pagination selon vos besoins. Ce serait bien d’inclure cette fonction dans un fichier de configuration ;-)

      Bonne journée

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom