Ordre affichage des fichiers

Signaler
Messages postés
44
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 janvier 2010
-
Messages postés
44
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 janvier 2010
-
Bonjour à tous.

Je suis actuellement en train de développer un module d'administration de galerie photos.
J'aimerai que l'administrateur puisse modifier l'ordre d'affichage des photos.
J'ai mis en place un système de drag and drop qui fonctionne mais ne modifie pas l'ordre des fichiers photo dans le dossier et je ne sais pas comment le faire...
Une idée svp ?
L'affichage des photos se fera avec SmoothGallery qui affiche les photos suivant leur ordre dans le dossier.
Merci.

4 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Tu te bases sur l'ordre des photos dans le dossier ? ... pas top. L'idéal serait sans doute de coupler ça à une base de données avec un champs "chemin_image" et "num_ordre"

Kohntark -
Messages postés
44
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 janvier 2010

Merci pour ton conseil que j'ai suivi.
Il me reste une question :
Plutôt que de cliquer sur un bouton pour enregistrer l'ordre des images, j'aimerai que la fonction d'enregistrement se lance à la fin du drag and drop.
Y a t'il un événement qui détecte la fin du drag and drop ?
Merci
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Le mieux serait de voir ton script JS pour cela, et de poster éventuellement sur le forum javascript.
L'utilisation d'ajax pourrait aider aussi.

Kohntark-

Kohntark -
Messages postés
44
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 janvier 2010

J'ai trouvé, il suffit d'ajouter une fonction ajax dans le script. Après chaque déplacement, cela va lancer la fonction et enregistrer l'ordre des fichiers.
Merci pour ton aide

ToolMan._junkdrawer = {
 serializeList : function(list) {
  var items = list.getElementsByTagName("li")
  var array = new Array()  for (var i 0, n items.length; i < n; i++) {
   var item = items[i]


   array.push(ToolMan.junkdrawer()._identifier(item))
  }
  // Fonction d'enregistrement du tri dans la BDD
  var liste_img = array.join('|');
  enregistrer_tri_images(liste_img);
 },


 inspectListOrder : function(id) {
  alert(ToolMan.junkdrawer().serializeList(document.getElementById(id)))
 },


 restoreListOrder : function(listID) {
  var list = document.getElementById(listID)
  if (list == null) return


  var cookie = ToolMan.cookies().get("list-" + listID)
  if (!cookie) return;


  var IDs = cookie.split('|')
  var items = ToolMan.junkdrawer()._itemsByID(list)


  for (var i 0, n IDs.length; i < n; i++) {
   var itemID = IDs[i]
   if (itemID in items) {
    var item = items[itemID]
    list.removeChild(item)
    list.insertBefore(item, null)
   }
  }
 },


 _identifier : function(item) {
  var trim = ToolMan.junkdrawer().trim
  var identifier


  identifier = trim(item.getAttribute("id"))
  if (identifier != null && identifier.length > 0) return identifier;
  
  identifier = trim(item.getAttribute("itemID"))
  if (identifier != null && identifier.length > 0) return identifier;
  
  // FIXME: strip out special chars or make this an MD5 hash or something
  return trim(item.innerHTML)
 },


 _itemsByID : function(list) {
  var array = new Array()
  var items = list.getElementsByTagName('li')
  var items = list.getElementsByTagName('li')  for (var i 0, n items.length; i < n; i++) {
   var item = items[i]
   array[ToolMan.junkdrawer()._identifier(item)] = item
  }
  return array
 },


 trim : function(text) {
  if (text == null) return null
  return text.replace(/^(\s+)?(.*\S)(\s+)?$/, '$2')
 }
}