PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 01-02-2017 19:06:33

fsebbah
Membre

[Résolu] Les stats et autres

1485971787_capture_drsquoecran_2017-02-01_a_18.55.12.png
1485972512_capture_drsquoecran_2017-02-01_a_19.08.05.png
Bonjour Arnaud,
J'ai regroupé plusieurs questions, dis moi su tu préfères que je les sépare.
Premier question : je te soumets en pièce jointe un graphique de stat ou il me semble qu'il y a une inversion entre les couleurs.
De ce que je comprends c'est que le computer l'emporte sur le mobile, mais ce n'est pas si vrai que cela puisque le graphe m'indique l'inverse.
D'où ma question, est il possible de paramétrer les couleurs ca entre rouge et orange rouge, c'est pas très explicite ;-)

Seconde question, j'ai toujours mon problème de téléchargement d'images. Le message d'erreur est : The requested URL /tinymce/plugins/filemanager/dialog.php was not found on this server.
Sur le server, la page se trouve dans: /var/www/monrepnewsletter/js/tinymce/plugins/filemanager/dialog.php
As tu besoin que je t'envoie également le source la page ?
Merci,
Franck

Dernière modification par fsebbah (01-02-2017 19:08:38)


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#2 02-02-2017 12:31:44

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

Pour la source, oui, il me la faudrait (je garde toute confidentialié), sur ma bal arnaud [At] phpmynewsletter.com, dans un fichier txt en pj, merci.

Et je dirais bien "Oups !"... C'est une erreur de calcul de ma part.
Je vais procéder à la correction.

Concernant les couleurs, pourquoi pas... Il faut aller dans include/tracking.php, et chercher "var mCCntClkDomain = new Chart(PmnlCntClkDomain, {", les couleurs sont définies après !
Bon courage par contre...

EDIT : c'est dans tracking


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#3 02-02-2017 12:53:02

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

Correction à faire :
dans include/tracking.php
ligne 209, remplacer :

        'SELECT DISTINCT(devicetype) AS devicetype,COALESCE(COUNT(*),0) AS data

par

        'SELECT devicetype,COALESCE(COUNT(*),0) AS data

Ca devrait mieux aller.
La bas de calcul était faussée.
Tu peux me valider stp ?


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#4 02-02-2017 15:34:20

fsebbah
Membre

Re : [Résolu] Les stats et autres

Ha et bien ça va beaucoup mieux. il prend de belles couleurs. ;-)


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#5 02-02-2017 15:41:55

fsebbah
Membre

Re : [Résolu] Les stats et autres

1486046502_capture_drsquoecran_2017-02-02_a_15.39.01.jpg
Je t'envoie le global un autre graphique, les système d'exploitation sont aussi inversé. entre Windows et Iphone.


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#6 02-02-2017 15:41:56

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

MERCI cool -> résolu et je repackage la 2.0.4


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#7 02-02-2017 15:42:57

fsebbah
Membre

Re : [Résolu] Les stats et autres

Désolé mais ici le support est aussi inversé.


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#8 02-02-2017 16:16:02

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

support et os...
Je fais ça ce soir


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#9 03-02-2017 15:27:22

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

Je buggue ! Reprendre à tête reposée... Mais je suis dessus !


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#10 03-02-2017 16:50:03

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

Les chiffres sont effectivement erronés dans la page tracking, les initialisations sont en cause, j'ai pu tout reprendre sur un modèle live de dev, je mettrai tout au propre et il y aura une nouvelle page tracking disponible.


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#11 03-02-2017 17:38:24

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

Voici la page tracking.php complète, faire une sauvegarde de l'ancienne, dans include/ :

<article class="module width_full">
    <header><h3><?php echo tr("TRACKING_TITLE");?></h3></header>
    <?php
    $row_cnt = get_id_send($cnx,$list_id,$row_config_globale['table_send']);
    if($row_cnt['CPTID'] > 0){
        $array_stats_tmp = get_stats_send($cnx,$list_id,$row_config_globale);
        echo '<div class="module_content">';
        $array_stats=array_reverse($array_stats_tmp);
        ?>
        <script type="text/javascript" src="js/amcharts/amcharts.js"></script>
        <script type="text/javascript" src="js/amcharts/serial.js"></script>
        <script type="text/javascript" src="js/amcharts/lang/fr.js"></script>
        <link   type="text/css" href="js/amcharts/plugins/export/export.css" rel="stylesheet">
        <script type="text/javascript" src="js/amcharts/plugins/export/export.js"></script>
        <script type="text/javascript" src="js/Chart.js/Chart.js"></script>
        <script type="text/javascript">
            AmCharts.makeChart("chartdiv",
                {
                    "type": "serial",
                    "language": "fr",
                    "categoryField": "cp_id",
                    "dataDateFormat": "YYYY-MM-DD",
                    "categoryAxis": {
                        "parseDates": false
                    },
                    "export": {
                        "enabled": true
                    },
                    "chartCursor": {},
                    "trendLines": [],
                    "graphs": [
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "envois",
                            "title": "<?php echo tr("TRACKING_SEND");?>",
                            "valueField": "c1"
                        },
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "erreurs",
                            "title": "<?php echo tr("TRACKING_ERROR");?>",
                            "valueField": "c2"
                        },
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "ouvertures",
                            "title": "<?php echo tr("TRACKING_OPENED");?>",
                            "valueField": "c3"
                        },
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "lectures",
                            "title": "<?php echo tr("TRACKING_READ");?>",
                            "valueField": "c4"
                        },
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "abandons",
                            "title": "<?php echo tr("TRACKING_UNSUB");?>",
                            "valueField": "c5"
                        },
                        {
                            "balloonText": "[[title]] : [[value]]",
                            "bullet": "round",
                            "id": "clics",
                            "title": "<?php echo tr("CLICKS");?>",
                            "valueField": "c6"
                        },
                    ],
                    "guides": [],
                    "valueAxes": [
                        {
                            "id": "ValueAxis-1",
                            "title": "<?php echo tr("TRACKING_COUNT");?>"
                        }
                    ],
                    "allLabels": [],
                    "balloon": {},
                    "legend": {
                        "enabled": true,
                        "useGraphSettings": true
                    },
                    "titles": [
                        {
                            "id": "Title-1",
                            "size": 15,
                            "text": "<?php echo tr("TRACKING_STATS_GRAPHICS_REPORT");?>"
                        }
                    ],
                    "dataProvider": [
                        <?php
                        foreach($array_stats as $row){
                            echo '
                            {
                                "date":"' . $row['dt'] . '",
                                "c1":'    .($row['cpt']        !=''?$row['cpt']        :0).',
                                "c2":'    .($row['error']      !=''?$row['error']      :0).',
                                "c3":'    .($row['TID']        !=''?$row['TID']        :0).',
                                "c4":'    .($row['TOPEN']      !=''?$row['TOPEN']      :0).',
                                "c5":'    .($row['leave']      !=''?$row['leave']      :0).',
                                "c6":'    .($row['CPT_CLICKED']!=''?$row['CPT_CLICKED']:0).',
                                "cp_id":' . $row['id_mail'] . '
                            },';
                        }
                        ?>
                    ],
                    "export": {
                        "enabled": true
                    }
                }
            );
        </script>
        <div id="chartdiv" style="width: 100%; height: 500px; background-color: #FFFFFF;" ></div>
        <?php
        echo "<form action='".$_SERVER['PHP_SELF']."' method='post' name='selected_newsletter'><div align='center'>";
        echo "<br>" .tr("TRACKING_GOTO_LIST"). " : <select name='list_id' class='input'>";
        foreach  ($list as $item) {
            echo "<option value='" . $item['list_id'] . "' ";
            if($row['list_id']== $item['list_id']){
                echo "selected='selected' ";
            }
            echo ">" . $item['newsletter_name'] . "</option>";
        }
        echo "</select>";
        echo "<input type='hidden' name='page' value='tracking' />";
        echo "<input type='hidden' name='token' value='$token' />";
        echo "&nbsp;<input type='submit' value=' O K ' class='button' /></div>";
        echo "</form>";
        $TOTALBROWSER = $cnx->query('SELECT COUNT(*) AS total 
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id .' )'
                    )->fetch();
        $totalbrowser = $TOTALBROWSER['total'];
        $results_stat_browser = $cnx->query(
        'SELECT DISTINCT(CONCAT(browser,\' \',SUBSTRING_INDEX(version,\'.\',1))) AS browser,
                COALESCE(COUNT(*),0) AS data
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE browser!=\'\'
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                    )
                    AND browser!=\'\'
                    AND version!=\'unknown\'
                    AND browser NOT IN (\'iPhone\',\'iPad\',\'Android\')
            GROUP BY CONCAT(browser,\' \',SUBSTRING_INDEX(version,\'.\',1))
            HAVING COUNT(*)>'.($totalbrowser/100).'
                ORDER BY data DESC;'
        );
        if (count($results_stat_browser) >0) {
            $databrowser = '';
            (int)$cptbrowser;
            (int)$totalAffiche;
            foreach ($results_stat_browser as $tab) {
                $cptbrowser .= $tab['data'] . ',';
                $databrowser .= '"' . $tab['browser'] . ' ('.round(((int)$tab['data']/$totalbrowser*100),2).'%) ",';
                $totalAffiche = $totalAffiche+(int)$tab['data'];
            }
            if(($totalbrowser-$totalAffiche)>0){
                $cptbrowser .= $totalbrowser-$totalAffiche ;
                $databrowser .= '"Others <1% ('.round((($totalbrowser-$totalAffiche )/$totalbrowser*100),2).'%) ",';
            }
        }
        $TOTALPLATFORM = $cnx->query('SELECT COUNT(*) AS total 
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE platform!=\'\' 
                    AND platform!=\'unknown\'
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id .' )'
                    )->fetch();
        $totalplatform = $TOTALPLATFORM['total'];
        $results_stat_platform = $cnx->query('SELECT platform,COUNT(*) AS data
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE platform!=\'\' 
                    AND platform!=\'unknown\'
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                    )
            GROUP BY platform
                ORDER BY data DESC;'
        );
        if (count($results_stat_platform) >0) {
            $dataplatform = '';
            (int)$cptplatform;
            (int)$totalAffiche;
            foreach ($results_stat_platform as $tab) {
                $cptplatform .=  (int)$tab['data'] . ',';
                $dataplatform .= '"' . $tab['platform'] . ' ('.round(((int)$tab['data']/$totalplatform*100),2).'%) ",';
                $totalAffiche = $totalAffiche+(int)$tab['data'];
            }
            if(($total-$totalAffiche)>0){
                $cptplatform .= $total-$totalAffiche ;
                $dataplatform .= '"Others <1% ('.round((($totalplatform-$totalAffiche )/$totalplatform*100),2).'%) ",';
            }
        }
        $TOTALDEVICE = $cnx->query('SELECT COUNT(*) AS totalDevice
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE devicetype!=\'\'
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                    )'
        )->fetch();
        $totaldv = $TOTALDEVICE['totalDevice'];
        $results_stat_devicetype= $cnx->query('SELECT devicetype,COALESCE(COUNT(*),0) AS data
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE devicetype!=\'\'
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                    )
            GROUP BY devicetype
                ORDER BY data DESC;'
        );
        if (count($results_stat_devicetype) >0&&$totaldv>0) {
            $datadevicetype = '';
            (int)$cptdevicetype;
            (int)$totalAffiche;
            foreach ($results_stat_devicetype as $tab) {
                $cptdevicetype .= (int)$tab['data'] . ',';
                $datadevicetype .= '"' . $tab['devicetype'] . ' ('.round(((int)$tab['data']/$totaldv*100),2).'%) ",';
                $totalAffiche = (int)$totalAffiche+(int)$tab['data'];
            }
            if(($totaldv-$totalAffiche)>0){
                $cptdevicetype .= $totaldv-$totalAffiche ;
                $datadevicetype .= '"Others <1% ('.round((($totaldv-$totalAffiche )/$totaldv*100),2).'%) ",';
            }
        }
        $TOTALUSERAGENT = $cnx->query(
        'SELECT COUNT(*) AS total 
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE (
                       useragent like "%outlook%"
                    OR useragent like "%Thunderbird%"
                    OR useragent like "%Icedove%"
                    OR useragent like "%Shredder%"
                    OR useragent like "%Airmail%"
                    OR useragent like "%Lotus-Notes%"
                    OR useragent like "%Barca%"
                    OR useragent like "%Postbox%"
                    OR useragent like "%MailBar%"
                    OR useragent like "%The Bat!%"
                    OR useragent like "%GoogleImageProxy%"
                    )
                    AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                    )'
        )->fetch();
        $totalua = $TOTALUSERAGENT['total'];
        (int)$totalAffiche;
        $results_stat_ua= $cnx->query('SELECT useragent,COALESCE(COUNT(*),0) AS data
            FROM ' . $row_config_globale['table_tracking'] . ' 
                WHERE (
                      useragent like "%outlook%"
                   OR useragent like "%Thunderbird%"
                   OR useragent like "%Icedove%"
                   OR useragent like "%Shredder%"
                   OR useragent like "%Airmail%"
                   OR useragent like "%Lotus-Notes%"
                   OR useragent like "%Barca%"
                   OR useragent like "%Postbox%"
                   OR useragent like "%MailBar%"
                   OR useragent like "%The Bat!%"
                   OR useragent like "%GoogleImageProxy%"
                   )
                   AND subject IN (
                        SELECT id_mail 
                            FROM ' . $row_config_globale['table_send'] . ' 
                                WHERE id_list=' . $list_id . '
                   )
                GROUP BY useragent
                HAVING COUNT(*)>'.($totalua/100).'
                    ORDER BY data DESC;'
        );
        if (count($results_stat_ua) >0&&$totalua>0) {
            $tmpDataUa=array(
                "Thunderbird"=>0,
                "Shredder"=>0,
                "Icedove"=>0,
                "Outlook-Express"=>0,
                "Microsoft Outlook"=>0,
                "Lotus-notes"=>0,
                "Postbox"=>0,
                "MailBar"=>0,
                "The Bat!"=>0,
                "Barca"=>0,
                "Airmail"=>0,
                "Gmail"=>0
            );
            foreach ($results_stat_ua as $tab) {
                $str = $tab['useragent'];
                $mua=array();
                if(preg_match('/Thunderbird(?:\/(\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Thunderbird']=$tmpDataUa['Thunderbird']+$tab['data'];
                }elseif(preg_match('/Shredder(?:\/(\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Shredder']=$tmpDataUa['Shredder']+$tab['data'];
                }elseif(preg_match('/Icedove(?:\/(\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Icedove']=$tmpDataUa['Icedove']+$tab['data'];
                }elseif(preg_match('/Outlook-Express(?:\/(\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Outlook-Express']=$tmpDataUa['Outlook-Express']+$tab['data'];
                }elseif(preg_match('/Microsoft Outlook(?: Mail)?(?:[\/ ](\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Microsoft Outlook']=$tmpDataUa['Microsoft Outlook']+$tab['data'];
                }elseif(preg_match('/Lotus-notes(?:\/(\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Lotus-notes']=$tmpDataUa['Lotus-notes']+$tab['data'];
                }elseif(preg_match('/Postbox(?:[\/ ](\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Postbox']=$tmpDataUa['Postbox']+$tab['data'];
                }elseif(preg_match('/MailBar(?:[\/ ](\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['MailBar']=$tmpDataUa['MailBar']+$tab['data'];
                }elseif(preg_match('/The Bat!(?: Voyager)?(?:[\/ ](\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['The Bat!']=$tmpDataUa['The Bat!']+$tab['data'];
                }elseif(preg_match('/Barca(?:Pro)?(?:[\/ ](\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Barca']=$tmpDataUa['Barca']+$tab['data'];
                }elseif(preg_match('/Airmail(?: (\d+[\.\d]+))?/iD', $str)) {
                    $tmpDataUa['Airmail']=$tmpDataUa['Airmail']+$tab['data'];
                }elseif(preg_match('/GoogleImageProxy?/iD', $str)) {
                    $tmpDataUa['Gmail']=$tmpDataUa['Gmail']+$tab['data'];
                }
            }
            (int)$cptua;
            $dataua='';
            (int)$totalAfficheUa;
            arsort($tmpDataUa);
            foreach ($tmpDataUa as $uaName => $value) {
                if((int)$value>0){
                    $cptua .= (int)$value . ',';
                    $dataua .= '"' . $uaName . ' ('.round(((int)$value/$totalua*100),2).'%) ",';
                    $totalAfficheUa = $totalAfficheUa+(int)$value;
                }
            }
            if(($totalua-$totalAfficheUa)>0){
                $cptua .= $totalua-$totalAfficheUa;
                $dataua .= '"Others <1% ('.round((($totalua-$totalAfficheUa)/$totalua*100),2).'%) ",';
            }
        }
        ?>
</article>
<article class="module width_full">
    <header><h3>Environnements (toutes campagnes confondues)</h3></header>
        <table>
            <tr>
                <td width="25%"><div align="center"><h4>Navigateurs</h4></div><canvas id="PmnlStatsBrowser" />
                </td>
                <td width="25%"><div align="center"><h4>Clients mails</h4></div><canvas id="PmnlPim" />
                </td>
                <td width="25%"><div align="center"><h4>Systèmes d'exploitation</h4></div><canvas id="PmnlStatsPlatform" />
                </td>
                <td width="25%"><div align="center"><h4>Supports</h4></div><canvas id="PmnlStatsDevicetype" />
                </td>
            </tr>
            <tr>
                <td><div id="PmnlStatsBrowser-legend" class="chart-legend"></div>
                </td>
                <td><div id="PmnlPim-legend" class="chart-legend"></div>
                </td>
                <td><div id="PmnlStatsPlatform-legend" class="chart-legend"></div>
                </td>
                <td><div id="PmnlStatsDevicetype-legend" class="chart-legend"></div>
                </td>
            </tr>
        </table>
        <script>
        Chart.defaults.global.legend.display = false;
        var PmnlChartBrowser = $("#PmnlStatsBrowser");
        var mCbrowser = new Chart(PmnlChartBrowser, { type: 'pie',data:{ labels:[<?php echo $databrowser; ?>],datasets: [{ data: [<?php echo $cptbrowser; ?>],backgroundColor:['#ff0000','#ff4000','#ff8000','#ffbf00','#ffff00','#bfff00','#80ff00','#40ff00','#00ff00','#00ff40','#00ff80','#00ffbf','#00ffff','#00bfff','#0080ff','#0040ff','#0000ff','#4000ff','#8000ff','#bf00ff','#ff00ff','#ff00bf','#ff0080','#ff0040','#ff0000','#946d70','#563957','#5e6370','#78bac2','#376182','#3a000f','#85888c','#cd7320','#7f9c95','#b4eeb4','#794044','#205c2e','#1c6d26','#ff0f3b','#4a4146','#a4a0a2','#0011a8','#000532','#d3f660','#546226','#ff4265','#292929','#8e561a','#ffe4e1','#ffc0cb','#000000','#ff0000','#1075bc','#07adeb','#acdfe8','#f5f5f5','#277ead','#eff3f9','#eff3f9','#511323','#ffe4e1','#141414','#ff4265','#54ff9f','#cbf3ad','#543544','#15315c'],}]},});
        document.getElementById('PmnlStatsBrowser-legend').innerHTML = mCbrowser.generateLegend();
        var PmnlChartPim = $("#PmnlPim");
        var mPim = new Chart(PmnlPim, { type: 'pie',data:{ labels:[<?php echo $dataua; ?>],datasets: [{ data: [<?php echo $cptua; ?>],backgroundColor:['#ff0000','#ff4000','#ff8000','#ffbf00','#ffff00','#bfff00','#80ff00','#40ff00','#00ff00','#00ff40','#00ff80','#00ffbf','#00ffff','#00bfff','#0080ff','#0040ff','#0000ff','#4000ff','#8000ff','#bf00ff','#ff00ff','#ff00bf','#ff0080','#ff0040','#ff0000','#946d70','#563957','#5e6370','#78bac2','#376182','#3a000f','#85888c','#cd7320','#7f9c95','#b4eeb4','#794044','#205c2e','#1c6d26','#ff0f3b','#4a4146','#a4a0a2','#0011a8','#000532','#d3f660','#546226','#ff4265','#292929','#8e561a','#ffe4e1','#ffc0cb','#000000','#ff0000','#1075bc','#07adeb','#acdfe8','#f5f5f5','#277ead','#eff3f9','#eff3f9','#511323','#ffe4e1','#141414','#ff4265','#54ff9f','#cbf3ad','#543544','#15315c'],}]},});
        document.getElementById('PmnlPim-legend').innerHTML = mPim.generateLegend();
        var PmnlChartPlatform = document.getElementById("PmnlStatsPlatform");
        var mCplatform = new Chart(PmnlChartPlatform, { type: 'pie',data:{ labels:[<?php echo $dataplatform; ?>],datasets: [{ data: [<?php echo $cptplatform; ?>],backgroundColor:['#ff0000','#ff4000','#ff8000','#ffbf00','#ffff00','#bfff00','#80ff00','#40ff00','#00ff00','#00ff40','#00ff80','#00ffbf','#00ffff','#00bfff','#0080ff','#0040ff','#0000ff','#4000ff','#8000ff','#bf00ff','#ff00ff','#ff00bf','#ff0080','#ff0040','#ff0000','#946d70','#563957','#5e6370','#78bac2','#376182','#3a000f','#85888c','#cd7320','#7f9c95','#b4eeb4','#794044','#205c2e','#1c6d26','#ff0f3b','#4a4146','#a4a0a2','#0011a8','#000532','#d3f660','#546226','#ff4265','#292929','#8e561a','#ffe4e1','#ffc0cb','#000000','#ff0000','#1075bc','#07adeb','#acdfe8','#f5f5f5','#277ead','#eff3f9','#eff3f9','#511323','#ffe4e1','#141414','#ff4265','#54ff9f','#cbf3ad','#543544','#15315c'],}]},});
        document.getElementById('PmnlStatsPlatform-legend').innerHTML = mCplatform.generateLegend();
        var PmnlChartDevicetype = $("#PmnlStatsDevicetype");
        var mCdevicetype = new Chart(PmnlChartDevicetype, { type: 'pie',data:{ labels:[<?php echo $datadevicetype; ?>],datasets: [{ data: [<?php echo $cptdevicetype; ?>],backgroundColor:['#ff0000','#ff4000','#ff8000','#ffbf00','#ffff00','#bfff00','#80ff00','#40ff00','#00ff00','#00ff40','#00ff80','#00ffbf','#00ffff','#00bfff','#0080ff','#0040ff','#0000ff','#4000ff','#8000ff','#bf00ff','#ff00ff','#ff00bf','#ff0080','#ff0040','#ff0000','#946d70','#563957','#5e6370','#78bac2','#376182','#3a000f','#85888c','#cd7320','#7f9c95','#b4eeb4','#794044','#205c2e','#1c6d26','#ff0f3b','#4a4146','#a4a0a2','#0011a8','#000532','#d3f660','#546226','#ff4265','#292929','#8e561a','#ffe4e1','#ffc0cb','#000000','#ff0000','#1075bc','#07adeb','#acdfe8','#f5f5f5','#277ead','#eff3f9','#eff3f9','#511323','#ffe4e1','#141414','#ff4265','#54ff9f','#cbf3ad','#543544','#15315c'],}]},});
        document.getElementById('PmnlStatsDevicetype-legend').innerHTML = mCdevicetype.generateLegend();
        </script>
</article>
<article class="module width_full">
    <header><h3>Chiffres clé des campagnes</h3></header>  
        <?php 
        reset($array_stats_tmp);
        echo '<table class="tablesorter" cellspacing="0"> 
        <thead> 
            <tr> 
                '. tr("TRACKING_REPORT_HEAD_TABLE") .'
            </tr> 
        </thead> 
        <tbody>';
        foreach($array_stats_tmp as $row){
            echo '<tr>';
            if(is_file("logs/daylog-".$row['dt'].".txt")){
                echo '<td><a class="iframe tooltip" href="include/view_log.php?day='.$row['dt'].'&t=d&token='
                     .$token.'" title="'. tr( "TRACKING_VIEW_LOG_DAY" , $row['dt'] ) .'">'.$row['dt'].'</a></td>';
            } else {
                echo '<td>'.    $row['dt'].    '</td>';
            }
            if(is_file("logs/list$list_id-msg".$row['id_mail'].".txt")){
                echo '<td><a class="iframe tooltip" href="include/view_log.php?list_id='.$list_id.'&id_mail='.$row['id_mail'].'&t=l&token='
                     .$token.'" title="'. tr( "TRACKING_VIEW_LOG_SEND" ) .'"><img src="css/icn_search.png" /></a></td>';
            }
            echo '<td>'. $row['id_mail'].                       '</td>';
            echo '<td>';
            if($row_cnt['CPTID']>0){
                echo '<a class="iframe tooltip" href="tracklinks.php?id_mail='.$row['id_mail'].'&list_id='.$list_id.'&token='
                     .$token.'" title="'. tr( "TRACKING_DETAILLED_CLICKED_LINKS" ) .'">'.$row['subject'].'</a>';
            } else {
                echo $row['subject'];
            }
            echo '</td>';
            echo '<td>'. $row['cpt'].                           '</td>';
            echo '<td>'. ($row['TOPEN']!=''?$row['TOPEN']:0).   '</td>';
            echo '<td>'. $row['TID'].                           '</td>';
            echo '<td>'. $row['CPT_CLICKED'].                   '</td>';
            $OPENRATE = @round(($row['TID']/($row['cpt']-$row['error'])*100),1);//OPEN RATE
            echo '<td><a class="tooltip" title="'. tr( "TRACKING_BULLE_OPEN_RATE" ) .'">'.($OPENRATE>0?'<b>'.$OPENRATE.'</b>':0).'%</a></td>';
            $CTR = @round(($row['CPT_CLICKED']/$row['cpt']*100),1);//CTR
            echo '<td><a class="tooltip" title="'. tr( "TRACKING_BULLE_CTR" ) .'">'.($CTR>0?'<b>'.$CTR.'</b>':0).'%</a></td>';
            $ACTR = @round(($row['CPT_CLICKED']/$row['TID']*100),1);//ACTR
            echo '<td><a class="tooltip" title="'. tr( "TRACKING_BULLE_ACTR" ) .'">'.($ACTR>0?'<b>'.$ACTR.'</b>':0).'%</a></td>';
            echo '<td>'. $row['error'].                         '</td>';
            echo '<td>'. $row['leave'].                         '</td>';
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo '<div class="module_content">'.tr("TRACKING_NO_DATA_AVAILABLE").'<h4 class="alert_info">...</h4></div>';
    }
    ?>
    <div class="spacer"></div>
    <div class="clear"></div>
</article>

Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#12 07-02-2017 12:29:56

fsebbah
Membre

Re : [Résolu] Les stats et autres

Bonjour Arnaud,
Beau travail. Ca marche super bien.
Merci et pour moi c'est résolu.
PS: Je ne sais pas comment on fait pour mettre résolu au topic.


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#13 07-02-2017 13:18:06

Arnaud
Administrateur

Re : [Résolu] Les stats et autres

fsebbah a écrit :

Bonjour Arnaud,
...
PS: Je ne sais pas comment on fait pour mettre résolu au topic.

Dans ton message initial, il y a un lien "Résolu", il suffit de cliquer... Sinon je le fais ! Et là, c'était fait cool


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB