Nouveau Plugin Stats - + AutoFormation

Discussion in 'French' started by pmadfm, Jan 5, 2010.

  1. pmadfm

    pmadfm 01-AGF / 01-ASI

    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:
    $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:
    {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:
    $eSyndiCat->setTable("listings");
    $num_total['sponsored'] = $eSyndiCat->one("COUNT(*)""`sponsored` = '1'");
    $eSyndiCat->resetTable();
    Parite 2 :
    PHP:
    {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 &lt;_&lt; )

    Vous pouvez voir le résultat de cet ajout de code sur : 01 Annuaire élitiste (AESW)
    Last edited: Jan 5, 2010

Share This Page