atchoumen
Messages postés117Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention17 avril 2008
-
1 août 2007 à 11:45
atchoumen
Messages postés117Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention17 avril 2008
-
1 août 2007 à 19:10
Bonjour,
Je suis en train d'adapter un diaporama, cependant j'aurai besoin d'aide.
Je vais réaliser une partie d'administration pour uploader des images dans le répertoire. Mon probléme et que toutes les images de tous les albums sont melangé dans le meme dossier, donc meme en listant le répertoire il m'est impossible de savoir qu'elle image appartient a un album.
Je souhaiterais donc savoir comme ecrire une ligne contenant le nom de la photo uploadé dans le répertoire à la suite des autres images dans un des deux albums (cf code ci-dessous)
Je voudrai donc par exemple ajouter la ligne
This beast scared us by giving us a really sudden shot. dans l'album toto à la suite des deux autres (c10 etant l'image uploadé)
J'espere que j'ai été assez clair et que quelqu'un aura une solution
Merci
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 1 août 2007 à 12:57
Salut,
Il le faire en plusieurs étapes :
0. Soit :
$liste_album = 'liste_album.xml'; // Le nom du fichier XML en question
$nom_album = 'Toto'; // Le nom de l'album où l'on doit ajouter l'image
1. Ouvrir le fichier XML en le "parsant" dans un objet DOM
$doc = new DomDocument();
$doc->load($liste_album);
2. Trouver l'album dans lequel ajouter l'image
$xpath = new DomXpath( $doc );
$album = $xpath->query("/gallery/albums/album[@title='$nom_album']")->item(0);
if ( ! $album instanceof DomNode ) throw new Exception('Album non trouvé');
3. Créer l'entrée XML pour l'image :
$image = $doc->createElement('image', $text);
$image->setAttribute('image','c10.jpg');
$image->setAttribute('thumbnail','c10.jpg');
// ... etc
4. ajouter l'image :
$album->appendChild($image);
5. Sauver le nouveau XML
$doc->save($liste_album);
!!!! Attention !!!!
Il faut, je pense, utiliser un système de [MUTEX MUTEX] afin que deux chargement d'image ne puisse ecrire dans le fichier en même temps... A toi de trouver une solution élégante à ce petit problème...