Nuage de Tags

60 messages dans ce sujet

Posté(e) · Signaler ce message

1) Ajout d'une table dans votre base de donnée :

-- 
-- Structure de la table `tag_cloud`
--

CREATE TABLE `tag_cloud` (
`id` int(11) NOT NULL auto_increment,
`tag_name` varchar(100) NOT NULL default '',
`nbsearch` int(11) NOT NULL default '0',
`aff_front` int(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;[/codebox]

2) Ajout dans haut.php juste avant la balise </head> (a vous de personaliser les couleurs/tailles)

[codebox]<style> .nuage {line-height:25px;font: normal small verdana, arial, helvetica, sans-serif;
text-align: justify;
border:1px solid #B6CDE1;
padding:10px;
position:relative}
.nuage a {text-decoration:none}
.nuage a:hover {color: white; background-color: #668AA8;}
.nuage a.level0 {font-size:3px;color:#DFDFDF;}
.nuage a.level1 {font-size:6px;color:#B8C9D6;}
.nuage a.level2 {font-size:7px;color:#668AA8;}
.nuage a.level3 {font-size:8px;color:#47657B;}
.nuage a.level4 {font-size:9px;color:#E76300;}
.nuage a.level5 {font-size:10px;color:#685c65;}
.nuage a.level6 {font-size:11x;color:#8c524d;}
.nuage a.level7 {font-size:12px;color:#b44732;}
.nuage a.level8 {font-size:13px;color:#e53a11;}
.nuage a.level9 {font-size:15px;color:#E76300;font-weight: bold}
.nuage a.level10 {font-size:17px;color:#FF3300;font-weight: bold}
</style>

3) Affichage du nuage : (modification le 08/06 pour une plus jolie présentation - Willy)

<?php

$max = 0;

// Requete pour l'affichage du nuage
$query = "SELECT tag_name AS tag, nbsearch AS quantity FROM tag_cloud WHERE aff_front ='1' GROUP BY tag_name ORDER BY RAND() LIMIT 25";
$result = mysql_query($query);

// Boucle à travers les résultats afin de les mettres dans un simple tableau:
while ($row = mysql_fetch_array($result)) {
$tags[$row['tag']] = $row['quantity'];
if (intval($row['quantity']) > $max){ $max = intval($row['quantity']);}
}
echo '<div class="nuage" style="margin: 0pt auto; line-height: 20px;"><font face="arial,helvetica,sans-serif" size="3">';
// Boucle à travers le tableau
foreach ($tags as $key => $value) {
$valeur = $value;
// On limite a 10 car le CSS n'a que 10 entrées
//if($valeur >= 10) { $valeur = 10; }
echo '<a rel="nofollow" href="'.$wwwroot .'/achat/recherche.php?motclef='.$key.'" ';
echo ' title="'.$value.' recherche(s) sur le mot '.$key.'"';
echo ' class="level'.intval($value * 10/$max).'">'.$key.'</a> ';
}
echo "</div>";

?>[/codebox]

4) Ajout dans recherche.php:

a) Ajout après la ligne : $motclef = htmlspecialchars(trim($_GET['motclef']), ENT_QUOTES);

[codebox]// Insertion Tag de recherche

if($motclef != ""){
$query = "SELECT COUNT(*) FROM tag_cloud WHERE tag_name = '$motclef'";
$result = mysql_query($query);
$enr = mysql_fetch_array($result);

if($enr[0] == 0 ){
$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`,`nbsearch`,`aff_front`) VALUES ('', '$motclef','0','')";
mysql_query($sql) or die(mysql_error());

}
$query = "SELECT * FROM tag_cloud WHERE tag_name = '$motclef'";
$result = mysql_query($query);
while ( $champ = mysql_fetch_array($result) )
{

$id = $champ['id'];
$nb_search = $champ['nbsearch'];
$nb_search++;
$sql = "UPDATE `tag_cloud` SET `nbsearch` = '$nb_search' WHERE `id` = $id LIMIT 1";
mysql_query($sql) or die(mysql_error());
}
}
// Fin Insertion

b) Ajout après la ligne : echo "<tr><td colspan=\"3\" class=\"normal\">".nl2br(stripslashes(RESULT_SEARCH_NOK))."</td></tr>";

// Recherche NOK donc on taggue le mot a 1 pour un affichage sur le front office
$sql = "UPDATE `tag_cloud` SET `aff_front` = '0' WHERE `id` = $id LIMIT 1";
mysql_query($sql) or die(mysql_error());
[/codebox]

c) Ajout après la ligne : echo "<tr><td colspan=\"3\" class=\"normal\">Nous avons trouvé <b>".mysql_num_rows($resultat)."</b> résultats pour votre recherche</td></tr>";

[codebox]// Recherche OK donc on taggue le mot a 1 pour un affichage sur le front office
$sql = "UPDATE `tag_cloud` SET `aff_front` = '1' WHERE `id` = $id LIMIT 1";
mysql_query($sql) or die(mysql_error());

Voila ça marche, merci à tous les contributeur sur le post : http://forum.peel.fr/index.php?showtopic=1170

A suivre la partie Admin.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ah bravo, maintenant va falloit mettre à jour la page tag et tags_liste de admin pour lesquels j'ai tout mis avec afficheFront

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ah bravo, maintenant va falloit mettre à jour la page tag et tags_liste de admin pour lesquels j'ai tout mis avec afficheFront

j'ai fait la modif.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Y a pas à créer les pages pour administrer les tags ?

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

il va la mettre ... c'est le dev que j'ai fait cet apres midi.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Dans le code 3)

Il faut remplacer:

echo '<a rel="nofollow" href="http://www.3dvf.fr/achat/recherche.php?motclef='.$key.'" ';
Par:
echo '<a rel="nofollow" href="'.$wwwroot .'/achat/recherche.php?motclef='.$key.'" ';

Sinon on est redirigé sur le site de 3dvf :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Dans le code 4 a) il faut mettre:

// Insertion Tag de recherche


if($motclef != ""){

$query = "SELECT COUNT(*) FROM tag_cloud WHERE tag_name = '$motclef'";

$result = mysql_query($query);

$enr = mysql_fetch_array($result);


if($enr[0] == 0 ){

$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`,`nbsearch`,`aff_front`) VALUES ('', '$motclef','0','')";

mysql_query($sql) or die(mysql_error());


}

$query = "SELECT * FROM tag_cloud WHERE tag_name = '$motclef'";

$result = mysql_query($query);

while ( $champ = mysql_fetch_array($result) )

{


$id = $champ['id'];

$nb_search = $champ['nbsearch'];

$nb_search++;

$sql = "UPDATE `tag_cloud` SET `nbsearch` = '$nb_search' WHERE `id` = $id LIMIT 1";

mysql_query($sql) or die(mysql_error());

}

}

// Fin Insertion

Sinon $id et $nb_search ne sont pas définis (soit à la première utilisation car aucune requete ne ramene ses valeurs, soit à la récupération, car il manquait les quotes dans $champ['id']).

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Dans le code 1) remplacer:

AUTO_INCREMENT=159
Par:
AUTO_INCREMENT=1

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

3DVF peux tu EDITER ton post avec ces modifs? comme ca pas besoin de suivre le fil du sujet pour corriger :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

3DVF peux tu EDITER ton post avec ces modifs? comme ca pas besoin de suivre le fil du sujet pour corriger :)

Tu peux les valider atila s'il te plait ou tu as déja tout mis sur ton site ?

Car vu l'heure qu'il était :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oki, je veux bien, mais plus tard dans la journée, je pars au boulot là :)

Je ne l'ai pas mis pour le moment sur mon site,

Une fois terminé, ca te dit de le transformer pour shopping avec moi, à priori, y'aura pas bcp de chose à changer !

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Une fois terminé, ca te dit de le transformer pour shopping avec moi, à priori, y'aura pas bcp de chose à changer !

Pas de soucis, mais il n'y aura que l'étape 4 a modifier selon la page de recherche de shopping.

a) au moment de récupérer le mot recherché

:) si pas de réponse au mot cherché

c) si une réponse au mot cherché

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ouaip, le reste restant le même.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

5) ajouter le fichier tags.php dans administrer:

<?


include("../configuration.inc.php");

necessite_identification();

necessite_priv("admin");


$DOC_TITLE = "G&eacute;rer les Tags de recherche";


include("modeles/haut.php");


switch (vb script:return confirm('&ecirc;tes-vous s&ucirc;r de vouloir supprimer ce tag ?\nAttention : d&eacute;finitif !;');" class=normal href="<?=$_SERVER['PHP_SELF']?>?mode=suppr&id=<?=$r->id ?>"><img src="images/b_drop.png" alt="supprimer" border="0"></a></td>

<td class="normal" align="center"><?=$r->id?></td>

<td class="normal" align="center"><?=$r->tag_name?></td>

<td class="normal" align="center"><?php echo $r->nbsearch;?></td>


<td class="normal" align="center">

<input type="hidden" name="id[]" value="<?php echo $r->id;?>">

<table width="100%" border="0"><tr><td class="normal" align="center">

<td class="normal" align="center"><?php echo $r->aff_front;?></td>


</td><td class="normal" width="10">

<input type="checkbox" name="change_statut<?php echo $r->id;?>">

</td></tr></table>


</td>

</tr>

<? 

$i++;} // Fin de la boucle While 


echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">";


?>

<select name="statut" class="formulaire1">

<option value="0">non visible</option>

<option value="1">visible</option>

</select>


<?php

echo "<input type=\"submit\" value=\"modifier le statut des Tags coch&eacute;s\" class=\"bouton\"></p>";


echo "</form>";


echo "</td></tr>";



echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">";


// Boutons pr&eacute;c&eacute;dent et suivant 

$nb=30;

if($start) {


echo("<a class=normal href=\"".$_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&sort=".vb($_GET['sort'])."&start=".(vn($_GET['start']) - $nb)."&order=".vb($_GET['order'])."\">page pr&eacute;c&eacute;dente</a>");


} 


$result = mysql_query($sql_count); 


$row = mysql_fetch_row($result); 


if($row[0]>($start+$nb)) 

{ 


if($start) {echo(" / ");} 


echo("<a class=normal href=\"".$_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&sort=".vb($_GET['sort'])."&start=".(vn($_GET['start']) + $nb)."&order=".vb($_GET['order'])."\">page suivante</a>"); 


} 


echo("<br />");




// Affichage des pages 

if($row[0]>$nb) {// le nombre d'enreg. est > au nb de lignes d'affichage ?


for($index=0;($index*$nb)<$row[0];$index++) // oui alors on affiche les num&eacute;ros de pages

{ 

?>

<a class="normal" href="<?echo $_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&id=".vb($_GET['id'])."&statut=".vb($_GET['statut'])."&order=".$order."&sort=".$sort."&start=".$index*$nb; ?>"><?echo $index+1; ?></a>&nbsp;

<?

} 


}


echo "</td></tr>";


} 


}?>


</table>

Voila ma contribution avec les pages précédentes et suivantes qui fonctionnent.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

6) ajouter le fichier tags_liste.php dans administrer/modeles:

<table border="0" cellpadding="0" cellspacing="0" width="100%">


<tr>

<td class="entete" colspan="10">Liste des Tags</td>

</tr>


<?

if ($qid) {


if (mysql_num_rows($qid) == 0) 

{

"<tr><td colspan=\"10\" class=\"normal\"><b>Aucune recherche enregistr&eacute;e dans la base.</b></td></tr>"; } 

else {

?>

<tr>

<td class="menu">Action</td>

<td class="menu" align="center">

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=id&sort=desc"><img src="<?=$wwwroot?>/administrer/images/desc.gif" width="7" height="7" alt="" border="0"></a>

ID

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=id&sort=asc"><img src="<?=$wwwroot?>/administrer/images/up.gif" width="7" height="7" alt="" border="0"></a>

</td>



<td class="menu" align="center">

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=tag_name&sort=desc">

<img src="<?=$wwwroot?>/administrer/images/desc.gif" width="7" height="7" alt="" border="0"></a>

Recherche

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=tag_name&sort=asc">

<img src="<?=$wwwroot?>/administrer/images/up.gif" width="7" height="7" alt="" border="0"></a></td>


<td class="menu" align="center">

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=nbsearch&sort=desc">

<img src="<?=$wwwroot?>/administrer/images/desc.gif" width="7" height="7" alt="" border="0"></a>

Nbre de fois

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=nbsearch&sort=asc">

<img src="<?=$wwwroot?>/administrer/images/up.gif" width="7" height="7" alt="" border="0"></a></td>


<td class="menu" align="center">

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=aff_front&sort=desc">

<img src="<?=$wwwroot?>/administrer/images/desc.gif" width="7" height="7" alt="" border="0"></a>

Validation

<a href="<?=$_SERVER['PHP_SELF']?>?mode=tri&order=aff_front&sort=asc">

<img src="<?=$wwwroot?>/administrer/images/up.gif" width="7" height="7" alt="" border="0"></a></td>



</tr>

<form method="post" name="form_statut_lot" action="<?php echo $_SERVER['PHP_SELF']?>">

<input type="hidden" name="mode" value="maj_statut">

<input type="hidden" name="start" value="<?php echo vn($_GET['start'])?>">


<? 

$i = 0;

while ($r = mysql_fetch_object($qid)) { ?>

<tr bgcolor="<?echo ($i % 2 == 0 ? '#F4F4F4' : '#ffffff' );?>">

<td class="normal" align="center">

<a onClick="java script:return confirm('&ecirc;tes-vous s&ucirc;r de vouloir supprimer ce tag ?\nAttention : d&eacute;finitif !;');" class=normal href="<?=$_SERVER['PHP_SELF']?>?mode=suppr&id=<?=$r->id ?>"><img src="images/b_drop.png" alt="supprimer" border="0"></a></td>

<td class="normal" align="center"><?=$r->id?></td>

<td class="normal" align="center"><?=$r->tag_name?></td>

<td class="normal" align="center"><?php echo $r->nbsearch;?></td>


<td class="normal" align="center">

<input type="hidden" name="id[]" value="<?php echo $r->id;?>">

<table width="100%" border="0"><tr><td class="normal" align="center">

<td class="normal" align="center"><?php echo $r->aff_front;?></td>


</td><td class="normal" width="10">

<input type="checkbox" name="change_statut<?php echo $r->id;?>">

</td></tr></table>


</td>

</tr>

<? 

$i++;} // Fin de la boucle While 


echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">";


?>

<select name="statut" class="formulaire1">

<option value="0">non visible</option>

<option value="1">visible</option>

</select>


<?php

echo "<input type=\"submit\" value=\"modifier le statut des Tags coch&eacute;s\" class=\"bouton\"></p>";


echo "</form>";


echo "</td></tr>";



echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">";


// Boutons pr&eacute;c&eacute;dent et suivant 

$nb=30;

if($start) {


echo("<a class=normal href=\"".$_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&sort=".vb($_GET['sort'])."&start=".(vn($_GET['start']) - $nb)."&order=".vb($_GET['order'])."\">page pr&eacute;c&eacute;dente</a>");


} 


$result = mysql_query($sql_count); 


$row = mysql_fetch_row($result); 


if($row[0]>($start+$nb)) 

{ 


if($start) {echo(" / ");} 


echo("<a class=normal href=\"".$_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&sort=".vb($_GET['sort'])."&start=".(vn($_GET['start']) + $nb)."&order=".vb($_GET['order'])."\">page suivante</a>"); 


} 


echo("<br />");




// Affichage des pages 

if($row[0]>$nb) {// le nombre d'enreg. est > au nb de lignes d'affichage ?


for($index=0;($index*$nb)<$row[0];$index++) // oui alors on affiche les num&eacute;ros de pages

{ 

?>

<a class="normal" href="<?echo $_SERVER['PHP_SELF']."?mode=".vb($_GET['mode'])."&id=".vb($_GET['id'])."&statut=".vb($_GET['statut'])."&order=".$order."&sort=".$sort."&start=".$index*$nb; ?>"><?echo $index+1; ?></a>&nbsp;

<?

} 


}


echo "</td></tr>";


} 


}?>


