Posted 6 Jun 2007 · Report post 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. Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post ah bravo, maintenant va falloit mettre à jour la page tag et tags_liste de admin pour lesquels j'ai tout mis avec afficheFront Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post 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. Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post Y a pas à créer les pages pour administrer les tags ? Willy Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post il va la mettre ... c'est le dev que j'ai fait cet apres midi. Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post Dans le code 1) remplacer: AUTO_INCREMENT=159 Par: AUTO_INCREMENT=1 Willy Share this post : post Share on other sites
Posted 6 Jun 2007 · Report post 3DVF peux tu EDITER ton post avec ces modifs? comme ca pas besoin de suivre le fil du sujet pour corriger :) Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 ! Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post ouaip, le reste restant le même. Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 5) ajouter le fichier tags.php dans administrer: <? include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); $DOC_TITLE = "Gérer les Tags de recherche"; include("modeles/haut.php"); switch (vb script:return confirm('êtes-vous sûr de vouloir supprimer ce tag ?\nAttention : dé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és\" class=\"bouton\"></p>"; echo "</form>"; echo "</td></tr>"; echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">"; // Boutons précé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écé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é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> <? } } echo "</td></tr>"; } }?> </table> Voila ma contribution avec les pages précédentes et suivantes qui fonctionnent. Willy Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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é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('êtes-vous sûr de vouloir supprimer ce tag ?\nAttention : dé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és\" class=\"bouton\"></p>"; echo "</form>"; echo "</td></tr>"; echo "<tr><td colspan=\"10\" class=\"normal\" align=\"center\">"; // Boutons précé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écé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é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> <? } } 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post Voila ma contribution avec les pages précédentes et suivantes qui fonctionnent. Willy :) Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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. Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post :) J'ai édité mon message, désolé :) Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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é :) Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post :) 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post 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 :) Share this post : post Share on other sites
Posted 7 Jun 2007 · Report post Pas de soucis, courage pr demain ! Willy Share this post : post Share on other sites