Formation référencement

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 :

Rapport de positionnement

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&eacute;</td>
		<td class="an0">Position du jour</td>
		<td class="an0">Positions gagn&eacute;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 ? création du rapport 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=&lt;?=$r['id']?&gt;"><img src="li_pos.gif" alt="" /></a> <a title="rapport de positions" href="http://www.seoblackout.com/wp-admin/report.php?id=&lt;?=$r['id']?&gt;"></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.

Commentaires (10)

Catégorie: Scripts PHP


10 Commentaires

Commentaire par seofever

Vendredi, 29 octobre , 2010 à 13:32

Parfait ça, merci

Commentaire par Guib

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

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

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

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

Mercredi, 3 novembre , 2010 à 13:52

Merci pour ce partage dommage que ça n’affiche que la progression du positionnement.

Commentaire par Winsa

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

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.



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !