•  » Plugins
  •  » Modif sur le MOD external_random

#1 2006-05-21 10:55:39

roland
Membre
2006-05-21
2

Modif sur le MOD external_random

Bonjour tous!
J'aurais besoin d'un coup de main. Je suis pas du tout calé en php, et j'aurais besoin de votre aide pour faire des modifs sur le mod external_random.
J'utilise le code suivant :

Code:

<?php
/***************************************************************************
 *                              thumb_random.php                              *
 *                            -------------------                          *
 *   application   : PhpWebGallery 1.4 <http://phpwebgallery.net>          *
 *   author        : Pierrick LE GALL <pierrick@z0rglub.com>               *
 *                                                                         *
 *   $Id: random.php,v 1.2 2004/11/06 14:32:03 z0rglub Exp $
 *                                                                         *
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation;                                         *
 *                                                                         *
 ***************************************************************************/
//--------------------------------------------------------------- configuration
define('PHPWG_ROOT_PATH', '../photos/' ); // relative path to your gallery
$counter = 3; // how many picture you want (Must be > 0)
$picture_size = 0; // let to 0 for thumbnails otherwise set it to max height
//-------------------------------------------------------------------- includes
include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
//------------------------------------------------------------- which picture ?
$where = '';
if ( $user['forbidden_categories'] != '' )
{
  $where = 'WHERE category_id NOT IN ('.$user['forbidden_categories'].')';
}
$query = '
SELECT id, path, tn_ext, category_id
  FROM '.IMAGES_TABLE.'
    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
  '.$where.'
  ORDER BY RAND(NOW())
  LIMIT 0, '.$counter.';'; 
$result = mysql_query( $query );
while ($row = mysql_fetch_array($result, MYSQL_BOTH))
{
  //-------------------------- thumbnail URL and direct link to related picture
  // URL of the thumbnail
  $thumb_url = get_thumbnail_src($row['path'], $row['tn_ext']);
  if (substr($thumb_url, 0 , 12) == './galleries/')
  {
    $thumb_url = PHPWG_ROOT_PATH.substr($thumb_url,2);
  }
  // link to the gallery
  $thumb_link = PHPWG_ROOT_PATH.'picture.php?cat='.$row['category_id']
  .'&amp;image_id='.$row['id'];
  if ( $picture_size == 0) {
  //------------------------------ display thumbnail with related picture link
    echo '<a href="'.$thumb_link.'" class="thumblink" target="_blank">
    <img src="'.$thumb_url.'" alt="" class="thumbnail" border="0"/>
    </a>';
  }  else {
  //------------------------------ display original picture in a specific size
    $picture_url = $row['path'];
    if (substr($picture_url, 0 , 12) == './galleries/')
    {    $picture_url = PHPWG_ROOT_PATH.substr($picture_url,2);    };
    echo '<a href="'.$thumb_link.'" class="thumblink">
    <img src="'.$picture_url.'" alt="" class="thumbnail" height="'.$picture_size.'" />
    </a>';
  };
}
?>

Je l'utilise dans une iframe en affichant 3 miniatures.
Ca marche très bien, par contre, pour un souci de cadrage sur mon site externe, j'aimerais limiter l'affichage aux photos en "paysage". En gros je voudrais exclure les photos "portraits" et les autres formats (vidéos, zip...)
Quelqu'un aurait-il une idée?
Merci d'avance ^^

Hors ligne

#2 2006-05-21 11:15:56

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Modif sur le MOD external_random

Il va falloir ajouter dans la clause WHERE quelques critères comme:

Code:

       AND width > 0 
       AND height > 0
       AND width > (height * 1.05)

Donc tu cherches ceci:

Code:

if ( $user['forbidden_categories'] != '' )
{
  $where = 'WHERE category_id NOT IN ('.$user['forbidden_categories'].')';
}

Et tu le remplaces par cela:

Code:

if ( $user['forbidden_categories'] != '' )
{
  $where = 'WHERE category_id NOT IN ('.$user['forbidden_categories'].')
       AND width > 0 
       AND height > 0
       AND width > (height * 1.05)';
}

Il n'y a pas de raison que cela ne marche pas...


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2006-05-23 17:49:20

roland
Membre
2006-05-21
2

Re: Modif sur le MOD external_random

Super! Ca marche nickel!
Fallait effectivement y penser!
Merci beaucoup !!! ^^

Hors ligne

#4 2006-06-06 10:29:59

Dudu
Membre
2006-04-17
10

Re: Modif sur le MOD external_random

Oui, ce script est extra.
Ne serait-il pas possible de l'améliorer encore un peux plus en donnant la possibilité de n'afficher que les vignettes d'une seule catégorie, voire de plusieurs catégories au choix ???


http://zone.wallpaper.free.fr/
Les choses gratuites sont celles qui coûtent le plus. Comment cela ? Elles coûtent l'effort de comprendre qu'elles sont gratuites.

Hors ligne

  •  » Plugins
  •  » Modif sur le MOD external_random

Pied de page des forums

Propulsé par FluxBB

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