Duplication des vignettes à chaque commentaire Duplication des vignettes à chaque commentaire
 

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

Duplication des vignettes à chaque commentaire

Started by JPL, December 25, 2007, 07:56:14 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

JPL

Bonsoir,

Je débute avec Coppermine.J'ai bien compris qu'il fallait ingurgiter la doc et parcourir le maximum d'infos sur le forum ( normal, sinon...) mais je n'ai pas réussi à trouver la réponse à  mon problème.
Pour une photo donnée, je me retrouve avec autant de vignettes de cette photo que de commentaires effectués sur celle-ci  et ce, seulement dans la fenêtre d'affichage "derniers commentaires. Après différents tests, cela semble normal.

Peut-on éviter ces répétitions ?

François Keller

QuoteAprès différents tests, cela semble normal.
oui c'est normal, la fenêtre affiche les commentaire et la vignette associée
QuotePeut-on éviter ces répétitions ?
ça dépends de ce que vous voulez faire, mai il vous faudra modifier le code
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

Pascal YAP

Bonjour,

Selon toutes logiques, afficher une unique Vignette pour tous les Commentaires, risque d'engendrer une page verticale totalement inesthétique. Imaginez une seconde : trente Commentaires sous une seule Vignette, et vous n'avez que ça à l'écran ! Soit une seule colonne  ??? C'est pas terrible.
Mais tout dépends aussi du nombre de caractères que vous autorisez dans vos Commentaires d'image ;D

PYAP

JPL

En fait, je souhaite que lorsqu'un nouveau commentaire de rang (c) est déposé sur une image donnée (Y), dans la fenêtre « dernier commentaire » apparaissent  sous la vignette (y ) associée au commentaire de rang  (c):

-  Le nombre cumulé (c)des commentaires
-  le login de l'auteur du dernier commentaire
-  Le début du dernier commentaire (c) seulement (nombre de caractères à définir).

Que la vignette (y-1) associée au commentaire (c-1) disparaisse, ( en fait cette effacement ne peut s'opérer qu'à partir du deuxième commentaire sur une image donnée).

J'espère que ce n'est pas trop confus.

Merci à l'avance

François Keller

il va vous falloir coder ça  :D, ou trouver quelqu'un qui le fasse pour vous (mais ça c'est pas gagné  ;))
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

JPL

Bonjour,

Je ne suis pas un expert mais avec quelques indications concernant les fichiers dans lesquels il me faudrait modifier le code, je veux bien essayer.
J'ai déjà pas mal bidouillé en procédant par essais et erreurs. Le pire, c'est qu'après avoir découvert ce forum, j'ai trouvé certains plugin qui pouvaient m'éviter pas mal de travail.
Mais là, je crois qu'il va me falloir tricoter du sur mesure avec mes petits doigts.... 8).

Merci encore.

easyjava


Pascal YAP

Formidable génial, Easyjava va nous faire une traduction en Français.

JPL


Merci Easyjava.

Je vais regarder cela de près et surtout essayer d'y comprendre quelque chose.

easyjava

fichier functions.inc.php ligne 983 ajouter :

// Mod start: group comments on the same pic
/*
$query = "SELECT COUNT(*) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE approved = 'YES' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid $TMP_SET $keyword)";
                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);

                $select_columns = '*'; //allows building any data into any thumbnail caption
                if($select_columns == '*'){
                  $select_columns = 'p.*, msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
                } else {
                  $select_columns = str_replace('pid', 'c.pid', $select_columns).', msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
                }

                $TMP_SET = str_replace($CONFIG['TABLE_PICTURES'],'p',$TMP_SET);
                $query = "SELECT $select_columns FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid $TMP_SET $keyword) ORDER by msg_id DESC $limit";
                $result = cpg_db_query($query);
*/

                $QUERY_META_ALBUM_SET = str_replace( $CONFIG['TABLE_PICTURES'], "p" , $TMP_SET );

$query = "SELECT COUNT(DISTINCT(c.pid)) FROM `cpg148_comments` AS c, `cpg148_pictures` AS p
WHERE p.approved = 'YES' AND c.pid = p.pid $QUERY_META_ALBUM_SET $keyword);";

                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);


                $query = "SELECT p.*, c1.msg_id, c1.author_id, c1.msg_author, c2.msg_date, c1.msg_body, c1.pid
FROM {$CONFIG['TABLE_PICTURES']} as p,
  {$CONFIG['TABLE_COMMENTS']} as c1,
  (SELECT pid, MAX(UNIX_TIMESTAMP(msg_date)) as msg_date
    FROM {$CONFIG['TABLE_COMMENTS']}
    GROUP BY pid
    ORDER BY msg_date DESC) AS c2
WHERE UNIX_TIMESTAMP(c1.msg_date) = c2.msg_date
  AND p.approved = 'YES' AND c1.pid = p.pid
  $QUERY_META_ALBUM_SET $keyword)
GROUP BY p.pid
ORDER BY msg_date DESC
$limit;";
$result = cpg_db_query($query);

// Mod end: group comments on the same pic


Voilà.. ;D

Pascal YAP