Créez un rapport personnalisé dans SEO Mioche Tools
Ecrit par ddpetit le Vendredi 29 octobre 2010 à 13:07 - Catégorie Scripts PHP
Bonjour à tous (et à toutes !).
Aujourd’hui, je vous propose un article qui s’adresse à tout ceux qui utilisent SEO Mioche Tools, l’outil créé par Nicolas Jean. L’outil en lui même est très utile, mais les rapports qui sont créés ne sont pas forcément très facile à manipuler, surtout lorsque vous commencez à attirer quelques clients, et que vous souhaitez leur envoyer quelques éléments en rapport avec votre travail. Donc, aujourd’hui à travers ce post, je vais vous montrer comment réaliser ce genre de rapport :

Vous ne trouvez pas ça joli ?
Première étape : on va créer la page report2.php, qui nous permettra d’afficher ce genre de rapport. Je vous copie ci-dessous, le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | <html><head><style>
body, h3 { font-size: 14px; background-color: #F9F9F9; font-family: Arial}
h3 { background-color: #E2E2E2; border-width: 0 0 1px 0; border-color: black; border-style: solid; padding: 5px; margin: 0}
a { text-decoration: none }
table { border: 1px solid black; border-collapse: collapse; padding: 0; margin: 0}
tr { font-size: 12px; background-color: white }
td {border-left: 1px dashed #aaaaaa; border-bottom: 1px solid #aaaaaa;margin: 0; padding : 3px 10px; text-align: center}
td.kw { text-align: left; background-color: white; border-right: 1px solid black;}
td.lb { text-align: left; border: 0px}
tr.trlg1 { background-color: #F0F0F0}
.req { color: black }
tr.idxed { font-size: 9px }
td.lgbd { background-color: #E3EFFF }
td.an0 { background-color: #505050; color : white }
td.jj0 { background-color: #bbbbbb; }
td.big{font-size:14px;}
select, option { font-size: 10px; }
</style>
</head><body>
<?php
// Le code ci-dessous n'est peut être pas optimisé, mais il marche, c'est le principal ...
// Création : Damien Petitjean (www.damienpetitjean.fr)
include('config.php');
// On initialise les variables utilisées pour générer le rapport
$siteid = (isset($_GET['id']) ? intval($_GET['id']) : 0);
$tabiddate = array();$tabdays = array();$tabpos = array();$tabkw = array();
$idkw = 0;$previous_cat = 0;
// On récupère les deux derniers "runs" afin de faire la comparaison
$rs = mysql_query("SELECT run.id, DATE_FORMAT(run.date, '%d/%m/%Y') AS date_format
FROM run
WHERE
run.idsite = '".$siteid."'
ORDER BY id DESC
LIMIT 2");
while($array = mysql_fetch_array($rs))
{
$tabiddate[$array['id']] = $array['id'];
$tabdays[$array['id']] = $array['date_format'];
}
// Si on n'a qu'un seul "run", le script n'affichera rien
if(count($tabdays) != 2)
{
exit ();
}
reset($tabdays);
$last = current($tabdays);
$first = end($tabdays);
echo '<h1>Rapport de positionnement entre le '.$first.' et le '.$last.'</h1>';
// On va rechercher tous les mots clés, et faire la comparaison avec le précédent "run"
$rs = mysql_query("SELECT pos.idkw, pos.iddate AS date_jour, pos.position AS position_jour, kw.requete, g.nom, g.n
FROM kw
INNER JOIN pos ON pos.idkw = kw.id
INNER JOIN groupe g ON g.site_id = kw.idsite AND g.id = kw.groupe_id
WHERE
kw.idsite = '".$siteid."' AND
pos.iddate IN (".implode(',', $tabiddate).")
ORDER BY g.n ASC, requete ASC, date_jour ASC");
// La c'est trop technique pour expliquer
while($array = mysql_fetch_array($rs))
{
if($idkw != $array['idkw'])
{
$idkw = $array['idkw'];
$tabkw[$idkw]['nom'] = $array['requete'];
$tabkw[$idkw]['id_cat'] = $array['n'];
$tabkw[$idkw]['nom_cat'] = $array['nom'];
$tabkw[$idkw]['id_date'] = $array['date_jour'];
$tabpos[$idkw] = ($array['position_jour'] > 0 ? 100 - $array['position_jour'] : 0);
$previous_pos = $array['position_jour'];
}
else
{
$tabkw[$array['idkw']]['pos'] = $array['position_jour'];
if($previous_pos == 0 && $array['position_jour'] > 0)
{
$tabkw[$array['idkw']]['display'] = 'Nouveau !';
}
if($previous_pos > 0 && $array['position_jour'] == 0)
{
$tabkw[$array['idkw']]['display'] = 'Perdu !';
$tabpos[$array['idkw']] = -1;
continue;
}
$tabpos[$array['idkw']] = ($previous_pos > 0 ? $previous_pos - $array['position_jour'] : ($array['position_jour'] > 0 ? 100-$array['position_jour'] : 0));
}
}
// On affiche le résultat dans un tableau, libre à vous de customiser si vous le souhaitez.
echo '<table>
<thead>
<tr style="background-color: rgb(240, 240, 240);">
<td class="an0">Mot clé</td>
<td class="an0">Position du jour</td>
<td class="an0">Positions gagnées</td>
</tr>
</thead>
<tbody>';
foreach($tabpos as $kw => $pos)
{
if($previous_cat != $tabkw[$kw]['id_cat'])
{
$previous_cat = $tabkw[$kw]['id_cat'];
echo '<tr>
<td style="text-align: left; padding: 3px; background-color: rgb(128, 128, 128); color: white; font-weight: bolder; text-indent: 20px;" colspan="3">'.$tabkw[$kw]['nom_cat'].'</td>
</tr>';
}
echo '<tr>
<td>'.$tabkw[$kw]['nom'].'</td>
<td>'.(isset($tabkw[$kw]['pos']) ? $tabkw[$kw]['pos'] : 0).'</td>
<td class="big">'.($pos > 0 ? '<span style="color:green;font-weight:bold;">'.(empty($tabkw[$kw]['display']) ? '+'.$pos : $tabkw[$kw]['display']).'</span>' : ($pos < 0 ? '<span style="font-weight:bold;color:red;">'.(empty($tabkw[$kw]['display']) ? $pos : $tabkw[$kw]['display']).'</span>' : '=')).'</td>
</tr>';
}
echo '
</tbody>
</table>';
?>
</body></html> |
Voilà qui est fait … la page de rapport étant créé, il nous reste plus qu’à l’afficher quand on le souhaite. Vous voyez ce petit bouton à gauche de vos rapports ?
C’est grâce à lui que vous pourrez afficher vos rapports. Voici donc, comment procéder : il vous faut ouvrir le fichier menu.php.
J’ai remplacé la ligne où vous trouverez
<img src="li_pos.gif" alt="" />
par la ligne suivante :
<a href="http://www.seoblackout.com/wp-admin/report2.php?id=<?=$r['id']?>"><img src="li_pos.gif" alt="" /></a> <a title="rapport de positions" href="http://www.seoblackout.com/wp-admin/report.php?id=<?=$r['id']?>"></a>
Maintenant, vous n’avez plus qu’à imprimer la page envoyer votre rapport en PDF aux personnes concernées !
Vous pouvez retrouver des informations sur mon travail, en consultant mon site dédié au Référencement dans les vosges.
Articles liés :
Commentaires (10)
Catégorie: Scripts PHP
- Ajouter cet article à :
- Del.icio.us -
- Digg
Commentaire par seofever
Vendredi, 29 octobre , 2010 à 13:32
Parfait ça, merci
Commentaire par Guib (1 commentaire)
Vendredi, 29 octobre , 2010 à 15:19
Super !
SMT est déjà un outil très pratique. Mais avec ça, c’est encore mieux.
Merci pour le partage
Commentaire par loran (2 commentaires)
Vendredi, 29 octobre , 2010 à 17:37
génial !
c’est ce que beaucoup de personnes attendaient.
reste l’export excel :p :p :p
Commentaire par sawa73
Vendredi, 29 octobre , 2010 à 18:25
Merci pour ce code, je pense qu’il faudrait remplacer :
<a href="report2.php?id=<?=$r['id']?>"><img src="li_pos.gif" alt="" /></a> <a title="rapport de positions" href="report.php?id=<?=$r['id']?>"></a>
par :
<a href="report2.php?id=<?=$r['id']?>"><img src="li_pos.gif" alt="" /></a> <a title="rapport de positions" href="report.php?id=<?=$r['id']?>"><?=$r['nom']?></a>
sinon les anciens rapports ne sont plus cliquables.
Commentaire par Morgan (27 commentaires)
Samedi, 30 octobre , 2010 à 10:37
Cool comme petit tips, merci !
Commentaire par Anne
Samedi, 30 octobre , 2010 à 12:45
Bonjour et merci pour votre article. J’ai installé SMT qui a fonctionné quelques jours pour au final enchainer les bugs, dommage, il est terrible ce SMT.
Commentaire par Rapport de stage (1 commentaire)
Samedi, 30 octobre , 2010 à 16:40
Je me permets de proposer une amélioration du script (que je ne saurais développer) : permettre de choisir les dates que l’on souhaite afficher dans ce rapport via un menu déroulant. Par défaut, les dernières dates me parait une bonne chose mais au besoin, on devrait pouvoir choisir les évolutions entre les dates que l’on souhaite afficher.
Merci pour le partage.
Rico
Commentaire par Tchupa (2 commentaires)
Mercredi, 3 novembre , 2010 à 13:52
Merci pour ce partage dommage que ça n’affiche que la progression du positionnement.
Commentaire par Winsa (1 commentaire)
Vendredi, 26 novembre , 2010 à 3:06
Merci pour ce rapport personnalisé, c’est nickel mais par contre je pense que ça serait pas mal de reprendre cette mise en forme mais avec la possibilité de choisir les date ou d’avoir un historique des positions au jour le jour comme c’est le cas sur la version d’origine.
Commentaire par LePetitGeek (2 commentaires)
Jeudi, 10 février , 2011 à 22:54
Claaaasse
voilà le genre de billet que j’apprécie : un peu de code, un peu d’explication et un résultat sympa !
Les commentaires sont fermés pour cet article.















