Ordre affichage des fichiers

yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2009 à 17:23
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 3 févr. 2009 à 15:30
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

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
25 janv. 2009 à 09:58
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 -
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
2 févr. 2009 à 13:12
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
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 févr. 2009 à 07:41
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 -
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
3 févr. 2009 à 15:30
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')
 }
}
0
Rejoignez-nous