Tablesorter pour SPIP

Avec tableSorter, le tri sera top ! [1]

Présentation

Le plugin jQuery « TableSorter » permet de trier les tableaux html en cliquant sur les entêtes des colonnes.

Le plugin SPIP « Tablesorter pour SPIP » permet d’ajouter automatiquement aux
squelettes SPIP les scripts nécessaires pour assurer cette fonction.

Fonctionnement

Le plugin détecte la classe CSS tableseorter attribuée à un élément <table class="spip">. Si le tableau est structuré avec les balises <thead> et <tbody>, il ajoute dans les balises <th> une image représentant le sens du tri, et un lien permettant de trier les données.

Le plugin se compose :
-  du script jQuery Tablesorter minifié [2]
-  de la CSS d’origine minifié (qui peut être modifiée dans /tablesorter/styles/tablesorter.css)
-  du script pour appliquer automatiquement tablesorter à certains tableaux ;

Mise en service

  1. installez le plugin à partir de son emplacement sur la zone
  2. dans vos pages, structurez les tableaux auxquels vous souhaitez ajouter les possibilités de tri en utilisant les balises <thead>,<tbody> et <th>
  3. prenez garde à maintenir la balise #INSERT_HEAD dans la patie <head> de votre page, de manière à ce que le plugin puisse insérer les instructions nécessaires lui-même
  4. ajoutez la class « tablesorter » à la balise <table>

Exemple de squelette (partie tableau) :

<h1>Exemple d'utilisation du plugin "tablesorter pour SPIP"</h1>
<B_a>
<table class="spip tablesorter" style="margin-left: 200px; width:400px">

	<thead>
		
		<tr class="row_first">
			<th>ID</th>
			<th>TITRE</th>
			<th>DATE</th>
		</tr>
	
	</thead>

	<tbody>

<BOUCLE_a(ARTICLES){0,100}>

		<tr[ class="(#COMPTEUR_BOUCLE|alterner{'row_even','row_odd'})"]>
			<td>#ID_ARTICLE</td>
			<td>[(#TITRE|supprimer_numero|couper{30})]</td>
			<td>[(#DATE|affdate)]</td>
		</tr>
</BOUCLE_a>

	</tbody>

</table>
</B_a>

Ce qui donne un tableau de ce style :

Options

Ne pas trier sur une ou plusieurs colonnes précises

Pour ne pas permettre de trier sur une colonne, il suffit d’ajouter la class ts_disabled sur le th de la colonne.

Limitations

Si la balise #PAGINATION est employée dans le squelette, tablesorter ne triera que la partie paginée.

Utilisation comme librairie

Depuis la version 2.0.0, il est également possible de se servir du plugin comme support pour utiliser la librairie tablesorter dans un squelette personnalisé. Il s’agit d’un usage pour dévellopeur et dévellopeuse :
-  le plugin fournit les versions minifiées de la librairie et d’un certain nombre de widgets dans son dossier javascript [3] ;
-  il fournit également le thème par défaut sous css/tablesorter.min.js ;
-  on peut les appeler manuellement et au cas par cas dans ces squelettes via #CHEMIN{javascript/... ou #CHEMIN{css/...} ;
-  il est possible de demander de ne pas insérer automatiquement le js et le css sur les pages publiques et privées (option de configuration dans l’espace privé).

Remerciements...

Merci à b_b pour le débug, à SarkaSmel et BoOz pour les propositions de noms et à xaf pour l’intégration aux tables de la partie privée...

Notes

[1C’est l’explication de ce logo préhistorique !

[2La version 2.1.0 du plugin fournit la librairie dans la version 2.32.1.

[3Ne pas hésiter à demander des ajouts.

Discussion

22 discussions

  • 3

    Merci pour cet article très intéressant. Est-il possible d’utiliser ce script sur des tableaux inclus dans un article à l’aide des raccourcis typographiques usuels ?

    | {{col1}} | {{col2}} |
    | a | b |
    | c | d |
    • Oui tu le peux

      modifie entete.html et inc-css-common.css.html comme sur l’image ci-joint.
      vérifier la localisation des fichiers/images par rapport à ton arborescence .

      La ligne :
      $(document).ready(function()
      $("table").tablesorter(widgets : [’zebra’]) ;
      implique tous les
      « div class="" » « table class="spip" »
      sont interprétés par tablesorter

      ++

    • ci-jointe, PB site commentaire avec des chevrons (greater than, lower than)
      ...

    • ci-jointe, PB site commentaire avec des chevrons (greater than, lower than) ...

    Répondre à ce message

  • Dans cette version du plugin il faut ajouter la class « tablesorter » à la main dans les balises <table> des squelettes. On doit pouvoir faire évoluer le plugin pour qu’il ajoute automatiquement la class « tablesorter » à tous les tableaux possédant déja la class « spip ».

    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