Forum PHPBoost
• Suggestions d'améliorations » [Module téléchargement] installer un compteur de view?
Sur le module téléchargement, j'aimerais savoir si c'est possible d'installer un compteur de view?
C’est que j'ai des mp3 et qui sont en téléchargement et si une personne ne veux que l'écouté sur la page et ne pas le télécharger comme sur le Module média sa pourrait une sorte de fusion entre ces modules
Écoute et télécharge après et tout serait compteur !
View
Et
téléchargement
Je l'ai fais !
Hello,
Tu pourrais peut être partagé ta démarche pour arriver à ce que tu souhaitais, ça peut être utile à d'autre
Benji
Tu pourrais peut être partagé ta démarche pour arriver à ce que tu souhaitais, ça peut être utile à d'autre

Benji
comment introduire un compteur de view
Matériel requis NOTEPAD++ ou autre logiciel préféré
Je commence toujours par modifier le TPL pour savoir se qui me faut.
Sur l'exemple je l'ai placé juste en dessous du compteur de téléchargement

download.tpl
Code HTML :
<tr> <td class="row1" style="padding:3px"> <a href="{U_DOWNLOAD_FILE}">{L_DOWNLOADED} </a></td> <td class="row2" style="padding:3px"> {HITS} </td> </tr> <tr> <td class="row1" style="padding:3px">VIEW</td> <td class="row2" style="padding:1px"><span class="row2" style="padding:3px">{VIEW} </span></td> </tr>
tu dois ajouter le compteur de view qui va injecter +1 dans la base de donné et assigné la variable {VIEW} et {L_VIEW}
download.php
ligne 52
Code PHP :
$Sql->query_inject("UPDATE " . LOW_PRIORITY . " " . PREFIX . "download SET counter = counter + 1 WHERE id = " . $file_id, __LINE__, __FILE__);
ligne56 Juste en desous de COUNT
Code PHP :
$Template->assign_vars(array( 'COUNT' => $download_info['count'], 'VIEW' => sprintf($DOWNLOAD_LANG['view_n_times'], (int)$download_info['counter']), 'L_VIEW' => $DOWNLOAD_LANG['view'],
ensuite on s'en va dans download_french.php on a deux valeur à ajouter 'view_n_times' 'view'
Code PHP :
//DL $download_LANG['view_n_times'] = '%d fois'; $download_LANG['view] = 'Nombre de view';
a cette étape si on actualise un page du module on obtiens une erreur
car il faut introduire cette nouvelle table "counter" dans la base de donné
download.mysql.sql
Code SQL :
`counter` int(11) NOT NULL DEFAULT '0',
C’est la première étape de fait les view sont là dans chaque fichier

Deuxieme étape c'est d'ajouer le compteur de view dans les catégories mais sa sera pour une prochaine fois


Merci mind
Moi je me demande si les modules passe à la version 4?
Il va surement avoir des changement !
Il va surement avoir des changement !
Je veux m'ajouté un compteur dans les catégories
Le sql Fonctionne
Code SQL :
L'injecteur dans la page php (download) fonctionne
Code PHP :
Mais rendu à l'affichage c'est là que sa ce corse
Code PHP :
La première parti du code s'affiche (DOWNLOAD_LANG) mais la valeur reste à 0
$category_id['counter'] ???
Edité par mind Le 18/01/12 à 03h28
Le sql Fonctionne
Code SQL :
DROP TABLE IF EXISTS `phpboost_download_cat`; CREATE TABLE `phpboost_download_cat` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c_order` int(11) NOT NULL DEFAULT '0', `id_parent` int(11) NOT NULL DEFAULT '0', `name` varchar(150) NOT NULL DEFAULT '', `counter` int(11) NOT NULL DEFAULT '0', `contents` text, `icon` varchar(255) NOT NULL DEFAULT '', `visible` tinyint(1) NOT NULL DEFAULT '1', `auth` text, `num_files` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `class` (`c_order`) ) ENGINE=MyISAM;
L'injecteur dans la page php (download) fonctionne
Code PHP :
$Sql->query_inject("UPDATE " . LOW_PRIORITY . " " . PREFIX . "download SET counter = counter + 1 WHERE id = " . $category_id, __LINE__, __FILE__);
Mais rendu à l'affichage c'est là que sa ce corse
Code PHP :
'VIEWCAT' => sprintf($DOWNLOAD_LANG['view_n_times'], $category_id['counter']),
La première parti du code s'affiche (DOWNLOAD_LANG) mais la valeur reste à 0
$category_id['counter'] ???
Edité par mind Le 18/01/12 à 03h28
Montre moi ta requête de récupération stp
download.php ligne 113
Code PHP : À la ligne 113 c'est la seul "assign_vars" qui fonctionne pour le faire.
Dumoin? La première parti du code s'affiche.
Edité par mind Le 18/01/12 à 20h37
Code PHP :
<?php<br /> /*##################################################<br /> * download.php<br /> * -------------------<br /> * begin : July 27, 2005<br /> * copyright : (C) 2005 Viarre Régis, Sautel Benoit<br /> * email : crowkait@phpboost.com, <a href="mailto:ben.popeye@phpboost.com">ben.popeye@phpboost.com</a><br /> *<br /> *<br /> ###################################################<br /> *<br /> * This program is free software; you can redistribute it and/or modify<br /> * it under the terms of the GNU General Public License as published by<br /> * the Free Software Foundation; either version 2 of the License, or<br /> * (at your option) any later version.<br /> * <br /> * This program is distributed in the hope that it will be useful,<br /> * but WITHOUT ANY WARRANTY; without even the implied warranty of<br /> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br /> * GNU General Public License for more details.<br /> *<br /> * You should have received a copy of the GNU General Public License<br /> * along with this program; if not, write to the Free Software<br /> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.<br /> *<br /> ###################################################*/<br /> <br /> require_once('../kernel/begin.php');<br /> require_once('../download/download_begin.php');<br /> require_once('../kernel/header.php');<br /> <br /> if ($file_id > 0) //Contenu<br /> {<br /> $Template->set_filenames(array('download'=> 'download/download.tpl'));<br /> <br /> if ($download_info['size'] > 1)<br /> $size_tpl = $download_info['size'] . ' ' . $LANG['unit_megabytes'];<br /> elseif ($download_info['size'] > 0)<br /> $size_tpl = ($download_info['size'] * 1024) . ' ' . $LANG['unit_kilobytes'];<br /> else<br /> $size_tpl = $DOWNLOAD_LANG['unknown_size'];<br /> <br /> import('util/date');<br /> $creation_date = new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, $download_info['timestamp']);<br /> $release_date = new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, $download_info['release_timestamp']);<br /> <br /> //Affichage notation.<br /> import('content/note');<br /> $Note = new Note('download', $file_id, url('download.php?id=' . $file_id, 'category-' . $category_id . '-' . $file_id . '.php'), $CONFIG_DOWNLOAD['note_max'], '', NOTE_NODISPLAY_NBRNOTES);<br /> <br /> //MAJ du compteur.<br /> $Sql->query_inject("UPDATE " . LOW_PRIORITY . " " . PREFIX . "download SET counter = counter + 1 WHERE id = " . $file_id, __LINE__, __FILE__);<br /> <br /> import('content/comments');<br /> <br /> $Template->assign_vars(array(<br /> 'C_DISPLAY_DOWNLOAD' => true,<br /> 'C_IMG' => !empty($download_info['image']),<br /> 'C_EDIT_AUTH' => $auth_write,<br /> 'MODULE_DATA_PATH' => $Template->get_module_data_path('download'),<br /> 'ID_FILE' => $file_id,<br /> 'NAME' => $download_info['title'],<br /> 'CONTENTS' => second_parse($download_info['contents']),<br /> 'CREATION_DATE' => $creation_date->format(DATE_FORMAT_SHORT),<br /> 'RELEASE_DATE' => $release_date->get_timestamp() > 0 ? $release_date->format(DATE_FORMAT_SHORT) : $DOWNLOAD_LANG['unknown_date'],<br /> 'SIZE' => $size_tpl,<br /> 'COUNT' => $download_info['count'],<br /> 'VIEW' => sprintf($DOWNLOAD_LANG['view_n_times'], (int)$download_info['counter']),<br /> 'THEME' => get_utheme(),<br /> 'KERNEL_NOTATION' => $Note->display_form(),<br /> 'HITS' => sprintf($DOWNLOAD_LANG['n_times'], (int)$download_info['count']),<br /> 'NUM_NOTES' => sprintf($DOWNLOAD_LANG['num_notes'], (int)$download_info['nbrnote']),<br /> 'U_IMG' => $download_info['image'],<br /> 'IMAGE_ALT' => str_replace('"', '\"', $download_info['title']),<br /> 'LANG' => get_ulang(),<br /> 'U_COM' => Comments::com_display_link($download_info['nbr_com'], '../download/download' . url('.php?id=' . $file_id . '&com=0', '-' . $file_id . '+' . url_encode_rewrite($download_info['title']) . '.php?com=0'), $file_id, 'download'),<br /> 'L_DATE' => $LANG['date'],<br /> 'L_SIZE' => $LANG['size'],<br /> 'L_DOWNLOAD' => $DOWNLOAD_LANG['download'],<br /> 'L_DOWNLOAD_FILE' => $DOWNLOAD_LANG['download_file'],<br /> 'L_FILE_INFOS' => $DOWNLOAD_LANG['file_infos'],<br /> 'L_INSERTION_DATE' => $DOWNLOAD_LANG['insertion_date'],<br /> 'L_RELEASE_DATE' => $DOWNLOAD_LANG['last_update_date'],<br /> 'L_DOWNLOADED' => $DOWNLOAD_LANG['downloaded'],<br /> 'L_VIEW' => $DOWNLOAD_LANG['view'],<br /> 'L_EDIT_FILE' => str_replace('"', '\"', $DOWNLOAD_LANG['edit_file']),<br /> 'L_CONFIRM_DELETE_FILE' => str_replace('\'', '\\\'', $DOWNLOAD_LANG['confirm_delete_file']),<br /> 'L_DELETE_FILE' => str_replace('"', '\"', $DOWNLOAD_LANG['delete_file']),<br /> 'U_EDIT_FILE' => url('management.php?edit=' . $file_id),<br /> 'U_DELETE_FILE' => url('management.php?del=' . $file_id . '&token=' . $Session->get_token()),<br /> 'U_DOWNLOAD_FILE' => url('count.php?id=' . $file_id, 'file-' . $file_id . '+' . url_encode_rewrite($download_info['title']) . '.php')<br /> ));<br /> <br /> //Affichage commentaires.<br /> if (isset($_GET['com']))<br /> {<br /> $Template->assign_vars(array(<br /> 'COMMENTS' => display_comments('download', $file_id, url('download.php?id=' . $file_id . '&com=%s', 'download-' . $file_id . '.php?com=%s'))<br /> ));<br /> }<br /> <br /> $Template->pparse('download');<br /> }<br /> else<br /> {<br /> $Template->set_filenames(array('download'=> 'download/download.tpl'));<br /> <br /> $Template->assign_vars(array(<br /> 'C_ADMIN' => $auth_write,<br /> 'C_DOWNLOAD_CAT' => true,<br /> 'C_ADD_FILE' => $auth_write || $auth_contribution,<br /> 'C_DESCRIPTION' => !empty($DOWNLOAD_CATS[$category_id]['contents']) || ($category_id == 0 && !empty($CONFIG_DOWNLOAD['root_contents'])),<br /> 'VIEWCAT' => sprintf($DOWNLOAD_LANG['view_n_times'], $category_id['counter']),<br /> 'IDCAT' => $category_id,<br /> 'TITLE' => sprintf($DOWNLOAD_LANG['title_download'] . ($category_id > 0 ? ' - ' . $DOWNLOAD_CATS[$category_id]['name'] : '')),<br /> 'DESCRIPTION' => $category_id > 0 ? second_parse($DOWNLOAD_CATS[$category_id]['contents']) : second_parse($CONFIG_DOWNLOAD['root_contents']),<br /> 'L_ADD_FILE' => $DOWNLOAD_LANG['add_file'],<br /> 'U_ADMIN_CAT' => $category_id > 0 ? url('admin_download_cat.php?edit=' . $category_id) : url('admin_download_cat.php'),<br /> 'U_ADD_FILE' => url('management.php?new=1&idcat=' . $category_id)<br /> ));<br /> <br /> //let's check if there are some subcategories<br /> $num_subcats = 0;<br /> foreach ($DOWNLOAD_CATS as $id => $value)<br /> {<br /> if ($id != 0 && $value['id_parent'] == $category_id)<br /> $num_subcats ++;<br /> }<br /> <br /> //listing of subcategories<br /> if ($num_subcats > 0)<br /> {<br /> $Template->assign_vars(array(<br /> 'C_SUB_CATS' => true<br /> )); <br /> <br /> $i = 1;<br /> <br /> foreach ($DOWNLOAD_CATS as $id => $value)<br /> {<br /> //List of children categories<br /> if ($id != 0 && $value['visible'] && $value['id_parent'] == $category_id && (empty($value['auth']) || $User->check_auth($value['auth'], DOWNLOAD_READ_CAT_AUTH_BIT)))<br /> {<br /> if ( $i % $CONFIG_DOWNLOAD['nbr_column'] == 1 )<br /> $Template->assign_block_vars('row', array());<br /> $Template->assign_block_vars('row.list_cats', array(<br /> 'ID' => $id,<br /> 'NAME' => $value['name'],<br /> 'WIDTH' => floor(100 / (float)$CONFIG_DOWNLOAD['nbr_column']),<br /> 'SRC' => $value['icon'],<br /> 'IMG_NAME' => addslashes($value['name']),<br /> 'NUM_FILES' => sprintf(((int)$value['num_files'] > 1 ? $DOWNLOAD_LANG['num_files_plural'] : $DOWNLOAD_LANG['num_files_singular']), (int)$value['num_files']),<br /> 'U_CAT' => url('download.php?cat=' . $id, 'category-' . $id . '+' . url_encode_rewrite($value['name']) . '.php'),<br /> 'U_ADMIN_CAT' => url('admin_download_cat.php?edit=' . $id),<br /> 'C_CAT_IMG' => !empty($value['icon'])<br /> ));<br /> <br /> $i++;<br /> }<br /> }<br /> }<br /> <br /> //Contenu de la catégorie <br /> $Sql->query_inject("UPDATE " . LOW_PRIORITY . " " . PREFIX . "download_cat SET counter = counter + 1 WHERE id = " . $category_id, __LINE__, __FILE__);<br /> <br /> $nbr_files = (int)$Sql->query("SELECT COUNT(*) FROM " . PREFIX . "download WHERE visible = 1 AND approved = 1 AND idcat = '" . $category_id . "'", __LINE__, __FILE__);<br /> if ($nbr_files > 0)<br /> {<br /> $get_sort = retrieve(GET, 'sort', ''); <br /> $get_mode = retrieve(GET, 'mode', '');<br /> $selected_fields = array(<br /> 'alpha' => '',<br /> 'size' => '',<br /> 'date' => '',<br /> 'view' => '',<br /> 'hits' => '',<br /> 'note' => '',<br /> 'asc' => '',<br /> 'desc' => ''<br /> );<br /> <br /> switch ($get_sort)<br /> {<br /> case 'alpha' : <br /> $sort = 'title';<br /> $selected_fields['alpha'] = ' selected="selected"';<br /> break; <br /> case 'size' : <br /> $sort = 'size';<br /> $selected_fields['size'] = ' selected="selected"';<br /> break; <br /> case 'date' : <br /> $sort = 'timestamp';<br /> $selected_fields['date'] = ' selected="selected"';<br /> break; <br /> case 'view' : <br /> $sort = 'counter';<br /> $selected_fields['view'] = ' selected="selected"';<br /> break; <br /> case 'hits' : <br /> $sort = 'count';<br /> $selected_fields['hits'] = ' selected="selected"';<br /> break; <br /> case 'note' :<br /> $sort = 'note';<br /> $selected_fields['note'] = ' selected="selected"';<br /> break;<br /> default :<br /> $sort = 'timestamp';<br /> $selected_fields['date'] = ' selected="selected"';<br /> }<br /> <br /> $mode = ($get_mode == 'asc') ? 'ASC' : 'DESC';<br /> if ($mode == 'ASC')<br /> $selected_fields['asc'] = ' selected="selected"';<br /> else<br /> $selected_fields['desc'] = ' selected="selected"';<br /> <br /> $unget = (!empty($get_sort) && !empty($mode)) ? '?sort=' . $get_sort . '&mode=' . $get_mode : '';<br /> <br /> $Template->assign_vars(array(<br /> 'L_FILE' => $DOWNLOAD_LANG['file'],<br /> 'L_ALPHA' => $DOWNLOAD_LANG['sort_alpha'],<br /> 'L_SIZE' => $LANG['size'],<br /> 'L_DATE' => $LANG['date'],<br /> 'L_DOWNLOAD' => $DOWNLOAD_LANG['download'],<br /> 'L_POPULARITY' => $DOWNLOAD_LANG['popularity'],<br /> 'L_VIEW' => $DOWNLOAD_LANG['view'],<br /> 'L_DESC' => $LANG['desc'],<br /> 'L_ASC' => $LANG['asc'],<br /> 'L_NOTE' => $LANG['note'],<br /> 'L_ORDER_BY' => $DOWNLOAD_LANG['order_by'],<br /> 'L_CONFIRM_DELETE_FILE' => str_replace('\'', '\\\'', $DOWNLOAD_LANG['confirm_delete_file']),<br /> 'SELECTED_ALPHA' => $selected_fields['alpha'],<br /> 'SELECTED_SIZE' => $selected_fields['size'],<br /> 'SELECTED_DATE' => $selected_fields['date'],<br /> 'SELECTED_VIEW' => $selected_fields['view'],<br /> 'SELECTED_HITS' => $selected_fields['hits'],<br /> 'SELECTED_NOTE' => $selected_fields['note'],<br /> 'SELECTED_ASC' => $selected_fields['asc'],<br /> 'SELECTED_DESC' => $selected_fields['desc']<br /> ));<br /> <br /> //On crée une pagination si le nombre de fichiers est trop important.<br /> import('util/pagination'); <br /> $Pagination = new Pagination();<br /> <br /> //Notes<br /> import('content/note');<br /> import('content/comments');<br /> <br /> $Template->assign_vars(array(<br /> 'PAGINATION' => $Pagination->display(url('download.php' . (!empty($unget) ? $unget . '&' : '?') . 'cat=' . $category_id . '&p=%d', 'category-' . $category_id . '-%d.php' . $unget), $nbr_files, 'p', $CONFIG_DOWNLOAD['nbr_file_max'], 3),<br /> 'C_FILES' => true,<br /> 'TARGET_ON_CHANGE_ORDER' => $CONFIG['rewrite'] ? 'category-' . $category_id . '.php?' : 'download.php?cat=' . $category_id . '&'<br /> ));<br /> <br /> $result = $Sql->query_while("SELECT id, title, counter, timestamp, size, count, note, nbrnote, nbr_com, image, short_contents<br /> FROM " . PREFIX . "download<br /> WHERE visible = 1 AND approved = 1 AND idcat = '" . $category_id . "'<br /> ORDER BY " . $sort . " " . $mode . <br /> $Sql->limit($Pagination->get_first_msg($CONFIG_DOWNLOAD['nbr_file_max'], 'p'), $CONFIG_DOWNLOAD['nbr_file_max']), __LINE__, __FILE__);<br /> while ($row = $Sql->fetch_assoc($result))<br /> {<br /> $Template->assign_block_vars('file', array( <br /> 'NAME' => $row['title'],<br /> 'IMG_NAME' => str_replace('"', '\"', $row['title']),<br /> 'C_DESCRIPTION' => !empty($row['short_contents']),<br /> 'DESCRIPTION' => second_parse($row['short_contents']),<br /> 'DATE' => sprintf($DOWNLOAD_LANG['add_on_date'], gmdate_format('date_format_short', $row['timestamp'])),<br /> 'COUNT_DL' => sprintf($DOWNLOAD_LANG['downloaded_n_times'], $row['count']),<br /> 'VIEW' => sprintf($DOWNLOAD_LANG['view_n_times'], $row['counter']),<br /> 'NOTE' => $row['nbrnote'] > 0 ? Note::display_img((int)$row['note'], $CONFIG_DOWNLOAD['note_max'], 5) : '<em>' . $LANG['no_note'] . '</em>',<br /> 'L_VIEW' => $DOWNLOAD_LANG['popularity'],<br /> 'SIZE' => ($row['size'] >= 1) ? number_round($row['size'], 1) . ' ' . $LANG['unit_megabytes'] : (number_round($row['size'], 1) * 1024) . ' ' . $LANG['unit_kilobytes'],<br /> 'C_IMG' => !empty($row['image']),<br /> 'IMG' => $row['image'],<br /> 'U_DOWNLOAD_LINK' => url('download.php?id=' . $row['id'], 'download-' . $row['id'] . '+' . url_encode_rewrite($row['title']) . '.php'),<br /> 'U_ADMIN_EDIT_FILE' => url('management.php?edit=' . $row['id']),<br /> 'U_ADMIN_DELETE_FILE' => url('management.php?del=' . $row['id'] . '&token=' . $Session->get_token()),<br /> 'U_COM_LINK' => Comments::com_display_link($row['nbr_com'], '../download/download' . url('.php?id=' . $row['id'] . '&com=0', '-' . $row['id'] . '+' . url_encode_rewrite($row['title']) . '.php?com=0'), $row['id'], 'download')<br /> ));<br /> }<br /> $Sql->query_close($result);<br /> }<br /> else<br /> {<br /> $Template->assign_vars(array(<br /> 'L_NO_FILE_THIS_CATEGORY' => $DOWNLOAD_LANG['none_download'],<br /> 'C_NO_FILE' => true<br /> ));<br /> }<br /> <br /> $Template->pparse('download');<br /> }<br /> <br /> require_once('../kernel/footer.php'); <br /> <br /> ?><br />
Dumoin? La première parti du code s'affiche.
Edité par mind Le 18/01/12 à 20h37
Ligne 258 et 271, c'est counter et pas count, non ?
Tien je donne le lien pour ceux qui veule le module download avec view et commentaire de facebook
download-2+module-pour-phpboost-3-0-telecharger.php
Il y a aussi les dernière modification dedans pour ajouté un compteur dans les catégories.
Le compteur fonctionne dans la bass de donné.

Mais à l'affichage, jai toujours 0 !!!!
Edité par mind Le 18/01/12 à 21h11
download-2+module-pour-phpboost-3-0-telecharger.php
Il y a aussi les dernière modification dedans pour ajouté un compteur dans les catégories.
Le compteur fonctionne dans la bass de donné.

Mais à l'affichage, jai toujours 0 !!!!
Edité par mind Le 18/01/12 à 21h11
• Suggestions d'améliorations » [Module téléchargement] installer un compteur de view?
1 Utilisateur en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne: Aucun membre connecté
Utilisateur en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie





PHPBoost

Support
Téléchargements
Développement
Communauté

















