Pour la version 1.2.
Si vous voulez afficher une image aléatoire sur votre site provenant de la base d'images de PhpWebGallery, dans un fichier random.php (par exemple) :
Attention : ce script ne tient pas compte des restrictions d'accès à certaines catégories
<?php //-------------------------------------- // s'inspirer du fichier include/mysql.inc.php pour les 5 premiers paramètres $cfgBase='z0rglub_database'; $cfgUser='user'; $cfgPassword='pipo'; $cfgHote='localhost'; $prefixeTable='phpwebgallery_'; $prefixe_thumbnail = 'TN-'; $url_diapo = "http://localhost/demo/"; //-------------------------------------- // variables : // $cat['comment'] // $cat['dir'] // $cat['last_dir'] // $cat['name'] is an array : // - $cat['name'][0] is the lowest cat name // and // - $cat['name'][n] is the most uppercat name findable // $cat['nb_images'] // $cat['id_uppercat'] // $cat['site_id'] function get_cat_info( $id ) { global $prefixeTable; $cat = array(); $cat['name'] = array(); $query = "select nb_images,id_uppercat,comment,site_id,galleries_url,dir "; $query.= "from $prefixeTable"."categories as a, $prefixeTable"."sites as b "; $query.= "where a.id = $id "; $query.= "and a.site_id = b.id;"; $row = mysql_fetch_array( mysql_query( $query ) ); $cat['site_id'] = $row['site_id']; $cat['id_uppercat'] = $row['id_uppercat']; $cat['comment'] = nl2br( $row['comment'] ); $cat['nb_images'] = $row['nb_images']; $cat['last_dir'] = $row['dir']; $galleries_url = $row['galleries_url']; $cat['dir'] = ""; $i = 0; $is_root = false; $row['id_uppercat'] = $id; while ( !$is_root ) { $query = "select name,dir,id_uppercat "; $query.= "from $prefixeTable"."categories "; $query.= "where id = ".$row['id_uppercat'].";"; $row = mysql_fetch_array( mysql_query( $query ) ); $cat['dir'] = $row['dir']."/".$cat['dir']; if ( $row['name'] == "" ) { $cat['name'][$i] = str_replace( "_", " ", $row['dir'] ); } else { $cat['name'][$i] = $row['name']; } if ( $row['id_uppercat'] == "" ) { $is_root = true; } $i++; } $cat['local_dir'] = substr( $cat['dir'], 0 , strlen( $cat['dir'] ) - 1 ); $cat['dir'] = $galleries_url.$cat['dir']; $cat['galleries_url'] = $galleries_url; return $cat; } mysql_connect( $cfgHote, $cfgUser, $cfgPassword ) or die ( "Can't connect to server" ); mysql_select_db( $cfgBase ) or die ( "Can't connect to database" ); $query = "select id,cat_id,tn_ext,file from $prefixeTable"."images order by rand() limit 0,1;"; $result = mysql_query( $query ); $row = mysql_fetch_array( $result ); $resultat = get_cat_info( $row['cat_id'] ); $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") ); if ( $resultat['site_id'] != 1 ) { $url = $resultat['galleries_url']; } else { $url.= "galleries/"; } $lien_thumbnail .= $url.$resultat['local_dir']."/thumbnail/".$prefixe_thumbnail.$file.".".$row['tn_ext']; // trouver le numéro dans la liste des images de la catégorie $query = "select id from $prefixeTable"."images where cat_id = ".$row['cat_id']; $query.= " order by date_available desc, file asc;"; $result = mysql_query( $query ); $i = -1; $is_found = false; while ( ( $row2 = mysql_fetch_array( $result ) ) && !$is_found ) { $i++; if ( $row2['id'] == $row['id'] ) { $is_found = true; } } echo "<a href="".$url_diapo."photo.php?cat=".$row['cat_id']."&num=$i">"; echo "<img src="$lien_thumbnail" alt="" />"; echo "</a>"; ?>
Hors ligne
Parse error: parse error, unexpected '?' in random.php on line 73
la ligne est 73 : ? return $cat;
Hors ligne
en effet ça marche pardon !!!!!!
j'avais un tn_ pas Tn_
désolé !! 8)
Hors ligne
:?: petite question :?:
Où faut-il le mettre ce random.php :?:
il faut le mettre sur le même site que ta galerie (il faut que la page puisse accéder à la même base de données). Mais n'importe où sur le site.
Hors ligne
super script !!!
y aurait vraiment pas moyen de l'utiliser sur un autre serveur.(car j'ai une adresse pour le site meme et une autre pour les screens)
en tout cas bravos :D
y aurait vraiment pas moyen de l'utiliser sur un autre serveur.(car j'ai une adresse pour le site meme et une autre pour les screens)
non, c pas possible, car ce script a besoin d'accéder à la base de données du site principal. Ceci n'est pas faisable à distance car les hébergeurs protègent les accès à la base de données en interdisant toutes les connexions venant de l'extérieur
Hors ligne
y aurait vraiment pas moyen de l'utiliser sur un autre serveur.(car j'ai une adresse pour le site meme et une autre pour les screens)
non, c pas possible, car ce script a besoin d'accéder à la base de données du site principal. Ceci n'est pas faisable à distance car les hébergeurs protègent les accès à la base de données en interdisant toutes les connexions venant de l'extérieur
ok tant pis mais merci qd meme .
Je me demandais si je mettais sur mon site ou ne se trouve pas la galleries un include "http://monsiteavec gallerie/ramdom.php" ca marcherai??
la je peut pas essayer mais si vous avez la raiponse ...
:D
normallement les hébergeurs, pour raisons de sécurité toujours empêchent les include extérieurs.
Hors ligne
pour faire rapide (et sale...) tu prends cette partie
$query = "select id,cat_id,tn_ext,file from $prefixeTable"."images order by rand() limit 0,1;"; $result = mysql_query( $query ); $row = mysql_fetch_array( $result ); $resultat = get_cat_info( $row['cat_id'] ); $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") ); if ( $resultat['site_id'] != 1 ) { $url = $resultat['galleries_url']; } else { $url.= "galleries/"; } $lien_thumbnail .= $url.$resultat['local_dir']."/thumbnail/".$prefixe_thumbnail.$file.".".$row['tn_ext']; // trouver le numéro dans la liste des images de la catégorie $query = "select id from $prefixeTable"."images where cat_id = ".$row['cat_id']; $query.= " order by date_available desc, file asc;"; $result = mysql_query( $query ); $i = -1; $is_found = false; while ( ( $row2 = mysql_fetch_array( $result ) ) && !$is_found ) { $i++; if ( $row2['id'] == $row['id'] ) { $is_found = true; } } echo "<a href="".$url_diapo."photo.php?cat=".$row['cat_id']."&num=$i">"; echo "<img src="$lien_thumbnail" alt="" />"; echo "</a>";
et tu la recopies en plus à la fin.
Hors ligne