Collection d'Objet en php + gérer ordre de fichiers sur le serveur ? - PHP - Programmation
Marsh Posté le 12-07-2006 à 22:01:49
Si tu veut t'economiser l'effort d'une BDD, tu peut toujours ajouter des numéro au début des noms des fichiers, et donc quand l'utilisateur veut changer l'ordre tu faire des rename.
Après ca dépends de la taille de ton site, pour un gros truc je doute que ce soit la méthode la plus adaptée.
Marsh Posté le 12-07-2006 à 22:17:59
Salut merci pour ta réponse.
Chaques galerie contient environ une 50aine de photos.
Donc si la photo 50 doit etre mis en position 1, il va falloir renommer les 49 fichiers suivants
Et puis rien que l'interface pour gerer ces changements.. je vois pas du tout comment faire:
2 liste de selection? (la photo a deplacer, puis la position)?
ou 50 input text où on peut modifier le nom de la photo a afficher dans cette case...
Pff c'est super chiant cette fonctionnalité..
Le luxe se serait de déplacer une cinquantaine de photos miniatures dans 50 cases avec un jolie glisser-deplacer made in AJAX... (si vous connaissez un script comme ca faites moi signe mais j'ai pas le temps d'apprendre en profondeur l'ajax)
Marsh Posté le 12-07-2006 à 22:18:18
Sinon tu stock le nom de tes photos dans un tableau et tu les trie par ordre croissant ou décroissant. Je ne me souviens plus de la fonction mais elle existe.
Marsh Posté le 12-07-2006 à 22:21:19
Hum sinon je pense a un truc, yaurait pas en PHP un Objet Collection comme en delphi ou C++?
Genre si je veux ajouter un objet a ma collection ca l'ajoute a la fin diirectement ou bien il yaurait une fonction de cette classe Collection qui me demanderait a quel Index je veux l'ajouter (et qui dacalerait automatiquement le reste de la collection)?
Ca doit bien exister mais peut etre pas en Php lol
Marsh Posté le 13-07-2006 à 07:25:49
PHP ne garde pas en mémoire les actions que tu réalise. Une fois la page chargé, il n'y a pas grand chose à faire.
Je te recommande la base de données. C'est un peu chiant à gérer mais c'est bien mieu.
Marsh Posté le 13-07-2006 à 12:26:32
autre solution : un simple fichier texte qui contient les noms de fichier dans l'ordre où ils doivent être affiché.
Marsh Posté le 01-08-2006 à 22:36:53
AlphaZone a écrit : PHP ne garde pas en mémoire les actions que tu réalise. Une fois la page chargé, il n'y a pas grand chose à faire. |
Salut
Oui mais si j'arrive a créer une collection de "photos" ayant comme attribut:
url
numéro d'ordre d'affichage
je dois pouvoir enregistrer chaque objet de cette collection dans un Fichier texte sur le serveur?
Ce serait parfait, mais il faudrait que quelqu'un doué en PHP me donne un coup de main
Marsh Posté le 02-08-2006 à 06:12:53
Pourquoi veux-tu ennregistrer ta collection dans un fichier texte ?
Marsh Posté le 03-08-2006 à 17:22:20
Heu bha n'importe où en fait, en tous cas il faut obligatoirement l'enregistrer, la garder? comment? une variable ?
Si je change de serveur web, il faut que j'ai encore acces à cette collection
Merci de votre aide.
Marsh Posté le 03-08-2006 à 17:38:14
Je vais me répéter mais je pense qu'une base de données sera assez utile
Marsh Posté le 04-08-2006 à 12:42:53
C'est pas possible de les trier pas date de création ? sans utiliser de numero ou de bdd.
Sinon à ta place j'utiliserais une bdd, comme ça tu peux faire évoluer ta galerie, comme ajouter des votes, des commentaires pour chaque image.
Marsh Posté le 04-08-2006 à 17:32:37
Personnellement je viens de faire la même chose et mon script renomme les fichiers (bon il tourne en local donc aucune idées des perfs sur un serveur distant, c'est instantané chez moi) en leur donnant un nom temporaire lors du décalage (du genre 001x.jpg) puis en renommant une fois derrière (pour devenir 001.jpg).
Marsh Posté le 04-08-2006 à 18:42:01
Fichier ou bdd c'est pareil, c'est qu'une question d'époque...
Soit tu parcours un fichier pour découper et replacer le nom de l'image à repositionner dans la liste,
soit tu rentres tout en bdd et alors tu fais un 'UPDATE ordre_affich' pour positionner et un 'SELECT (...) ORDER BY ordre_affich' pour afficher tes images
Ca dépend de la structure que tu veux :
- l'inconvénient "majeur" de la bdd c'est qu'il faut se la trimballer, l'avantage c'est que c'est fait pour ça (entre autre), c'est évolutif tout ça tout ça...
- l'inconvénient "majeur" du fichier c'est qu'il faut faire les opérations à la main, l'avantage c'est que c'est plus léger (100% php quoi)
M'enfin tout ça c'est bien relatif, et je pense que tu te feras moins **ier à utiliser une ptite bdd MailleAisseKuèle, c'est fait pour ça et le jour où tu veux faire grossir ton truc elle te suit sans broncher
Marsh Posté le 08-08-2006 à 19:57:41
Ok merchi a tous, je vais me baser sur le nom des fichiers photo et basta..
En fait, le plus chiant de trouver la bonne interface, et la plus simple pour qu'un utilisateur Lambda puisse changer l'ordre des photo (donc les renommer) à partir d'une page web d'administration.
C'est surtout la que je bloque en ce moment :^p
Merci
Marsh Posté le 09-08-2006 à 22:28:41
Si tu ne veux pas toucher à une BDD, tu peux utiliser la fonction stat (PHP : stat()) qui te permettra de récupérer la date de dernière modif ou de dernier accès à tes fichiers photo.
Après une fois que t'as récupéré ça tu pourrais faire le tri que tu souhaites si j'ai bien compris ta demande.
Marsh Posté le 12-07-2006 à 21:53:25
Salut
J'ai un site qui affiche une galerie de photo.
Mon script, pour l'instant, affiche l'une apresz l'autre les photos contenu dans le repertoire IMAGES selon leur ordre d'arrivé via la méthode opendir et readdir. Donc en gros je crois que les photos sont classées alphanumeriquement.
Jusque la c'est OK, mais la je dois creer une fonction de changement de cet ordre dans l'interface d'administration. En gros la personne qui utilise le site doit pouvoir changer l'ordre des photos.
Comment faire au mieu?
Dois je utiliser une BDD? ( ce qui me poserait pas de probleme)
Dois je modifier à chaque fois les noms des images?
Bref je vois pas trop comment faire.. , si vous avez des idées.
merci
Message édité par bixibu le 01-08-2006 à 22:37:31