Impressum

(Version 2) Dans Sarka-SPIP : Articles les plus/moins populaires, les plus/moins visités

vendredi 15 avril 2011
par  François Daniel Giezendanner
popularité : 1%

 Préambule

La démarche adoptée dans cet article remplace celle de l’article :

Elle est en effet plus simple quand à la manière d’exploiter les mots-clés.

La technique consiste à exploiter les boucles imbriquées SPIP (GROUPES_MOTS) et (MOTS) qui testent l’existence d’un mot-clé. De cette manière il n’est plus nécessaire d’attribuer ces mots-clés à un article.

 Présentation

La distinction entre popularité et nombre total de visites a été discutée ici :

En standard Sarka-SPIP permet d’afficher une liste de quelques articles au « hit-parade » en choisissant selon deux critères uniquement :

  1. Uniquement le hit-parade des articles les plus visités du site
  2. Uniquement la liste des articles choisis au hasard
  3. Les deux

Le cas no 1 privilégie les articles les plus visités et créé donc un biais vers l’amplification de la statistique des articles les plus visités alors que le cas no 2 est neutre.

Ainsi que nous l’avons mentionné dans l’article :

il serait très utile d’offrir la possibilité d’afficher tout ou partie des choix suivants :

  1. Le hit-parade des articles les plus visités du site
  2. Le hit-parade des articles les plus populaires du site
  3. Le hit-parade des articles les moins visités du site
  4. Le hit-parade des articles les moins populaires du site
  5. La liste des articles choisis au hasard
  6. Tous

Cela permettrait d’une part de distinguer la popularité des articles du nombre total de visites et d’offrir une chance à des articles très intéressants d’être lus alors qu’ils ont disparu au fond des statistiques pour des raisons conjoncturelles, de modes ou autre.


 Démarche Adoptée : Boucles (GROUPES_MOTS) et (MOTS)

Nous désirons faire apparaître sélectivement au choix les listes d’articles suivantes :

  1. Le hit-parade des articles les plus visités du site
  2. Le hit-parade des articles les moins populaires du site
  3. Le hit-parade des articles les moins visités du site

La technique consiste à exploiter les Boucles imbriquées SPIP (GROUPES_MOTS) et (MOTS) qui testent l’existence d’un mot-clé. De cette manière il n’est plus nécessaire d’attribuer ces mots-clés à un article. Une description est donnée ici :

Les mots-clés sont créés dans le groupe de mots-clés « squelette_habillage ». Les 3 mots-clés sont :

  1. article_plusvisites
  2. article_moinspopulaires
  3. article_moinsvisites

Comme ci-dessus les « hit-parades » sont tous activés. Pour les désactiver il suffit d’ajouter, supprimer et/ou modifier un ou plusieurs caractères aux mots-clés, par exemple on les désactive tous en leur ajoutant 3 tirets :

  1. article_plusvisites---
  2. article_moinspopulaires---
  3. article_moinsvisites---

On désactive les moins populaires :

  1. article_plusvisites
  2. article_moinspopulaires---
  3. article_moinsvisites

etc.

No Hit-parade des articles Mots-clés Condition
1 les plus visités du site article_plusvisites Existence du mot-clé
2 les moins populaires du site article_moinspopulaires Existence du mot-clé
3 les moins visités du site article_moinsvisites Existence du mot-clé

 Le CODE SPIP

Nous avons implémenté ces fonctionnalités dans la version Sarka304-SEM3-2. Chacune des trois nouvelles listes (plus visités, moins populaires, moins visités) est sélectionnable par mots-clés.

Nous modifions deux fichiers :

  • /plugins/sarka-spip304/noisettes/statistiques/inc_stats_articles_populaires.html
  • /plugins/sarka-spip304/lang/sarkaspip_fr.php

 Fichier inc_stats_articles_populaires.html

Il se présente comme suit pour le code produisant la liste des articles « Les plus populaires » :

