[Résolu] drag and drop espace privé

J’ai constaté que si dans un formulaire de la page accueil utilisant saisie, j’avais 2 saisies d’articles ou 1 saisie d’article et une saisie de rubrique … on ne pas faire de drag and drop sur le résultat de la saisie du DEUXIEME ( et des suivants) donc pas de classement possible a postériori sur ces saisies .
Par contre le drag and drop fonctionne sur la saisie placée en premier.
Comment faire pour que cela marche ?

<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
 
/**
 * Un simple formulaire de config,
 *
 **/
 
	
function formulaires_configurer_paramsite_letest_saisies(){
		
		
$saisies = array(

		array(
		'saisie' => 'hidden',
		'options' => array(
			'nom' => '_meta_casier',
			// Les champs seront stockés tels que #CONFIG{paramsite_rubrique$ident}
			'defaut' =>'paramsite_tester',
			'meta_table' =>'paramsite',
			),
		),
	$general_fieldset = array( // ONGLET GENERAL
		'saisie' => 'fieldset',
		'options' => array(
			
			'nom' => 'general',
			'label' => 'général',
			'onglet'=>'oui'
			),
			array(
		
		),
	'saisies' =>  array(	  
		
		array(
			'saisie' => 'selecteur_article',
			'options' => array(
				'nom' => 'art1',
				'multiple' =>'oui',
				'label' => 'article',				
				'id' => 'a1',
				
								
				
				)
			),
	
					
		array(
			'saisie' => 'selecteur_article',
			'options' => array(
				'nom' => 'art2',
				'label' => 'article',
				'multiple' =>'oui',				
				'id' =>'a2',
				
				
				
				)
			),
		
	),
		
		),
	
	
	
	);
	
return $saisies;
	



}

j’ai trouvé une solution

1- « articles » doit comporter le même code que « rubriques » dans prive/formulaires/selecteur c’est à dire en bas …


[(#ENV{sortable,non}|=={oui}|oui)
 <script type='text/javascript'>
     (function(){
	const picked_sorter = () => { 
		new Sortable(document.querySelector("ul.item_picked"));
	};

if (typeof Sortable === "undefined") {
jQuery.getScript
('[(#CHEMIN{prive/javascript/Sortable.min.js}|timestamp)]').done(picked_sorter);
 } else {
		picked_sorter();
	}
})();
</script>
]

2-  il faut rajouter  `sortable=[(#ENV{multiple}|?{oui,non})],`  dans les selecteur_article  de saisie 
ou plutôt dans une copie placée dans le répertoire saisie du plugin 

3-  il faut, pour Sortable.js   passer **un identifiant ou le nom de la saisie** 
pour avoir plusieurs drag and drop différents dans la page,
il faut donc mettre dans "articles" et "rubriques" de prive/formulaires/selecteur

`<ul class='item_picked{{[ (#ENV{name}|?{#ENV{name}})]}}[ (#ENV{select,''}|?{select})]'>`

au lieu de  `<ul class='item_picked [  (#ENV{select,''}|?{select})]'>`

et `new Sortable(document.querySelector("ul.item_picked{{[.(#ENV{name}) ] }}  "));`

au lieu de  `new Sortable(document.querySelector("ul.item_picked"));`

 je n'ai évidemment pas touché les fichiers originaux mais créé un fichier articles dans formulaires/selecteur de mon plugin.


j'espère que c'est assez clair ..

Merci pour le partage, tu pourrais reformater ton message pour que le code soit bien lisible ?

On peut marquer comme résolu ?

oui c’est résolu