Bonjour;
j'ai parcouru les deux threads cités plus haut.
C'est vrai que c'est un peu confus, surtout pour moi qui ne parle pas allemand.
Voici ma façon de faire. Je l'ai testée sur plusieurs installations de 4images 1.7.4 et elle fonctionne à chaque fois.
On affiche les statistiques: images, catégories, membres, hits, téléchargements, votes et commentaires.
- 1_ Créer un fichier includes/stats.php
Son contenu est le suivant:
<?php
//-----------------------------------------------------
// --- Comptons les images --------------------------
//-----------------------------------------------------
$sql = "SELECT COUNT(*) AS total_images
FROM ".IMAGES_TABLE;
$row = $site_db->query_firstrow($sql);
$total_images = $row['total_images'];
$lang_total_images = $lang['total_images'];
$site_template->register_vars("total_images", $total_images);
$site_template->register_vars("lang_total_images", $lang_total_images);
unset($total_images);
unset($lang_total_images);
//-----------------------------------------------------
// --- Comptons les catégories ----------------------
//-----------------------------------------------------
$sql = "SELECT COUNT(*) AS total_categories
FROM ".CATEGORIES_TABLE;
$row = $site_db->query_firstrow($sql);
$total_categories = $row['total_categories'];
$lang_total_categories = $lang['total_categories'];
$site_template->register_vars("total_categories", $total_categories);
$site_template->register_vars("lang_total_categories", $lang_total_categories);
unset($total_categories);
unset($lang_total_categories);
//-----------------------------------------------------
//--- Comptons les membres ----------------------------
//-----------------------------------------------------
$sql = "SELECT COUNT(*) AS total_users
FROM ".USERS_TABLE."
WHERE user_id <> ".GUEST;
$row = $site_db->query_firstrow($sql);
$total_users = $row['total_users'];
$lang_total_users = $lang['total_users'];
$site_template->register_vars("total_users", $total_users);
$site_template->register_vars("lang_total_users", $lang_total_users);
unset($total_users);
unset($lang_total_users);
//-----------------------------------------------------
//--- Comptons les hits -------------------------------
//-----------------------------------------------------
$sql = "SELECT SUM(image_hits) AS sum
FROM ".IMAGES_TABLE;
$row = $site_db->query_firstrow($sql);
$sum = (isset($row['sum'])) ? $row['sum'] : 0;
$total_hits = $row['sum'];
$lang_total_hits = $lang['total_hits'];
$site_template->register_vars("total_hits", $total_hits);
$site_template->register_vars("lang_total_hits", $lang_total_hits);
unset($total_hits);
unset($lang_total_hits);
//-----------------------------------------------------
//--- Comptons les téléchargements --------------------
//-----------------------------------------------------
$sql = "SELECT SUM(image_downloads) AS sum
FROM ".IMAGES_TABLE;
$row = $site_db->query_firstrow($sql);
$sum = (isset($row['sum'])) ? $row['sum'] : 0;
$total_downloads = $row['sum'];
$lang_total_downloads = $lang['total_downloads'];
$site_template->register_vars("total_downloads", $total_downloads);
$site_template->register_vars("lang_total_downloads", $lang_total_downloads);
unset($total_downloads);
unset($lang_total_downloads);
//-----------------------------------------------------
//--- Comptons les votes ------------------------------
//-----------------------------------------------------
$sql = "SELECT SUM(image_votes) AS sum
FROM ".IMAGES_TABLE;
$row = $site_db->query_firstrow($sql);
$sum = (isset($row['sum'])) ? $row['sum'] : 0;
$total_votes = $row['sum'];
$lang_total_votes = $lang['votes'];
$site_template->register_vars("total_votes", $total_votes);
$site_template->register_vars("lang_total_votes", $lang_total_votes);
unset($total_votes);
unset($lang_total_votes);
//-----------------------------------------------------
//--- Comptons les commentaires -----------------------
//-----------------------------------------------------
$sql = "SELECT SUM(image_comments) AS sum
FROM ".IMAGES_TABLE;
$row = $site_db->query_firstrow($sql);
$sum = (isset($row['sum'])) ? $row['sum'] : 0;
$total_comments = $row['sum'];
$lang_total_comments = $lang['total_comments'];
$site_template->register_vars("total_comments", $total_comments);
$site_template->register_vars("lang_total_comments", $lang_total_comments);
unset($total_comments);
unset($lang_total_comments);
//-----------------------------------------------------
//--- Intégration dans le template --------------------
//-----------------------------------------------------
$stats = $site_template->parse_template("stats");
$site_template->register_vars("stats", $stats);
unset($stats);
?>
- 2_ Créer un fichier templates/votre_template/stats.html
Son contenu sera:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2" height="20" align="center">Statistiques</td>
</tr>
<tr>
<td class="row2">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="row1">
<td><br /> {lang_total_images}</td>
<td><br /><B>{total_images}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_categories}</td>
<td><B>{total_categories}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_users}</td>
<td><B>{total_users}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_hits}</td>
<td><B>{total_hits}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_downloads}</td>
<td><B>{total_downloads}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_votes}</td>
<td><B>{total_votes}</B></td>
</tr>
<tr class="row1">
<td> {lang_total_comments}</td>
<td><B>{total_comments}</B></td>
</tr>
</table></td></tr></table><br />
- 3_ Editer le fichier lang/french/main.php
Remplacer la dernière ligne:
?>
par:
//-----------------------------------------------------
//--- Statistiques ------------------------------------
//-----------------------------------------------------
$lang['total_images'] = "Images:";
$lang['total_categories'] = "Catégories:";
$lang['total_users'] = "Membres:";
$lang['total_hits'] = "Hits:";
$lang['total_votes'] = "Votes:";
$lang['total_downloads'] = "Téléchargements:";
$lang['total_comments'] = "Commentaires:";
?>
Maintenant, supposons que vous voulez afficher ces statistiques sur votre page d'accueil.
Celle-ci est gérée par le script en appelant le fichier
index.php de la racine de votre galerie, puis habillée avec la page
home.html de votre template.
Vous devez donc apporter des modifications à ces deux fichiers:
trouvez:
require(ROOT_PATH.'includes/sessions.php');
et insérez juste après:
include(ROOT_PATH.'includes/stats.php');
trouvez:
{endif random_image}
et remplacez par:
{endif random_image}{stats}
Si vous désirez afficher les statistiques sur d'autres pages, vous devez faire les mêmes modifications sur les couples de fichiers PHP/HTML:
- categories.php et categories.html
- details.php et details.html
- lightbox.php et lightbox.html
- member.php et member.html
- postcards.php et postcard_create.html
- search.php et search.html
- top.php et top.html...
Dans certains fichiers HTML, {endif random_image} est remplacé par {endif random_cat_image}.
Voilà. Merci de me dire si ça fonctionne pour vous ou si vous rencontrez certains désagréments.
Vous pouvez trouver en pièce jointe une archive ZIP contenant les fichiers
stats.php,
stats.html et un fichier d'explication
stats.rtf.
Salutations.