yahou29
Messages postés44Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention24 janvier 2010
-
24 janv. 2009 à 17:23
yahou29
Messages postés44Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention24 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.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 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"
yahou29
Messages postés44Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention24 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
yahou29
Messages postés44Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention24 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);
},
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
// 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')
}
}