Changeset 112286 in spip-zone


Ignore:
Timestamp:
Nov 2, 2018, 8:16:44 PM (7 months ago)
Author:
booz@…
Message:

se fier a engin-list.txt pour la liste de moteur et afficher les liens pour chaque site affluent

Location:
_plugins_/stats_data
Files:
2 edited

Legend:

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

    r109990 r112286  
    2222]
    2323
     24[(#REM) types de sites affluents) ]
     25
     26[(#SET{reg_moteurs,^([(#VAL|regexp_moteurs)])$})]
     27#SET{reg_reseaux_sociaux,"Facebook|^t$|Mamot|Twitter"}
     28#SET{reg_emails,"outlook"}
     29
    2430[(#REM) Régler la date (actuellement, aujourd'hui, hier) ]
    2531
     
    4248#SET{referers_articles,#ARRAY}
    4349
    44 #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})"}
     50#SET{reg_domaine,"^[a-zA-Z_-]+://([a-zA-Z]+\.)?([a-zA-Z]+\.)?([a-zA-Z0-9-_]+)\.((?:com|co)\.)?([a-zA-Z]{2,3})"}
    4551
    4652[(#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) ]
    4753
    48 <BOUCLE_visites(DATA){source ls,#EVAL{_DIR_TMP . 'visites'}/*}{si #ENV{jour}|non}> [(#REM)<hr>#FILE<hr>] <BOUCLE_visite(DATA){source file,#FILE}> <BOUCLE_pages_vues(DATA){source table,#VALEUR|unserialize}>[(#REM)#CLE -> [(#VALEUR|print)]<br>]
     54<BOUCLE_visites(DATA){source ls,#EVAL{_DIR_TMP . 'visites'}/*}{si #ENV{jour}|non}> [(#REM) <hr>#FILE<hr>] <BOUCLE_visite(DATA){source file,#FILE}> <BOUCLE_pages_vues(DATA){source table,#VALEUR|unserialize}>[(#REM) #CLE -> [(#VALEUR|print)]<br>]
    4955#SET{type,#CLE|explode{"        "}|table_valeur{0}}
    5056#SET{id,#CLE|explode{"  "}|table_valeur{1}}
     
    7480]
    7581[(#GET{referrer}|oui)
    76         #SET{domaine,#GET{referrer}|match{#GET{reg_domaine},"i",3}}
     82
     83        #SET{domaine,#GET{referrer}|url2domaine}
    7784        #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}}
    7885       
     
    149156        <BOUCLE_affluents_jour_(DATA){source sql,#GET{req_affluents}}>
    150157               
    151                 #SET{domaine,#REFERER|match{#GET{reg_domaine},"i",3}}
     158                #SET{domaine,#REFERER|url2domaine}
    152159                #SET{valeurs_actuelles,#GET{sites_affluents}|table_valeur{#GET{domaine}}|sinon{#ARRAY}}
    153160               
     
    246253        margin-top:0;
    247254}
     255
     256dl.liste_affluents {
     257        max-height:15em;
     258        overflow:auto;
     259        margin: 0.75em 0;
     260        padding: 0 1em;
     261}
     262
     263dl.liste_affluents > dt:before {
     264        content: "";
     265        border-color: transparent #111;
     266        border-style: solid;
     267        border-width: 0.35em 0 0.35em 0.45em;
     268        display: block;
     269        height: 0;
     270        width: 0;
     271        left: -0.8em;
     272        top: 0.8em;
     273        position: relative;
     274}
     275
     276dl.liste_affluents > dt {
     277        line-height:0.9em;
     278        cursor:pointer;
     279}
     280
     281dl.liste_affluents > dd {
     282        display:none;
     283}
     284
    248285</style>
    249286
     
    276313[(#REM)
    277314[<pre><code>(#GET{articles_lus}|print_r{1})</code></pre>]
    278 ]
    279 
    280 #SET{reg_moteurs,"Google|Duckduckgo|Yahoo|Baidu|Bing|Yandex"}
    281 #SET{reg_reseaux_sociaux,"Facebook|^t$"}
    282 #SET{reg_emails,"outlook"}
     315[<pre><code>(#GET{reg_moteurs})</code></pre>]
     316[<pre><code>(#GET{sites_affluents}|print_r{1})</code></pre>]
     317]
     318
    283319#SET{reg_site,#URL_SITE_SPIP|match{#GET{reg_domaine},"i",3}}
    284320[(#SET{reg_domaines_connus,[(#GET{reg_moteurs})]|[(#GET{reg_reseaux_sociaux})]|[(#GET{reg_site})]})]
     
    286322<BOUCLE_total_visites_domaine(DATA){source table,#GET{sites_affluents}}>
    287323        #SET{total,#GET{total}|plus{#VISITES}}
    288         [(#CLE|match{#GET{reg_moteurs}}|oui) #SET{total_moteurs,#GET{total_moteurs}|plus{#VISITES}} ]
     324        [(#CLE|match{#GET{reg_moteurs},"i"}|oui) #SET{total_moteurs,#GET{total_moteurs}|plus{#VISITES}} ]
    289325        [(#CLE|match{#GET{reg_reseaux_sociaux}}|oui) #SET{total_reseaux_sociaux,#GET{total_reseaux_sociaux}|plus{#VISITES}} ]
    290326        [(#CLE|match{#GET{reg_domaines_connus}}|non) #SET{total_autres_affluents,#GET{total_autres_affluents}|plus{#VISITES}} ]
     
    324360                                <ul>
    325361                                        <BOUCLE_domaines_connus(DATA){source table,#GET{domaines_connus}}{!par valeur}>
    326                                         <li>#CLE : [(#VALEUR|number_format{0,""," "})] visites <small>([(#VALEUR|div{#GET{visites}}|mult{100}|floor)%])</small></li>
     362                                        <li>#CLE : [(#VALEUR|number_format{0,""," "})] visite[(#VALEUR|>{1}|?{s})] <small>([(#VALEUR|div{#GET{visites}}|mult{100}|floor)%])</small></li>
    327363                                        </BOUCLE_domaines_connus>
    328364                                </ul>
     
    331367                                        <B_recherche>
    332368                                        #ANCRE_PAGINATION
    333                                         <h3>[(#VISITES||number_format{0,""," "})] terme[(#VISITES|>{1}|?{s})] recherché[(#VISITES|>{1}|?{s})]</h3>
     369                                        <h3>[(#VISITES|number_format{0,""," "})] terme[(#VISITES|>{1}|?{s})] recherché[(#VISITES|>{1}|?{s})]</h3>
    334370                                        <ul style="margin-bottom:10px;height:30em;overflow:auto;">
    335371                                        <BOUCLE_recherche(DATA){source termes_recherches,#REFERERS|array_unique}{pagination 50}>
     
    409445                                <h3 class="premier" title="[(#GET{total_moteurs})] visites">Moteurs de recherche</h3>
    410446                               
    411                                 <ul class="valeur">
     447                                <dl class="liste_affluents">
    412448                                <BOUCLE_moteurs_recherche(DATA){source table,#GET{sites_affluents}}{cle==#GET{reg_moteurs}}{!par visites}>
    413                                 <li>[(#CLE|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></li>
     449                                <dt>[(#CLE|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></dt>
     450                                <dd>
     451                                        <ul>
     452                                                <BOUCLE_pagesm(DATA){source table,#REFERERS|compter_referers}{!par visites}>
     453                                                <li><a href="#URL" title="#CLE">[(#PATH|sinon{#CLE}|couper{25})]</a> <small>(#VISITES)</small></li>
     454                                                </BOUCLE_pagesm>
     455                                        </ul>
     456                                </dd>
    414457                                </BOUCLE_moteurs_recherche>
    415                                 </ul>
     458                                </dl>
    416459                               
    417460                                <B_reseaux_sociaux>
    418461                                <h3 title="[(#GET{total_reseaux_sociaux})] visites">Réseaux sociaux</h3>
    419                                 <ul class="valeur">
     462                                <dl class="liste_affluents">
    420463                                <BOUCLE_reseaux_sociaux(DATA){source table,#GET{sites_affluents}}{cle==#GET{reg_reseaux_sociaux}}{!par visites}>
    421                                 <li>[(#CLE|replace{^t$,twitter}|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></li>
     464                                <dt>[(#CLE|replace{^t$,twitter}|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></dt>
     465                                <dd>
     466                                        <ul>
     467                                                <BOUCLE_pagesr(DATA){source table,#REFERERS|compter_referers}{!par visites}>
     468                                                <li><a href="#URL" title="#CLE">[(#PATH|sinon{#CLE}|couper{25})]</a> <small>(#VISITES)</small></li>
     469                                                </BOUCLE_pagesr>
     470                                        </ul>
     471                                </dd>
    422472                                </BOUCLE_reseaux_sociaux>
    423                                 </ul>
     473                                </dl>
    424474                               
    425475                                #ANCRE_PAGINATION
     
    428478                                </h3>
    429479                               
    430                                 <ul style="max-height:15em;overflow:auto">
     480                                <dl class="liste_affluents">
    431481                                <BOUCLE_affluents(DATA){source table,#GET{sites_affluents}}{cle!==#GET{reg_domaines_connus}}{!par visites}{pagination 50}>
    432                                 <li>[(#CLE|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></li>
     482                                <dt>[(#CLE|ucfirst)] <small>([(#VISITES|number_format{0,""," "}) visite[(#VISITES|>{1}|?{s})]])</small></dt>
     483                                <dd>
     484                                        <ul>
     485                                                <BOUCLE_pages(DATA){source table,#REFERERS|compter_referers}{!par visites}>
     486                                                <li><a href="#URL" title="#CLE">[(#PATH|sinon{#CLE}|couper{25})]</a> <small>(#VISITES)</small></li>
     487                                                </BOUCLE_pages>
     488                                        </ul>
     489                                </dd>
    433490                                </BOUCLE_affluents>
    434                                 </ul>
     491                                </dl>
    435492                                <p style="margin:10px">#PAGINATION</p>
    436493                        </div>
     
    445502        <small>stats_data version #CONFIG{stats_data_base_version}.</small>
    446503</div>
     504
     505<script>
     506$(document).ready(function(){
     507        $(".liste_affluents > dt").click(function(){
     508                console.log("hop");
     509                $(this).next("dd").toggle();
     510        });
     511});
     512</script>
  • _plugins_/stats_data/stats_data_fonctions.php

    r109991 r112286  
    11<?php
    22
     3// a passer en fichier inc/
    34function inc_termes_recherches_to_array($referers){
    45        foreach($referers as $r){
     
    1819        return $termes ;
    1920}
     21
     22function regexp_moteurs(){
     23        include_spip("inc/referenceurs");
     24        $e = stats_load_engines() ;
     25        foreach($e as $m)
     26                if($m[0] != "IP" AND $m[0] != "(email)")
     27                        $moteurs[] = str_replace("!","",strtolower($m[0])) ; // yahoo!
     28       
     29        return implode("|",array_unique($moteurs)) ;
     30}
     31
     32function url2domaine($url){
     33        $u = parse_url($url);
     34        $u = $u["host"] ;
     35        $u = preg_replace(",(co|com|qc)\.\w{2},","tld",$u);
     36        $u = explode(".",$u);
     37        $d = array_pop($u);
     38        $d = array_pop($u);
     39        return $d;
     40}
     41
     42function compter_referers($ref){
     43        foreach($ref as $url){
     44                $u = parse_url($url);
     45                $cle = preg_replace(",^https?://,","",$url);
     46                $cle = preg_replace(",/$,","",$cle);
     47                // nettoyage en plus
     48                $cle = preg_replace(",\?amp=\d+$,","",$cle); // twitter
     49                $cle = preg_replace(",\?fbclid=.+$,","",$cle); // fb
     50               
     51                $r[$cle]["url"] = $url ;
     52                $r[$cle]["visites"]++;
     53                $r[$cle]["path"] = preg_replace(',^/,','',$u["path"]);
     54               
     55        }
     56       
     57        return $r ;
     58}
Note: See TracChangeset for help on using the changeset viewer.