Masquer les images aléatoires et ajouts dans une catégorie précise Masquer les images aléatoires et ajouts dans une catégorie précise
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Masquer les images aléatoires et ajouts dans une catégorie précise

Started by kawaman76, March 07, 2007, 07:13:34 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kawaman76

Bonjour à tous.

Nouvel utilisateur de Coppermine,  et surpris par ses possibilités, je salue les développeurs.  ;)

notre gallerie:   http://motopassion76.free.fr

Notre soucis actuellement concerne une Catégorie d'album qui est dédiée aux articles de journaux sur laquelle et uniquement sur celle ci,  nous souhaiterions ne pas afficher les images aléatoires et derniers ajouts.  Ce sont en fait des documents PDF et il n'y a aucun intérêt à afficher visuellement un logo pdf.  :-\

D'avance merci de votre aide.
Gregory pour l'ASG MP76

Pascal YAP

Bonjour,

Je ne connais pas actuellement de solution !
Mais je ne connais pas 100 % de Coppermine non plus  ;)

Sachez cependant, que les représentations des fichiers PDF font appel à la vignette par défaut ! parceque ni la librairie GD ni ImageMagik ne savent extraire l'image du fichier PDF (idem pour MP3, WAV, DOC, ZIP....)
Vous pouvez en créant une vignette aux dimensions de votre Galerie, afficher une vignette personnalisée...
Expl :
Votre document PDF est intitulé => Dragster-1437GSXR.pdf créez une vignette thumb_Dragster-1437GSXR.jpg

PYAP

François Keller

Bonjour,

Sinon, il faudrait regarder le code qui affiche le bloc et mettre une condition excluant l'album ou la catégorie en question. (Mais je n'ai pas regardé si c'était facile ou pas)
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

pbasmo

Bonsoir,

J'ai peut-être trouvé une solution mais cela nécessite de modifier le code.
Je vous livre ici la modif.

La lecture des dernières images chargées (lastup), des images aléatoires (random), des dernières images commentées (lastcom)...etc,etc....est réalisée dans la fonction get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true) du script functions.inc.php
A chaque bloc à afficher (les méta-albums tels que dernières images chargées, derniers commentaires.....) est réservée une lecture de la base par une requête SELECT pour trouver les références des images.
La table qui est lue est cpgxxx_pictures. En consultant les infos contenues dans la table, je me suis aperçu que les fichiers du type pdf, avi, mp3 (3 types de fichiers que j'ai testé) ont, contrairement aux fichiers de type images, les infos de taille largeur (pwidth) et hauteur (pheight) initialisées à 0.
Dans ce cas, la requête SELECT à l'origine de la lecture des images à afficher peut être alors compléter par une condition de ne sélectionner que les enregistrements dont la largeur et/ou la hauteur sont différents de 0.

Est ce que tout le monde suit ?  ??? oui ? alors passons à la pratique...

Dans le cas de Kawaman76, il faut chercher les blocs sur lesquels ils ne désirent pas afficher les vignettes de ce type de fichiers. Ce qui donne pour le bloc des dernières images chargées (lastup) le code suivant :


        case 'lastup': // Last uploads
                if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                        $album_name = $lang_meta_album_names['lastup'].' - '. $CURRENT_CAT_NAME;
                } else {
                        $album_name = $lang_meta_album_names['lastup'];
                }

                $query = "SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' $META_ALBUM_SET";
                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);
                //if($select_columns != '*' ) $select_columns .= ',title, caption, owner_id, owner_name, aid';
                $select_columns = '*'; //allows building any data into any thumbnail caption
                $query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE pwidth<>0 and approved = 'YES' $META_ALBUM_SET ORDER BY pid DESC $limit";
                $result = cpg_db_query($query);
                $rowset = cpg_db_fetch_rowset($result);
                mysql_free_result($result);
                if ($set_caption) build_caption($rowset,array('ctime'));

                $rowset = CPGPluginAPI::filter('thumb_caption_lastup',$rowset);

                return $rowset;
                break;


La modif se trouve dans la 2eme requête SELECT :
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE pwidth<>0 AND approved = 'YES' $META_ALBUM_SET ORDER BY pid DESC $limit";

Si on le désire, il suffit de faire la même chose dans le bloc des images aléatoires , dans la partie du code qui comment par case 'random'.
La aussi c'est la 2eme requête SELECT qu'il faut modifier comme suit :
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE pwidth<>0 AND approved = 'YES' $META_ALBUM_SET ORDER BY RAND() LIMIT $limit2";

Je n'ai pas essayé avec d'autres types de fichiers (word ou texte) mais il y a fort à parier que les champs largeur et hauteur soient aussi fixées à 0.

kawaman76

Ca fonctionne !   Les documents PDF ne sont plus affichés dans les derniers ajouts et images aléatoires. Les documents WORD eux sont encore apparants. 

merci à vous  ;D

pbasmo

Bonjour
J'ai oublié de vous préciser qu'en cas d'installation d'une mise à jour de Coppermine, vous perdrez la modif et par conséquent vous devrez la refaire.

François Keller

pbasmo,

Merci pour cette contribution.
Il y a peut être une possibilité de mettre un filtre sur la requete sur les extentions des fichiers, mais c'est moins évident (je n'ai pas regardé plus loin  ;))
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

pbasmo

Bonsoir Frantz,
Effectivement c'est moins évident car l'extension n'est pas isolée dans un champ de la table, chose qui aurait facilitée la requête SELECT.
Avant de poster j'avais cherché une autre piste justement pour tester l'extension dans la fonction display_thumbnails($album, $cat, $page, $thumbcols, $thumbrows, $display_tabs) du script functions.inc.php (fonction d'affichage des albums et meta-albums). Ce qui se fait déjà d'ailleurs pour connaitre les dimensions de l'image, si le fichier retenu dans le SELECT est une image.
Le 'hic' est qu'à ce niveau :
- le select a déja renvoyé le nom des x fichiers à afficher dans le bloc (4 dans le bloc des derniers chargés)
- cette fonction est un 'pivot' dans l'affichage de tous les albums et meta-albums cela suppose alors de la réorganiser pour tenir compte d'une part du type d'album à afficher (meta-album ou pas) et bien sûr de tester pour certains meta-albums, l'extension des fichiers à ignorer (comme les pdf par exemple).

Donc la solution la plus rapide a été d'ajouter un test dans le SELECT :)


François Keller

QuoteDonc la solution la plus rapide a été d'ajouter un test dans le SELECT Sourire
Tout a fait d'accord  :D
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog