#CACHE{0} [(#REM) Afficher des stats dans l'admin avec des boucles data : - Le nombre de visites sur la période (en ce moment | aujourd'hui | hier ) - Les articles lus sur la période, ordonnés par nombre de visites - Les domaines affulents sur la période (éventuellement par article), ordonnés par nombre de visites Array a2192 => Array visites => 1557 a58360 => Array visites => 787 - Les domaines affluents (éventuellement d'un article) et leurs liens entrant, ordonnés par leur nombre de visites. Array monsite => Array visites => 1 sites_affluents => Array 0 => http://www.monsite.net/Organisations.html ] [(#ENV{objet,''}|=={article}|oui) [(#ENV{id_objet}|setenv{id_article})] ] [(#REM) types de sites affluents) ] [(#SET{reg_moteurs,^([(#VAL|regexp_moteurs)])$})] #SET{reg_reseaux_sociaux,"Facebook|^t$|Mamot|Twitter"} #SET{reg_emails,"outlook"} [(#REM) Régler la date (actuellement, aujourd'hui, hier) ] [(#REM) Aujourd'hui : date du jour ] #SET{date,#DATE|affdate{Y-m-d}} [(#REM) Actuellement : date du fichier de visite le plus recemment modifié ] #SET{date,#VAL{Y-m-d H:i:s}|date{#MTIME}} #SET{maj,#GET{date}} [(#REM) Hier : date de la veille ] [(#ENV{jour}|=={veille}|oui) #SET{date,#VAL{Y-m-d}|date{#VAL{-1 day}|strtotime} ] [(#REM) Peupler les tableaux de stats (articles, domaines affluents) ] #SET{articles_lus,#ARRAY} #SET{sites_affluents,#ARRAY} #SET{referers_articles,#ARRAY} #SET{reg_domaine,"^[a-zA-Z_-]+://([a-zA-Z]+\.)?([a-zA-Z]+\.)?([a-zA-Z0-9-_]+)\.((?:com|co)\.)?([a-zA-Z]{2,3})"} [(#REM) Si la période n'est pas précisée parcourir les fichiers de visites en cours dans tmp/visites et enregistrer les données dans des tableaux (articles lus, sites affluents, et nombre de visites sur les articles) ] [(#REM)
#FILE
] [(#REM) #CLE -> [(#VALEUR|print)]
] #SET{type,#CLE|explode{" "}|table_valeur{0}} #SET{id,#CLE|explode{" "}|table_valeur{1}} #SET{referrer,#CLE|explode{" "}|table_valeur{2}} [(#REM) Récupérer les articles lus ordonnés par nombre de visites ] [(#GET{type}|=={article}|oui) #SET{valeurs_actuelles,#GET{articles_lus}|table_valeur{a#GET{id}}|sinon{#ARRAY}} #SET{nb_visites,#GET{articles_lus}|table_valeur{a#GET{id}}|table_valeur{visites}|plus{1}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}} #SET{ajout,#ARRAY{a#GET{id},#GET{valeurs_actuelles}}} [(#ENV{id_article}|non) #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}} ] [(#ENV{id_article}|oui) [(#ENV{id_article}|=={#GET{id}}|oui) #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}} ] ] ] [(#REM) Récupérer les sites affluents ordonnés par leur nombre de visites, et garder les referrers. ] [(#GET{referrer}|oui) #SET{domaine,#GET{referrer}|url2domaine} #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}} #SET{nb_visites,#GET{valeurs_actuelles}|table_valeur{visites}|plus{1}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}} #SET{referers_actuels,#GET{valeurs_actuelles}|table_valeur{referers}|sinon{#ARRAY}} #SET{referers,#GET{referers_actuels}|push{#GET{referrer}}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{referers,#GET{referers}}}} #SET{ajout,#ARRAY{#GET{domaine},#GET{valeurs_actuelles}}} [(#ENV{id_article}|non) #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}} ] [(#ENV{id_article}|=={#GET{id}}|oui) #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}} ] ] #SET{visites,#TOTAL_BOUCLE} [(#REM) Cas alternatif avec période précisée : on regarde non pas dans les fichiers de session mais dans la BDD. A refaire avec la boucle date stats_referers_to_array du plugin statistiques ? ] [(#REM) Aujourd'hui / hier = boucle data sql pour obtenir les infos à la date demandée. ] #SET{reqd,#VAL{"select * from spip_visites where date='LADATE' order by maj desc limit 0,1"}|replace{LADATE,#GET{date}}} #SET{visites,#VISITES} #SET{maj,#MAJ} [(#SET{req,select * from spip_visites_articles where date=[(#DATE|affdate{Y-m-d}|_q)] order by visites desc})] #SET{demain,#VAL{Y-m-d}|date{#VAL{+1 day}|strtotime{#DATE|strtotime}} [(#SET{select,[(#VAL{"select visites_JOUR visites, referer"}|replace{JOUR,[(#ENV{jour})]})]})] [(#SET{periode,[(#VAL{"visites_JOUR"}|replace{JOUR,[(#ENV{jour})]})]})] [(#SET{req_affluents,[(#GET{select})] from spip_referers where [(#GET{periode})] > 0 order by [(#GET{periode})] desc })] [(#REM) si article dans le contexte on précise ] #SET{lendemain,#VAL{Y-m-d}|date{#VAL{+1 day}|strtotime{#GET{date}|strtotime}}} [(#ENV{id_article}|oui) [(#SET{req,select * from spip_visites_articles where date=[(#GET{date}|affdate{Y-m-d}|_q)] and id_article=[(#ENV{id_article})] order by visites desc})] [(#SET{req_affluents,[(#GET{select})] from spip_referers_articles where [(#GET{periode})] > 0 and id_article=[(#ENV{id_article})] order by [(#GET{periode})] desc })] ] [(#REM)
[(#GET{req})]
[(#GET{req_affluents})]
] #SET{valeurs_actuelles,#GET{articles_lus}|table_valeur{a#ID_ARTICLE}|sinon{#ARRAY}} #SET{nb_visites,#GET{articles_lus}|table_valeur{a#ID_ARTICLE}|table_valeur{visites}|plus{#VISITES}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}} #SET{ajout,#ARRAY{a#ID_ARTICLE,#GET{valeurs_actuelles}}} #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}} #SET{domaines,#ARRAY} #SET{valeurs_actuelles,#ARRAY} [(#REM) Referers qui ont envoyé des visites dans la période ] #SET{domaine,#REFERER|url2domaine} #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}} #SET{nb_visites,#GET{valeurs_actuelles}|table_valeur{visites}|plus{#VISITES}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}} #SET{referers_actuels,#GET{valeurs_actuelles}|table_valeur{referers}|sinon{#ARRAY}} #SET{referers,#GET{referers_actuels}|push{#REFERER}} #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{referers,#GET{referers}}}} #SET{ajout,#ARRAY{#GET{domaine},#GET{valeurs_actuelles}}} #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}} [(#ENV{id_article}|oui) #SET{visites,#GET{articles_lus}|table_valeur{a#ENV{id_article}}|table_valeur{visites}} ] [(#REM) Affichage final des données enregistrées dans les tableaux. ] [(#REM) Menu date ]
  • [(#SELF|parametre_url{jour,''}|lien_ou_expose{En ce moment,[(#ENV{jour,''}|non)],ajax})]
  • [(#SELF|parametre_url{jour,jour}|lien_ou_expose{<:date_aujourdhui|ucfirst:>,#ENV{jour,''}|=={jour},ajax})]
  • [(#SELF|parametre_url{jour,veille}|lien_ou_expose{<:date_hier|ucfirst:>,#ENV{jour,''}|=={veille},ajax})]
[

(#GET{date}|affdate) — [ (#GET{maj}|affdate{H\hi}|sinon{/na})]

]

[(#TITRE|couper{25})]Tous les articles lus

[(#REM) Afficher les tableaux ] [(#REM) [
(#GET{articles_lus}|print_r{1})
] [
(#GET{reg_moteurs})
] [
(#GET{sites_affluents}|print_r{1})
] ] #SET{reg_site,#URL_SITE_SPIP|match{#GET{reg_domaine},"i",3}} [(#SET{reg_domaines_connus,[(#GET{reg_moteurs})]|[(#GET{reg_reseaux_sociaux})]|[(#GET{reg_site})]})] #SET{total,#GET{total}|plus{#VISITES}} [(#CLE|match{#GET{reg_moteurs},"i"}|oui) #SET{total_moteurs,#GET{total_moteurs}|plus{#VISITES}} ] [(#CLE|match{#GET{reg_reseaux_sociaux}}|oui) #SET{total_reseaux_sociaux,#GET{total_reseaux_sociaux}|plus{#VISITES}} ] [(#CLE|match{#GET{reg_domaines_connus}}|non) #SET{total_autres_affluents,#GET{total_autres_affluents}|plus{#VISITES}} ] #SET{domaines_connus,#ARRAY{Moteurs de recherche,#GET{total_moteurs},Réseaux sociaux,#GET{total_reseaux_sociaux},Autres affluents,#GET{total_autres_affluents}}}
[(#REM) Afficher les données du tableau ]
    #SET{stat,#GET{visites}|number_format{0,""," "}} #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}} #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}} [(#GET{milliers}|oui) #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines} K}|replace{",0"}} ] [(#GET{milliers}|non) #SET{stat_court,#GET{stat}} ]
  • [(#GET{stat_court})]
    visite[(#GET{stat}|>{1}|?{s})]
    en cours

    Origine des visites

    • #CLE : [(#VALEUR|number_format{0,""," "})] visite[(#VALEUR|>{1}|?{s})] ([(#VALEUR|div{#GET{visites}}|mult{100}|floor)%])
    #SET{reg_recherche,^.*recherche=} #ANCRE_PAGINATION

    [(#VISITES|number_format{0,""," "})] terme[(#VISITES|>{1}|?{s})] recherché[(#VISITES|>{1}|?{s})]

    []
  • #SET{stat,#GET{articles_lus}|sizeof||number_format{0,""," "}} #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}} #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}} [(#GET{milliers}|oui) #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines} K}|replace{",0"}} ] [(#GET{milliers}|non) #SET{stat_court,#GET{stat}} ]
  • #SET{nb_articles_lus,#TOTAL_BOUCLE}
    [(#GET{nb_articles_lus}|>{1}|oui)
    [(#GET{stat_court})]
    articles lu[(#GET{stat}|>{1}|?{s})]
    ] #ANCRE_PAGINATION []
  • #SET{stat,#GET{total}|number_format{0,""," "}} #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}} #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}} [(#GET{milliers}|oui) #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines} K}|replace{",0"}} ] [(#GET{milliers}|non) #SET{stat_court,#GET{stat}} ]
    [(#GET{stat_court})]
    visite[(#GET{stat}|>{1}|?{s})]
    par [(#GRAND_TOTAL|number_format{0,""," "})] domaine[(#GRAND_TOTAL|>{1}|?{s})] affluent[(#GRAND_TOTAL|>{0}|?{s})]

    Moteurs de recherche

    [(#CLE|ucfirst)] ([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])

    Réseaux sociaux

    [(#CLE|replace{^t$,twitter}|ucfirst)] ([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])
    #ANCRE_PAGINATION

    Autres affluents

    [(#CLE|ucfirst)] ([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])

    #PAGINATION

...

stats_data version #PLUGIN{stats_data, version}.