MAJ de Coppermine: probleme de MOD MAJ de Coppermine: probleme de MOD
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

MAJ de Coppermine: probleme de MOD

Started by mirtil, November 21, 2006, 06:11:11 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mirtil

Bonjour !

Voilà, j'ai installé Coppermine il y a un bail... et je compte enfin faire la mise à jour  :)
Malheureusement, je ne retrouve plus le mod que j'avais installé : un compteur total de photos vues sur chaque album de la page d'accueil.

Genre : 125 photos, vues X fois

Voici un visu plus explicite.

(https://coppermine-gallery.com/forum/proxy.php?request=http%3A%2F%2Fwww.monptidoi.com%2Fessai%2Fimage1.png&hash=633f8e91715ba7af454d1137d45a329495d6509f)

J'ai regardé les 35 pages de la section française, mais je n'ai pas retrouvé  :'(

merci d'avance !

mirtil

Hola !

J'ai retrouvé le sujet traitant du MOD (http://forum.coppermine-gallery.net/index.php?topic=13777.0)

Par contre, celui-ci ne marche plus. Bien qu'il n'y ait pas de messages d'erreurs...

1/ Dans index.php recherchez le code suivant :
Code:

    $sql = "SELECT aid, count(pid) as pic_count, max(pid) as last_pid, max(ctime) as last_upload ".
           "FROM {$CONFIG['TABLE_PICTURES']} ".
           "WHERE aid IN $album_set AND approved = 'YES' ".
           "GROUP BY aid";

remplacez-le par le code suivant :
Code:

    $sql = "SELECT aid, count(pid) as pic_count, max(pid) as last_pid, max(ctime) as last_upload, sum(hits) as viewcount ".
           "FROM {$CONFIG['TABLE_PICTURES']} ".
           "WHERE aid IN $album_set AND approved = 'YES' ".
           "GROUP BY aid";


recherchez le code suivant :
Code:

        if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums'] || $CONFIG['allow_private_albums']==0) {
            $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
            $alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
            $alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
            $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
            $alb_list[$alb_idx]['pic_count'] = $count;
            $alb_list[$alb_idx]['last_upl'] = $last_upload_date;
            $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "");
            $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
        } elseif ($CONFIG['show_private']) { // uncomment this else block to show private album description
            $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
            $alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
            $alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
            $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
            $alb_list[$alb_idx]['pic_count'] = $count;
            $alb_list[$alb_idx]['last_upl'] = $last_upload_date;
            $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "");
            $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
        }
    }

puis remplacez-le par le code suivant :
Code:

        if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums'] || $CONFIG['allow_private_albums']==0) {
            $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
            $alb_views = $count ? $alb_stat['viewcount'] : '';
            $alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
            $alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
            $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
            $alb_list[$alb_idx]['pic_count'] = $count;
            $alb_list[$alb_idx]['last_upl'] = $last_upload_date;
            $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "") . ($count ? sprintf($lang_list_albums['album_views'], $alb_views) : "");
            $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
        } elseif ($CONFIG['show_private']) { // uncomment this else block to show private album description
            $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
            $alb_views = $count ? $alb_stat['viewcount'] : '';
            $alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
            $alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
            $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
            $alb_list[$alb_idx]['pic_count'] = $count;
            $alb_list[$alb_idx]['last_upl'] = $last_upload_date;
            $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "") . ($count ? sprintf($lang_list_albums['album_views'], $alb_views) : "");
            $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
        }
    }


2/ Dans votre fichier de langue, typiquement citué dans VotreCoppermine/lang/votre_langue.php, on ajoute la ligne qui sera affichée aux cotés de celles d'origine "500 photos. Nouvelle image ajoutée le 01/01/2005"

Trouvez le code suivant :
Code:

$lang_list_albums = array(
  'n_pictures' => '%s files', //cpg1.3.0
  'last_added' => ', last one added on %s',
);

puis remplacez-le par le suivant :
Code:

$lang_list_albums = array(
  'n_pictures' => '%s Photos', //cpg1.3.0
  'last_added' => ', la dernière a été ajoutée le %s',
  'album_views' => '. Cet Album a été ouvert %s fois.',
);


Dans index.php, je mets à 2 reprises (bien que le pavé de codes ait un peu changé) :
Après :               $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
Je place :             $alb_views = $count ? $alb_stat['viewcount'] : '';


Mais ni le compteur, ni la traduction "Cet Album a été ouvert %s fois." n'apparaîssent...
pouvez vous m'éclairer ?

Pascal YAP

Bonjour Mirtil,

QuoteJ'ai retrouvé le sujet traitant du MOD...Par contre, celui-ci ne marche plus. Bien qu'il n'y ait pas de messages d'erreurs...
Et pour cause, c'est une modification à apporter à CPG 1.3.x !
Les différences sont minimes entre 1.3 et 1.4, mais je ne connais pas ce code  ??? Faut que je compare ! :-\

PAYP

mirtil

Aloha !

J'ai installé le PLUGIN "Search Album" et celui-ci m'affiche le compteur de vues par albums.

Voici le bout de code du fichier CODEBASE.PHP :

if ($CONFIG['plugin_searchalbum_showalbstats']) {
$query = "SELECT COUNT(pid) as pic_count, SUM(hits) as hit_count"
." FROM {$CONFIG['TABLE_PICTURES']} AS p"
." WHERE p.aid = {$row['aid']} AND p.approved =  'YES'";
$result = cpg_db_query($query);
$row_npic = mysql_fetch_array($result);
mysql_free_result($result);

if (!$row_npic['hit_count']) { $row_npic['hit_count'] = 0; }
$albstats_lbl_files = isset($lang_plugin_searchalbum_stats) ? $lang_plugin_searchalbum_stats['stats_files'] : $lang_list_albums['n_pictures'];
$albstats_lbl_views = isset($lang_plugin_searchalbum_stats) ? $lang_plugin_searchalbum_stats['stats_views'] : $lang_get_pic_data['n_views'];
$params = array(
'{DATE}'  => $rowset[$key]['ctime'] ? localised_date($rowset[$key]['ctime'], $CONFIG['plugin_searchalbum_statsdatefmt']) : '',
'{FILES}' => sprintf($albstats_lbl_files, $row_npic['pic_count']),
'{VIEWS}' => sprintf($albstats_lbl_views, $row_npic['hit_count']),
);
$albstats = template_eval($CONFIG['plugin_searchalbum_templatestats'],$params);

$rowset[$key]['caption_text'] .= '<span class="thumb_caption"><span class="thumb_stats">'.$albstats.'</span></span>';
} else {
$rowset[$key]['caption_text'] .= '<span class="thumb_caption">'.localised_date($row['ctime'], $lastup_date_fmt).'</span>';
}


Pourriez vous m'indiquer comment le "transposer" sur l'affichage de l'index pour chaque album ?

Merchi beaucoup :)

mirtil

Bonjour !

J'ai tenté de remplacer dans le code proposé dans la version 3.1 de Coppermine pour INDEX.PHP :

            $alb_views = $count ? $alb_stat['viewcount'] : '';

Par celui-ci, du Plugin Search Album :

             $albstats_lbl_views = isset($lang_plugin_searchalbum_stats) ? $lang_plugin_searchalbum_stats['stats_views'] : $lang_get_pic_data['n_views'];
$params = array(
'{VIEWS}' => sprintf($albstats_lbl_views, $row_npic['hit_count']),
);


... mais j'y arrive toujours pas  :'(

mirtil

Svp... pouvez vous m'orienter pour résoudre mon problème ?  :-\

François Keller

Bonjour,

C'est dificile de dire, en tout cas, ce n'est pas le bon procédé que vous utilisez. Vous ne pouvez pas remplacer le code par celui du plugin, celui ci faisant appel à des fonctions propres à lui. Il faudrait regarder comment le plugin récupère la valeur et intégrer celà dans le code. L'idéal étant de faire un plugin ce qui permets une mise à jour plus facile.
Mais pour ça il faut du temps....
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

mirtil

Arrggghhh... bon ben tant pis, j'attendrai.  :-\

Si quelqu'un a une idée pour le créer, je suis prêt à bosser dessus.  :)

François Keller

#8
Pour l'écriture des plugins, il y a un debut d'article sur le wiki
Ensuite, il faut faire des essais pour intégrer 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