[(#REM) <!-- affichage du hit-parade des articles --> ]
<B_hitparade>
        [(#CONFIG{sarkaspip_noisettes/composition_stats_2, 3}|match{^(1|3)$}|?{' '})
                <h1 class="intitule"><:sarkaspip:hit_parade:></h1>
        ]
        <div class="contenu">
                <h2 class="titre_bloc"><:sarkaspip:top_articles:></h2>
                <div class="liste"><ul>
<BOUCLE_hitparade(ARTICLES){id_secteur!==#RACINE_SPECIALISEE}{par popularite}{inverse}{0,#CONFIG{sarkaspip_noisettes/max_articles_top, 5}}>
                        [<li><a class="titre" href="#URL_ARTICLE"[ title="(#POPULARITE)&nbsp;%&nbsp;"]>
                                (#TITRE)
                        </a></li>]
</BOUCLE_hitparade>
                </ul></div>
        </div>
</B_hitparade>

Nous le modifions comme ceci : au code produisant la liste des articles « Les plus populaires », nous ajoutons le codes produisant la liste des articles « Les plus visités », la liste des articles « Les moins populaires » et la liste des articles « Les moins visités » :

[(#REM) <!-- affichage du hit-parade des articles --> ]

[(#REM) <!-- affichage des articles les plus populaires du site --> ]
<B_hitparade>
        [(#CONFIG{sarkaspip_noisettes/composition_stats_2, 3}|match{^(1|3)$}|?{' '})
                <h1 class="intitule"><:sarkaspip:hit_parade:></h1>
        ]
        <div class="contenu">
                <h2 class="titre_bloc"><:sarkaspip:top_articles:></h2>
                <div class="liste"><ul>
<BOUCLE_hitparade(ARTICLES){id_secteur!==#RACINE_SPECIALISEE}{par popularite}{inverse}{0,#CONFIG{sarkaspip_noisettes/max_articles_top, 5}}>
                        [<li><a class="titre" href="#URL_ARTICLE"[ title="(#POPULARITE)&nbsp;%&nbsp;"]><div style="font-weight: normal;">
                                (#TITRE)
                        </div></a></li>]
</BOUCLE_hitparade>
                </ul></div>
        </div>
</B_hitparade>


[(#REM) <!-- ==============  Début Compléments FDG  ============== --> ]

[(#REM) <!-- FDG : Test s-il faut affichager les articles les Plus Visites du site --> ]
<BOUCLE_groupes1(GROUPES_MOTS){titre=squelette_habillage}>
        <BOUCLE_mots1(MOTS){id_groupe}{titre=article_plusvisites}>
                 [(#REM) <!-- affichage des articles les plus visités du site --> ]
                <B_hitparade2>
                        [(#CONFIG{sarkaspip_noisettes/composition_stats_2, 3}|match{^(1|3)$}|?{' '})
                        ]
                        <div class="contenu">
                                <h2 class="titre_bloc"><:sarkaspip:top_visites:></h2>
                                <div class="liste"><ul>
                <BOUCLE_hitparade2(ARTICLES){id_secteur!==#RACINE_SPECIALISEE}{par visites}{inverse}{0,#CONFIG{sarkaspip_noisettes/max_articles_top, 5}}{doublons}>
                                        [<li><a class="titre" href="#URL_ARTICLE"[ title="(#POPULARITE)&nbsp;%&nbsp;"]><div style="font-weight: normal;">
                                                (#TITRE)
                                        </div></a></li>]
                </BOUCLE_hitparade2>
                                </ul></div>
                        </div>
                </B_hitparade2>
        </BOUCLE_mots1>
</BOUCLE_groupes1>

[(#REM) <!-- FDG : Test s-il faut affichager les articles les Moins Populaires du site --> ]
<BOUCLE_groupes2(GROUPES_MOTS){titre=squelette_habillage}>
        <BOUCLE_mots2(MOTS){id_groupe}{titre=article_moinspopulaires}>
                [(#REM) <!-- affichage des articles les moins populaires du site --> ]
                <B_hitparade1>
                        [(#CONFIG{sarkaspip_noisettes/composition_stats_2, 3}|match{^(1|3)$}|?{' '})
                        ]
                        <div class="contenu">
                                <h2 class="titre_bloc"><:sarkaspip:topmin_articles:></h2>
                                <div class="liste"><ul>
                <BOUCLE_hitparade1(ARTICLES){id_secteur!==#RACINE_SPECIALISEE}{par popularite}{0,#CONFIG{sarkaspip_noisettes/max_articles_top, 5}}{doublons}>
                                        [<li><a class="titre" href="#URL_ARTICLE"[ title="(#POPULARITE)&nbsp;%&nbsp;"]><div style="font-weight: normal;">
                                                (#TITRE)
                                        </div></a></li>]
                </BOUCLE_hitparade1>
                                </ul></div>
                        </div>
                </B_hitparade1>
</BOUCLE_mots2>
</BOUCLE_groupes2>


[(#REM) <!-- FDG : Test s-il faut affichager les articles les Moins Visités du site --> ]
<BOUCLE_groupes3(GROUPES_MOTS){titre=squelette_habillage}>
        <BOUCLE_mots3(MOTS){id_groupe}{titre=article_moinsvisites}>
                <B_hitparade3>
                        [(#CONFIG{sarkaspip_noisettes/composition_stats_2, 3}|match{^(1|3)$}|?{' '})
                        ]
                        <div class="contenu">
                                <h2 class="titre_bloc"><:sarkaspip:topmin_visites:></h2>
                                <div class="liste"><ul>
                <BOUCLE_hitparade3(ARTICLES){id_secteur!==#RACINE_SPECIALISEE}{par visites}{0,#CONFIG{sarkaspip_noisettes/max_articles_top, 5}}{doublons}>
                                        [<li><a class="titre" href="#URL_ARTICLE"[ title="(#POPULARITE)&nbsp;%&nbsp;"]><div style="font-weight: normal;">
                                                (#TITRE)
                                        </div></a></li>]
                </BOUCLE_hitparade3>
                                </ul></div>
                        </div>
                </B_hitparade3>
</BOUCLE_mots3>
</BOUCLE_groupes3>

[(#REM) <!-- ==============  Fin Compléments FDG  ============== --> ]

 Fichier sarkaspip_fr.php

A la lettre T il se présente comme suit :

// T
        'themes_site' => 'Th&egrave;mes',
        'titre_rubriques_filles' => 'Suivez aussi les sous-rubriques ci-dessous',
        'top_articles' => 'Les plus populaires',
        'tri_par_auteur' => 'Par auteur',
        'tri_par_date' => 'Par date',
        'tri_par_rubrique' => 'Par rubrique',

Nous le modifions comme ceci :

// T
        'themes_site' => 'Th&egrave;mes',
        'titre_rubriques_filles' => 'Suivez aussi les sous-rubriques ci-dessous',
        'top_articles' => 'Les plus populaires',
        'topmin_articles' => 'Les moins populaires',
        'top_visites' => 'Les plus visités',
        'topmin_visites' => 'Les moins visités',
        'tri_par_auteur' => 'Par auteur',
        'tri_par_date' => 'Par date',
        'tri_par_rubrique' => 'Par rubrique',

Publications

Derniers articles publiés

Agenda

<<

2018

 

<<

Juin

 

Aujourd'hui

LuMaMeJeVeSaDi
28293031123
45678910
11121314151617
18192021222324
2526272829301
Aucun évènement à venir les 6 prochains mois

Météo

Ville(SZXX0013)

Conditions météo à 0h0
par weather.com®

Inconnu

°C


Inconnu
  • Vent :  km/h - N/D
  • Pression :  mbar tendance symbole
Prévisions >>


Annonces

Embed Twitter « responsive tools »

Pour le faire sur votre site


Embed Twitter « RWD »

Pour le faire sur votre site


Embed Twitter dans SPIP

Pour le faire sur votre site


Sites favoris


4 sites référencés dans ce secteur