# rang_liens : Ordonner les objets liés en Drag & Drop

## NB

Implémentation pour SPIP de la [librairie sortable](https://github.com/SortableJS/Sortable) pour ordonner les listes d'objets.
L'objectif est de tenter d'offrir une solution générique répondant à la plupart des cas respectant le formalisme syntaxique des listes d'objets (SPIP 4).
Ainsi il remplace le plugin [rang_auteurs](https://git.spip.net/spip-contrib-extensions/rang_auteurs) pour la gestion des liens par tables de liaison (ex.: spip_mots_liens), en complément du plugin [rang](https://git.spip.net/spip-contrib-extensions/rang) qui gère la colonne rang sur la table de l'objet lui-même.


## Markup

```
<div class="liste-objets liste-objets-lies trucs" data-lien="#ENV{objet}/#ENV{id_objet}" data-objet-source="#ENV{objet_source}">

	<div class="sortable[ (#TOTAL_BOUCLE|<{#GRAND_BOUCLE}|ou{#TOTAL_BOUCLE|<{2}})sortable--off]">

		<BOUCLE_liste_trucs(TRUCS){tout}{objet=#ENV{objet}}{id_objet=#ENV{id_objet}}{id_truc IN #GET{selection}}{par rang_lien,multi nom}{where?}{statut?}>

			<div class='item' data-lien="truc/#ID_TRUC" data-rang="#RANG_LIEN">
				<span class="deplacer"></span>
				<div class="titre">#TITRE</div>
			</div>

		</BOUCLE_liste_trucs>

	</div>

</div>


```


## TODO

- lever plus d'eurreur js circonsctanciées si le markup est incomplet
- manipuler les rangs sur les titres (1., 2., ...) dans la fonction js, afin de se dispenser d'un ajaxReload final (??)
- renommer la fonction action du core *ordonner_liens_documents* avec un nom qui correpond mieux à son approche générique.