Annonce

  •  » Utilisation
  •  » image aléatoire de la base d'image de PhpWebGallery

#1 2002-11-11 15:38:32

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

image aléatoire de la base d'image de PhpWebGallery

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

Code:

<?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>"; 
?>

Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#2 2002-11-11 16:17:06

Dj Ultimate
Membre
2002-11-11
4

Re: image aléatoire de la base d'image de PhpWebGallery

Parse error: parse error, unexpected '?' in random.php on line 73


la ligne est 73  :  ?  return $cat;

Hors ligne

#3 2002-11-11 19:58:06

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

Re: image aléatoire de la base d'image de PhpWebGallery

t'as modifié un truc là parce que moi j'ai pas d'erreur avec ce script


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#4 2002-11-11 20:19:50

Dj Ultimate
Membre
2002-11-11
4

Re: image aléatoire de la base d'image de PhpWebGallery

en effet ça marche pardon !!!!!!
j'avais un tn_ pas Tn_
désolé !! 8)

Hors ligne

#5 2002-11-28 10:59:59

corsamy
Membre
France
2002-11-28
12

Re: image aléatoire de la base d'image de PhpWebGallery

:?: petite question :?: 
Où faut-il le mettre ce random.php  :?:

Hors ligne

#6 2002-11-28 22:12:04

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

Re: image aléatoire de la base d'image de PhpWebGallery

:?: 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.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#7 2002-11-29 09:54:29

corsamy
Membre
France
2002-11-28
12

Re: image aléatoire de la base d'image de PhpWebGallery

Supermégatiptopnickel  :lol: 
J'y crois pas mes  8O 
Merci z0rglub

Hors ligne

#8 2002-12-14 17:48:28

coockie_jr
Invité

Re: image aléatoire de la base d'image de PhpWebGallery

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

#9 2002-12-15 12:47:09

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

Re: image aléatoire de la base d'image de PhpWebGallery

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


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#10 2002-12-15 15:25:20

Banni

Re: image aléatoire de la base d'image de PhpWebGallery

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

#11 2002-12-15 15:38:44

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

Re: image aléatoire de la base d'image de PhpWebGallery

normallement les hébergeurs, pour raisons de sécurité toujours empêchent les include extérieurs.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#12 2002-12-15 15:43:57

Banni

Re: image aléatoire de la base d'image de PhpWebGallery

ok
c normal 

tant pis

#13 2002-12-17 15:55:23

TNorth
Membre
2002-11-12
30

Re: image aléatoire de la base d'image de PhpWebGallery

Et on peut trafiquer comment le code pour que ça mette 2 images aléatoires (sur la même ligne)  :rolleyes:

Hors ligne

#14 2002-12-17 18:25:38

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12657

Re: image aléatoire de la base d'image de PhpWebGallery

pour faire rapide (et sale...) tu prends cette partie

Code:

$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.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#15 2002-12-18 16:53:33

TNorth
Membre
2002-11-12
30

Re: image aléatoire de la base d'image de PhpWebGallery

Ok je vais essayer merci  :D

Hors ligne

  •  » Utilisation
  •  » image aléatoire de la base d'image de PhpWebGallery

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact