Changeset 109118 in spip-zone


Ignore:
Timestamp:
Feb 24, 2018, 6:31:14 PM (17 months ago)
Author:
booz@…
Message:

menage

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/stats_data/inclure/stats_data.html

    r109117 r109118  
     1#CACHE{0}
     2[(#REM)
     3        Afficher des stats (actuellement, aujourd'hui,hier), avec des boucles data :
     4        - le nombre de visites sur la période (en ce moment ou un jour donné (aujourd'hui ou hier))
     5        - les articles lus sur la période, ordonnés par nombre de visites
     6                Array
     7                        c2192 => Array
     8                                visites => 1557
     9               
     10                        c58360 => Array
     11                                visites => 787
     12               
     13        - les domaines affluents (d'un article) et leurs liens entrant, ordonnés par leur nombre de visites.
     14                Array
     15                        monsite => Array
     16                                visites => 1
     17                                0 => http://www.monsite.net/Organisations.html
     18               
     19                        google => Array
     20                                visites => 168
     21                                0 => http://www.google.ca/
     22                                1 => http://www.google.ht/
     23                                2 => http://www.google.co.in/
     24                                3 => http://www.google.de/
     25]
     26<style type="text/css">
     27#conteneur_stats{
     28
     29}
     30#data_stats{
     31        margin:40px 0;
     32}
     33#data_stats li > p{
     34        margin-left:10px;
     35}
     36#data_stats > li {
     37        float:left;
     38        width:33%;
     39        list-style-type:none;
     40}
     41#data_stats ul{
     42        margin:0;
     43        padding:0;
     44        list-style-type:none;
     45}
     46.stats_valeur{
     47        margin-top: 0.3em;
     48        font-size:5em;
     49        font-weight:bold;
     50        height:0.8em;
     51}
     52.stats_visites #data_stats > li{
     53        height:250px;
     54        overflow:auto;
     55}
     56</style>
     57
     58[(#REM) Menu date ]
     59
     60<div class="onglets_simple clearfix">
     61        <ul>
     62                <li>[(#SELF|parametre_url{jour,''}|lien_ou_expose{En ce moment,[(#ENV{jour,''}|non)],ajax})]</li>
     63                <li>[(#SELF|parametre_url{jour,jour}|lien_ou_expose{<:date_aujourdhui|ucfirst:>,#ENV{jour,''}|=={jour},ajax})]</li>
     64                <li>[(#SELF|parametre_url{jour,veille}|lien_ou_expose{<:date_hier|ucfirst:>,#ENV{jour,''}|=={veille},ajax})]</li>
     65        </ul>
     66</div>
     67
     68[(#REM) Régler la date (actuellement, aujourd'hui, hier) ]
     69
     70[(#REM) Aujourd'hui : date du jour ]
     71#SET{date,#DATE|affdate{Y-m-d}}
     72
     73[(#REM) Actuellement : date du fichier de visite le plus recemment modifié ]
     74<BOUCLE_derniere_visite(DATA){si #ENV{jour}|non}{source ls,#CHEMIN{tmp/visites}/*}{!par mtime}{0,1}>
     75#SET{date,#VAL{Y-m-d H:i:s}|date{#MTIME}}
     76#SET{maj,#GET{date}}
     77</BOUCLE_derniere_visite>
     78
     79[(#REM) Hier : date de la veille ]
     80[(#ENV{jour}|=={veille}|oui) #SET{date,#VAL{Y-m-d}|date{#VAL{-1 day}|strtotime} ]
     81
     82[(#REM) Peupler les tableaux de stats (articles, domaines affluents) ]
     83
     84#SET{articles_lus,#ARRAY}
     85#SET{sites_affluents,#ARRAY}
     86
     87#SET{reg_domaine,"^[a-zA-Z_-]+://([a-zA-Z]+\.)?([a-zA-Z]+\.)?((?!com|co)[a-zA-Z0-9-_]+)\.((?:com|co)\.)?([a-zA-Z]{2,3})"}
     88       
     89[(#REM) Actuellement : Parcourir les fichiers dans tmp/visites et récuperer les données dans deux tableaux (articles lus et sites affluents) ]
     90
     91<BOUCLE_visites(DATA){source ls,#CHEMIN{tmp/visites}/*}{si #ENV{jour}|non}><BOUCLE_visite(DATA){source file,#FILE}><BOUCLE_pages_vues(DATA){source table,#VALEUR|unserialize}>
     92
     93#SET{type,#CLE|explode{"        "}|table_valeur{0}}
     94#SET{id,#CLE|explode{"  "}|table_valeur{1}}
     95#SET{referrer,#CLE|explode{"    "}|table_valeur{2}}
     96
     97[(#REM)
     98        Récupérer les articles lus ordonnés par nombre de visites
     99]
     100[(#GET{type}|=={article}|oui)
     101       
     102        [(#ENV{id_article}|non)
     103                #SET{valeurs_actuelles,#GET{articles_lus}|table_valeur{c#GET{id}}|sinon{#ARRAY}}
     104                #SET{nb_visites,#GET{articles_lus}|table_valeur{c#GET{id}}|table_valeur{visites}|plus{1}}
     105                #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     106               
     107                #SET{ajout,#ARRAY{c#GET{id},#GET{valeurs_actuelles}}}
     108                #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}}
     109        ]
     110        [(#ENV{id_article}|oui)
     111                [(#ENV{id_article}|=={#GET{id}}|oui)
     112                        #SET{valeurs_actuelles,#GET{articles_lus}|table_valeur{c#GET{id}}|sinon{#ARRAY}}
     113                        #SET{nb_visites,#GET{articles_lus}|table_valeur{c#GET{id}}|table_valeur{visites}|plus{1}}
     114                        #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     115                       
     116                        #SET{ajout,#ARRAY{c#GET{id},#GET{valeurs_actuelles}}}
     117                        #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}}
     118                ]
     119        ]
     120]
     121
     122[(#REM)
     123        Récupérer les sites affluents ordonnés par leur nombre de visites, et garder les referrers.
     124]
     125[(#GET{referrer}|oui)
     126        #SET{domaine,#GET{referrer}|match{#GET{reg_domaine},"i",3}}
     127       
     128        [(#ENV{id_article}|non)
     129                #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}}
     130               
     131                #SET{nb_visites,#GET{sites_affluents}|table_valeur{#GET{domaine}}|table_valeur{visites}|plus{1}}
     132                #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     133       
     134                #SET{ajout,#ARRAY{#GET{domaine},#GET{valeurs_actuelles}|push{#GET{referrer}}}}
     135                #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}}
     136        ]
     137        [(#ENV{id_article}|=={#GET{id}}|oui)
     138                #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}}
     139               
     140                #SET{nb_visites,#GET{sites_affluents}|table_valeur{#GET{domaine}}|table_valeur{visites}|plus{1}}
     141                #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     142               
     143                #SET{ajout,#ARRAY{#GET{domaine},#GET{valeurs_actuelles}|push{#GET{referrer}}}}
     144                #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}}
     145        ]
     146]
     147</BOUCLE_pages_vues></BOUCLE_visite></BOUCLE_visites>
     148#SET{visites,#TOTAL_BOUCLE}
     149</B_visites>
     150       
     151        [(#REM) Aujourd'hui / hier = boucle data sql pour obtenir les infos à la date demandée. ]
     152       
     153        #SET{reqd,#VAL{"select * from spip_visites where date='LADATE' order by maj desc limit 0,1"}|replace{LADATE,#GET{date}}}
     154       
     155        <BOUCLE_visites_jour(DATA){si #ENV{jour}}{source sql,#GET{reqd}}>
     156        #SET{visites,#VISITES}
     157        #SET{maj,#MAJ}
     158       
     159        [(#SET{req,select * from spip_visites_articles where date=[(#DATE|affdate{Y-m-d}|_q)] order by visites desc})]
     160       
     161        #SET{demain,#VAL{Y-m-d}|date{#VAL{+1 day}|strtotime{#DATE|strtotime}}
     162       
     163        [(#SET{req_affluents,select * from spip_referers where maj > [(#DATE|affdate{Y-m-d}|_q)] and maj < [(#GET{demain}|_q)] [ and visites_jour > 0 (#ENV{jour}|=={jour}|oui) order by visites_jour desc] [ and visites_veille > 0 (#ENV{jour}|=={veille}|oui) order by visites_jour desc] })]
     164       
     165        #SET{demain,#VAL{Y-m-d}|date{#VAL{+1 day}|strtotime{#MAJ|strtotime}}}
     166       
     167        [(#ENV{id_article}|oui)
     168                [(#SET{req,select * from spip_visites_articles where date=[(#DATE|affdate{Y-m-d}|_q)] and id_article=[(#ENV{id_article})] order by visites desc})]
     169                [(#SET{req_affluents,select * from spip_referers_articles where maj > [(#MAJ|affdate{Y-m-d}|_q)] and maj < [(#GET{demain}|_q)] and id_article=[(#ENV{id_article})]})]
     170        ]
     171       
     172        </BOUCLE_visites_jour>
     173               
     174        [(#REM)
     175                <hr>
     176                [(#GET{req})]
     177                <hr>
     178                [(#GET{req_affluents})]
     179                <hr>
     180        ]
     181        <BOUCLE_articles_jour(DATA){source sql,#GET{req}}>
     182               
     183                #SET{valeurs_actuelles,#GET{articles_lus}|table_valeur{c#ID_ARTICLE}|sinon{#ARRAY}}
     184               
     185                #SET{nb_visites,#GET{articles_lus}|table_valeur{c#ID_ARTICLE}|table_valeur{visites}|plus{#VISITES}}
     186                #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     187       
     188                #SET{ajout,#ARRAY{c#ID_ARTICLE,#GET{valeurs_actuelles}}}
     189                #SET{articles_lus,#GET{articles_lus}|array_merge{#GET{ajout}}}
     190               
     191        </BOUCLE_articles_jour>
     192       
     193        #SET{domaines,#ARRAY}
     194        #SET{valeurs_actuelles,#ARRAY}
     195        <BOUCLE_affluents_jour_(DATA){source sql,#GET{req_affluents}}>
     196                #SET{domaine,#REFERER|match{#GET{reg_domaine},"i",3}}
     197               
     198                #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}}
     199               
     200                #SET{nb_visites,#GET{sites_affluents}|table_valeur{#GET{domaine}}|table_valeur{visites}|plus{1}}
     201                #SET{valeurs_actuelles,#GET{valeurs_actuelles}|array_merge{#ARRAY{visites,#GET{nb_visites}}}}
     202               
     203                #SET{ajout,#ARRAY{#GET{domaine},#GET{valeurs_actuelles}|push{#REFERER}}}
     204                #SET{sites_affluents,#GET{sites_affluents}|array_merge{#GET{ajout}}}
     205        </BOUCLE_affluents_jour_>
     206       
     207<//B_visites>
     208
     209[(#ENV{id_article}|oui) #SET{visites,#GET{articles_lus}|table_valeur{c#ENV{id_article}}|table_valeur{visites}} ]
     210
     211[(#REM) Afficher les tableaux ]
     212
     213[(#REM)
     214[<pre><code>(#GET{articles_lus}|print_r{1})</code></pre>]
     215[<pre><code>(#GET{sites_affluents}|print_r{1})</code></pre>]
     216]
     217
     218<div id="conteneur_stats">
     219       
     220        [(#REM) Afficher la date ]
     221       
     222        [<h2><a href="[(#SELF|parametre_url{id_article,''})]">(#GET{date}|affdate)</a><small title="Dernière mise à jour le [(#GET{maj}|affdate)] [ (#GET{maj}|affdate{H\hi s})s]"> — [ (#GET{maj}|affdate{H\hi})</small>]</h2>]
     223       
     224        [(#REM) Afficher les données du tableau ]
     225       
     226        <ul id="data_stats">
     227               
     228                #SET{stat,#GET{visites}|number_format{0,""," "}}
     229                #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}}
     230                #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}}
     231                [(#GET{milliers}|oui)
     232                        #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines}&nbsp;K}|replace{",0"}}
     233                ]
     234                [(#GET{milliers}|non)
     235                        #SET{stat_court,#GET{stat}}
     236                ]
     237                <li class="prem">
     238                        <div class="stats_valeur" title="[(#GET{stat})] visites">[(#GET{stat_court})]</div>
     239                        <p><strong>visite[(#GET{stat}|>{0}|?{s})] [(#ENV{jour}|non) en cours]</strong></p>
     240                </li>
     241               
     242                #SET{stat,#GET{articles_lus}|sizeof||number_format{0,""," "}}
     243                #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}}
     244                #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}}
     245                [(#GET{milliers}|oui)
     246                        #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines}&nbsp;K}|replace{",0"}}
     247                ]
     248                [(#GET{milliers}|non)
     249                        #SET{stat_court,#GET{stat}}
     250                ]
     251                <li>
     252                        <div>
     253                                <div class="stats_valeur" title="[(#GET{stat})] articles lus">[(#GET{stat_court})]</div>
     254                                <p><strong>articles lu[(#GET{stat}|>{0}|?{s})]</strong></p>
     255                                <B_articles>
     256                                #ANCRE_PAGINATION
     257                                <ul>
     258                                        <BOUCLE_articles(DATA){source table,#GET{articles_lus}}{!par visites}{pagination 50}>
     259                                        <li>
     260                                        <small>[(#VISITES)] personnes</small>
     261                                        <BOUCLE_article(ARTICLES){id_article=#CLE|replace{^c}}>
     262                                                 - <a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
     263                                        </BOUCLE_article>
     264                                        </li>
     265                                        </BOUCLE_articles>
     266                                </ul>
     267                                <p>#PAGINATION</p>
     268                                </B_articles>
     269                        </div>
     270                </li>
     271               
     272                <BOUCLE_total_visites_domaine(DATA){source table,#GET{sites_affluents}}>
     273                        #SET{total,#GET{total}|plus{#VISITES}}
     274                </BOUCLE_total_visites_domaine>
     275               
     276                <B_affluents>
     277                <li>
     278                        #SET{stat,#GET{total}|number_format{0,""," "}}
     279                        #SET{milliers,#GET{stat}|match{(\d+ )(\d)\d\d,u,1}}
     280                        #SET{centaines,#GET{stat}|match{(\d+) (\d)\d\d,u,2}}
     281                        [(#GET{milliers}|oui)
     282                                #SET{stat_court,#GET{milliers}|trim|concat{","}|concat{#GET{centaines}&nbsp;K}|replace{",0"}}
     283                        ]
     284                        [(#GET{milliers}|non)
     285                                #SET{stat_court,#GET{stat}}
     286                        ]
     287                        <div style="padding-left:40px">
     288                                <div class="stats_valeur" title="[(#GET{stat})] visites">[(#GET{stat_court})]</div>
     289                                <p><strong>visite[(#GET{stat}|>{0}|?{s})] par [(#GRAND_TOTAL|number_format{0," "," "})] domaine[(#GRAND_TOTAL|>{0}|?{s})] affluent[(#GRAND_TOTAL|>{0}|?{s})]</strong></p>
     290                                #ANCRE_PAGINATION
     291                                <ul style="margin-top:10px">
     292                                        <BOUCLE_affluents(DATA){source table,#GET{sites_affluents}}{!par visites}{pagination 10}>
     293                                        <li>
     294                                                <h3>[(#CLE|ucfirst)] <small>([(#VISITES) visite[(#VISITES|>{1}|?{s})]])</small></h3>
     295                                               
     296                                                <B_referers_>
     297                                                <ul style="margin-bottom:10px;height:4em;overflow:auto;">
     298                                                <BOUCLE_referers_(DATA){source table, #VALEUR|array_unique}{cle!=visites}{par valeur}>
     299                                                        [<li><a href="(#VALEUR)">[(#VALEUR|replace{^https?://}|replace{"\?.*$"}|couper{30})]</a></li>]
     300                                                </BOUCLE_referers_>
     301                                                </ul>
     302                                                </B_referers_>
     303                                        </li>
     304                                        </BOUCLE_affluents>
     305                                </ul>
     306                                <p>#PAGINATION</p>
     307                        </div>
     308                </li>
     309                </B_affluents>
     310        </ul>
     311       
     312</div>
     313<p style="text-align:center">...</p>
     314<hr>
Note: See TracChangeset for help on using the changeset viewer.