Vous n'êtes pas connecté.
Pages: 1
Titre : GetRandomImage
Version : v0.1
Pour 2BGal : 3.0
Date : 07 aout 2006
Auteur : Razvan
Description : Affichage aléatoire d'une image d'un album (d'un album fils pour les albums pères) si on ne choisit pas de photo d'introduction.
Attention, ne pas utiliser cet add-on si vous voullez garder des albums sans photo d'introduction.
Fichiers modifiés : index.php, album.php
Fichiers ajoutés : lib/foncGetRandomImage.inc.php
Licence : GPL
-------------------------
Fichier index.php
après la ligne 22
22: require($lang_filename);
ajouter:
//ADD-ON GetRandomImage
require("lib/foncGetRandomImage.inc.php");
//ADD-ON GetRandomImageaprès la ligne 97
97: $descr_browsealbum=nl2br($descr_browsealbum);
ajouter:
//ADD-ON GetRandomImage
$image_browsealbum = getRandomImage($image_browsealbum,$gere_browsealbum,$id_browsealbum,$tbl_alist,$tbl_ilist);
//ADD-ON END GetRandomImage-------------------------
Fichier album.php
après la ligne 22
22: require($lang_filename);
ajouter:
//ADD-ON GetRandomImage
require("lib/foncGetRandomImage.inc.php");
//ADD-ON GetRandomImageaprès la ligne 141
141: $descr_browsealbum=nl2br($descr_browsealbum);
ajouter:
//ADD-ON GetRandomImage
$image_browsealbum = getRandomImage($image_browsealbum,$gere_browsealbum,$id_browsealbum,$tbl_alist,$tbl_ilist);
//ADD-ON END GetRandomImage------------------------
Création du fichier foncGetRandomImage.inc.php dans le répertoire lib/
Dans le fichier lib/foncGetRandomImage.inc.php
ajouter:
<?php
//ADD-ON GetRandomImage
function getFils($idPere,$tAlbumList) {
$arrFils = array();
//-- récupération des fils du rép
$chaine = "SELECT id, gere FROM ".$tAlbumList." WHERE idpere=".$idPere;
$request = MYSQL_QUERY($chaine);
$nb_fils = MYSQL_NUMROWS($request);
if ($nb_fils > 0) {
for($li=0;$li<$nb_fils;$li++) {
$id_fils = mysql_result($request,$li,"id");
$type_fils = mysql_result($request,$li,"gere");
if ($type_fils == "pere") {
$arrFils = $arrFils + getFils($id_fils,$tAlbumList);
} else {
if ($id_fils > 0) {
$arrFils[] = $id_fils;
}
}
}
}
return $arrFils;
} //end getFils
//ADD-ON END GetRandomImage
function getRandomImage($image_album,$gere_album,$id_album,$tAlbumList,$tImgList) {
//-- si on n'a pas d'image define on prends une au hasard
if ($image_album == "../mini_default.jpg") {
$arr_fils = array();
//-- si c'est album pere on prend au hasard un de ses fils
if ($gere_album == "pere") {
//-- on cherche les fils
$arr_fils = getFils($id_album,$tAlbumList);
$nb_fils = count($arr_fils);
if ($nb_fils > 0) {
$rand_fils = rand(0,$nb_fils-1);
$fils_id = $arr_fils[$rand_fils];
}
} else {
$fils_id = $id_album;
}
//-- recuperer une photo aleatoire du repertoire choisi
$chaine = "SELECT i.url, a.folder FROM ".$tImgList." i, ".$tAlbumList." a WHERE a.id=i.album and i.album=".$fils_id;
$request = MYSQL_QUERY($chaine);
$nb_img = MYSQL_NUMROWS($request);
if ($nb_img > 0) {
$rand_img = rand(0,$nb_img-1);
$image_name = mysql_result($request,$rand_img,"url");
$folder_nom = mysql_result($request,$rand_img,"folder");
$image_album = $folder_nom."/mini_".$image_name;
}
}
return $image_album;
} //end getRandomImage
?>J'espère que ca servira à d'autres.
Hors ligne
Superbe, mais comment est-ce que je doit faire pour supprimer les photos d'intro déja créées ?
Par avance merci
D@niel
Hors ligne
Afin d'avoir toujours une image aléatoire meme si j'ai déja choisi une image, j'ai remplacé :
//ADD-ON GetRandomImage
$image_browsealbum = getRandomImage($image_browsealbum, $gere_browsealbum, $id_browsealbum, $tbl_alist,$tbl_ilist);
//ADD-ON END GetRandomImage
par
//ADD-ON GetRandomImage
$image_browsealbum = "../mini_default.jpg";
$image_browsealbum = getRandomImage($image_browsealbum, $gere_browsealbum, $id_browsealbum, $tbl_alist,$tbl_ilist);
//ADD-ON END GetRandomImage
D@niel
Hors ligne
danielbabault a écrit:
Superbe, mais comment est-ce que je doit faire pour supprimer les photos d'intro déja créées ?
Le temps de te donner la solution t'as trouvé une esquive... ![]()
Sinon il faut editer les alubms (
) et sous la photo cliquer sur "dèsactiver l'image d'intro". Ca peut être long si tu l'as définie sur plein d'albums...
sinon plus rapide attaque direct en base ![]()
UPDATE <table_albumlist> SET image = '../mini_default.jpg'
comme ca, ca met dans tous les albums l'image par défault.
Dernière modification par Razvan (13-08-2006 12:22:20)
Hors ligne
Merci pour cet add-on ca marche nickel sur la 3.0
Edithe : et tout autant sur la 3.1 ![]()
Dernière modification par amon (14-01-2007 22:31:03)
Hors ligne
Simple a installer, et ca fonctionne super bien
Merci pour ce bout de code qui donne tout de suite de l'interactivité au site
Hors ligne
oulalala , merci , ca marche super bien et c'est pas compliqué a mettre en oeuvre
Merci à Vous
Hors ligne
Je fais remonter ce topic car, vu l'ampleur que prend
mon album photo, je suis obligé de créer des sous-sous-dossier.
le fait que les images d'intro changent automatiquement à
chaque rechargement de page est tout simplement génial.
Le problème est que lorsque que l'on a un dossier avec des
albums dedans, ca marche, mais si l'on cré des albums dans un
album pere qui est déja dans un album pere, cela ne marche plus.
La question est donc, y aurait il un morceau de code à rajouter
pour que cela remonte une image automatique au sous album
et que ce sous album ou ces sous album puissent remonter une
photo à l'album père de la racine.
j'espère m'être fait comprendre :-)
Merci à tous pour le boulot de codage que vous faites
pour faire avancer ce script qui est super.
186 album(s), 17221 photos, 43 vidéos dans la galerie,
c'est ce que contient l'album du site cbf600.free.fr
que vous pouvez découvrir à cette adresse :
http://album.cbf.600.fr/
Dernière modification par mars (13-09-2009 00:46:54)
Hors ligne
Petit UP !
merci aux bonnes ames.
si toutefois vous aviez une soluce.
Hors ligne
Top... Merci !
Hors ligne
Pages: 1