</table>

Voila ma contribution avec les pages précédentes et suivantes qui fonctionnent.

Merci a atila pour tout le reste des pages, je n'ais fait que des corrections mineures + pages suivantes et précédentes.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

7) dans administrer/modeles/haut.php

Ajoutez:

				<div> <a tabindex="<?echo $i = $i+1;?>"  href="<?=$wwwroot?>/administrer/tags.php">Liste des tags de recherche</a></div>
Juste avant:
				<div> <a tabindex="<?echo $i = $i+1;?>"  href="<?=$wwwroot?>/administrer/proforma.php">Liste des proformas</a></div>

Ainsi dans outils de l'administrations, vous aurez acces à la page de gestion des tags :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voila ma contribution avec les pages précédentes et suivantes qui fonctionnent.

Willy

:)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Tu peux les valider atila s'il te plait ou tu as déja tout mis sur ton site ?

Car vu l'heure qu'il était :)

Willy

J'ai edité les premier post.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

:)

J'ai édité mon message, désolé :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

:)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ne manque lpsu qu'à faire un enieme topic, celui là prenant en compte l'ensemble des script propre et tout regroupé, et si possible figé :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

:)

J'ais pas regardé qui a fait le code des pages, j'ai copié collé, modifié et testé.

Je pensais que c'était 3DVF et comme c'est son poste, je ne pensais pas utile de dire que c'était ces sources.

Là elles sont a toi, je les ais simplement modifiées.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ne manque lpsu qu'à faire un enieme topic, celui là prenant en compte l'ensemble des script propre et tout regroupé, et si possible figé :)

Si tu peux tester de a à z et valider l'enssemble, ensuite DVF mettra à jour sont topic n°1.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je suis désolé Willy, mais là je suis en stress avec les derniers preparatifs de mon exams de demain...

Alors je suis en fantôme jusqu'à demain soir :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pas de soucis, courage pr demain !

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping