Stats Letters pour les développeurs

25.10.2008, 18:07 Ici, vous trouverez une explication détaillée sur le fonctionnement de awstats letter.

Fonctionnement général

Voici le principe de fonctionnement du mailer
1 - les mails et les fichiers awstats sont chargés
2 - les plugins de traitement sont appliqués sur les fichiers awstats
3 - un rapport est généré
4 - le mailer se charge d'envoyer les données
rapport mailer

rapport mailer

rapport mailer


Présentation détaillée

Voici l'algorithme général du programme, readfileds se charge d'appliquer les plugins au profil awstats et format_mail_xxx de générer le rapport avec Html::template.

Code1#_pour chaque profil
2#______si NonFait(profil)
3#____________readFields(..)// lecture du fichier de stats
4#______FinSi
5#______format_mail_body(..)// formatage du corps du mail
6#______format_mail_title(..)// formatage du titre du mail
7#______mail_user(..)// envoie du mail
8#_FinPour
Voici le détail du fonctionnement de "readFields".
Code#_______pour chaque ligne du fichier
#_______________get_mail_Subject(@field);
#________________# execution des plugins de formatage du titre
#_______________get_mail_body(@field);
#________________# execution des plugins de formatage du corp
#_______FinPour
mumuri cinemona.com
mumuri
mumuri
Messages : 14 377
25.10.2008, 18:08 Gestion des plugins

Si vous désirez rajouter des informations dans le mail final, il faudra créer de nouveau plugins


Créer un pluginBody par l'exemple ....

  • créer une fonction 'searchWords' sous cette forme

    Codesub searchWords {
    if ( $field[0] eq 'BEGIN_SEARCHWORDS' ) {

    ...
    my @Akeyphrases = ();
    foreach my $key (@keylist) {
    my %row = (
    keyphrase => $key,
    numbers => $_keyphrases{$key},
    );
    push( @Akeyphrases, \%row );
    }

    return { "keyphrases" => \@Akeyphrases };
    }
    else {
    return 0;
    }
    • Si vous arrivez en début de section, vous pouvez effectuer vos traitement
    • A la fin vous renvoyer un libellé qui sera utilisable dans vos templates ("keyphrases"), stocké dans un hash est faisant référence à un tableau de hash (tableau: @Akeyphrases et hash %row), chaque couple "clé" et "valeur de cette hash faisant référence à un champs du tableau final
    • Quand la ligne de début de la zone de lecture qui vous intéresse n'est pas trouvé, vous renvoyez "faux"(0)
  • "activer" ce plugin en rajoutant une référence à 'searchWords' dans "get_mail_body"
    Codesub get_mail_body {
    addToBodyPlugins( &searchWords( @_ ) );
    }
  • Ouvrir "bodyTemplate.html" puis rajouter le champs "libellé" cité plus hautSeul cette partie de code est intéressante (regarder le fichier fournir pour avoir le reste. Ici vous faites une boucle sur le tableau @Akeyphrases, pour afficher les champs keyphrase et numbers de chaque hash %row.
    Code<TMPL_LOOP NAME=keyphrases>
    <tr>
    <td><TMPL_VAR NAME=keyphrase></td>
    <td><TMPL_VAR NAME=numbers></td>
    </tr>
    </TMPL_LOOP>
Et voilà c'est tout ...

Créer un pluginTitle par l'exemple ....
  • créer une fonction 'getVisitDay' sous cette forme
    Codesub getVisitDay {
    my @field = @_;

    if ( $field[0] eq 'TotalVisits' || $field[0] eq "${xmlrb}TotalVisits" ) {
    ...
    return { "visitDay" => $MonthVisits{ $year . $month } };
    }
    else {
    return 0;
    }

    }
    • Si vous arrivez en début de section, vous pouvez effectuer vos traitement
    • A la fin vous renvoyer un libellé qui sera utilisable dans vos templates ("visitDay"), stocké dans une variable.
    • Quand la ligne de début de la zone de lecture qui vous intéresse n'est pas trouvé, vous renvoyez "faux"(0)
  • "activer" ce plugin en rajoutant une référence à 'getVisitDay' dans "get_mail_Subject"
    Codesub get_mail_Subject {

    # plugin 2
    addToHeadPlugins( &getVisitDay( @_ ) );
    }
  • Ouvrir "titleTemplate.html" Puis rajouter une référence au champ libellé cité plus haut
    Code<TMPL_VAR NAME="visitDay">



Voila c'est tout ...
mumuri cinemona.com
mumuri
mumuri
Messages : 14 377

  • allo ciné
  • astuces de jeux vidéos
  • livres bds roman
  • forum
  • dessin animé
  • smileys
  • avis films & streaming
  • séries télé
  • actualité de jeux vidéos
  • avis livres
  • bourse
  • anime
Tous droits réservés © 2002-2009 . Top flood. Crédits des logiciels tiers     .