Nouveau Plugin Stats - + AutoFormation - eSyndiCat User Forums
eSyndiCat User Forums esyndicat directory software esyndicat support

Go Back   eSyndiCat User Forums > International > French

Reply
 
Thread Tools Display Modes
Old 01-05-2010   #1
pmadfm
01-AGF / 01-ASI
 
Join Date: Aug 2007
Location: Paris
Posts: 169
pmadfm is on a distinguished road
Thumbs up Nouveau Plugin Stats - + AutoFormation

Bonjour,

Bravo et merci à l’équipe de eSyndicat pour la qualité des développements, même si nous sommes avide de ceux-ci et que notre avidité nous pousse à considéré que cela ne va jamais assez vite.

Un nouveau plugin à vu le jour et il est digne d’intérêt, il s’agit de Extra Statistics 1.0.

Ce plugin apporte quelques statistiques supplémentaires dont une que j’attendais depuis bien longtemps, vous aussi surement : nombre de sites web en attente de validation, nommée par nos amis d’eSyndicat, « number of pending listings ».

Outre le fait que ce plugin ajoute enfin cette statistique que nous attendions tous avec impatience, car elle existe depuis longtemps sur d’autre script d’annuaire, il est intéressant de noter qu’en fouillant un peu ce nouveau plugin, le code de ce dernier nous ouvre des porte dans un monde qui peut paraître assez ésotérique, pour peu que l’on ne maîtrise pas la programmation orienté objet sous PHP et l’utilisation du langage de commande smarty.

Pour profiter de la suite de ce post et l'auto-formation, il est tout de même nécessaire d'avoir quelques bases en PHP et en MySQL.

J’ai donc en bon curieux fouillé le code fournit pour ces nouvelles statistiques et j’ai trouvé le mode opératoire qui somme toute, quand on connait, est assez simple.

Voici un extrait du code qui se trouve en deux parties : extraction de l’information et stockage dans des variables globales, puis affichage de ces variables.

Code 1, stocké dans la table : v2300_hooks
PHP Code:
$eSyndiCat->setTable("listings");
$num_total['pending'] = $eSyndiCat->one("COUNT(*)""`status` = 'approval'");
$eSyndiCat->resetTable();

$eSyndiCat->setTable("listing_clicks");
$num_total['listing'] = $eSyndiCat->one("COUNT(*)");
$eSyndiCat->resetTable();
                
$eSyndiCat->setTable("category_clicks");
$num_total['category'] = $eSyndiCat->one("COUNT(*)");
$eSyndiCat->resetTable();
            
$esynSmarty->assign('num_total'$num_total); 
La première ligne précise la table sur laquelle on va effectuer la requête MySQL.
La seconde est la requête de création de la donnée, ici des statistiques, et l’attribution du résultat à une nouvelle variable ajoutées ici au tableau $numtotal.
La troisième semble être une instruction de libération de la table par smarty.

Et enfin la dernière demande à smarty de faire le travail préparé et d'assigner les valeurs au tableau "num_total".

Code 2, stocké dans la table : v2300_hooks
PHP Code:
{if isset($num_total.pending)}
<
tr>
    <
td>{$lang.pending_approval}:</td>
    <
td>{$num_total.pending}</td>
</
tr>
{/if}

{if isset(
$num_total.listing)}
<
tr>
    <
td>{$lang.total_listing_clicks}:</td>
    <
td>{$num_total.listing}</td>
</
tr>
{/if}

{if isset(
$num_total.category)}
    <
tr>
    <
td>{$lang.total_category_clicks}:</td>
    <
td>{$num_total.category}</td>
</
tr>
{/if} 
Cette partie correspond à l’affichage des variables crées et alimentées par le code précédent et ce dans le bloc statistique.
1 test d’existence de la variable total.xxx
2 Saut de ligne (tableau), affichage d’un texte issu de la table langage et correspondant au libellé de la variable total à afficher et enfin affichage de celle-ci
Les autres ligne correspondent à la gestion du tableau en HTML.

J’ai donc profité de cette opportunité pour vérifier que j’avais bien compris le fonctionnement de ces commandes en ajoutant une statistique supplémentaire : nombre de sites web financés (sponsored) dont voici le code.

Partie 1 :

PHP Code:
$eSyndiCat->setTable("listings");
$num_total['sponsored'] = $eSyndiCat->one("COUNT(*)""`sponsored` = '1'");
$eSyndiCat->resetTable(); 
Parite 2 :
PHP Code:
{if isset($num_total.sponsored)}
    <
tr>
    <
td>NbFinanc&eacute;s:</td>
    <
td>{$num_total.sponsored}</td>
</
tr>
{/if} 
Ne faites pas comme moi, libellé en dur, créez une ligne dans la table language ... (faites ce que je dis, pas ce que je fais )

Vous pouvez voir le résultat de cet ajout de code sur : 01 Annuaire élitiste (AESW)

Last edited by pmadfm; 01-05-2010 at 10:39 AM.
pmadfm is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 12:20 AM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Testimonials | Articles | Support | Documentation | Privacy Policy | License | Affiliates | Contact Us | SEO Resources