3DVF
Utilisateur open source-
Compteur de contenus
215 -
Inscrit(e) le
-
Dernière visite
Messages posté(e)s par 3DVF
-
-
Oui j'ai pris en compte ta modif et ça fonctionne.
Sinon voila ce que je fait comme traitement des mots avant insertion dans la base, mais ce n'est pas convaincant.
$mot_clef= strtr($motclef,
"ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇ
ÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ",
"SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaac
eeeeiiiionoooooouuuuyy");
$mot_clef = eregi_replace("[^a-z0-9]", "", $motclef);[/codebox]En fait je souhaite supprimé les mots avec plein de caractéres bizzare (accentuation foireuse etc...), autre gros soucis, c'est que en l'etat il n'y a aucun filtre et donc je me retrouve avec les mots de vos test, ainsi que tous est n'importe quoi.
Bref c'est la partie à amélioré.
A+
-
C'est a dire, je viens de regarder et là je n'ais pas de soucis particulier.Willy
C'est corrigé depuis :)
-
j'ai des bug au niveau du moteur de recherche maintenant.
-
Moi je fais tous en LIVE :)
Bon je fait appel au pro des requétes MYSQL pour amélioré les miennes, et surtout celle dans la page recherche, qui insére ou non un mot, j'ai d'ailleur un soucis dans cette partie, car les recherche vide sont inséré dans la base, alors que normalement je ne l'ai teste pas!!!
J'ai remis en ligne, mon nuage, c'est dingue le nombre de recherche effectué sur notre boutique en si peux de temps.
A+
PS: j'ai déja commencé a y apporté quelques amélioration.
-
Mince j'ai fait un copier/coller et cela ne marche pas !!!!!! :)Heu étrange là.
-
En recopiant ton code j'ai celaJe n'affiche pas les warning, donc forcément :)
Il nous reste du pai nsur la planche :)
L'ajout dans recherche.php :
// Insertion Tag de recherche
$query = "SELECT COUNT(*) FROM tag_cloud WHERE tag_name = '$motclef'";
$result = mysql_query($query);
$enr = mysql_fetch_array($result);
//echo "Nb de Lien : ".$enr[0]."";
if($enr[0] != ""){
if($enr[0] == 0 ){
$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`,`nbsearch`) VALUES ('', '$motclef','1')";
mysql_query($sql) or die(mysql_error());
//echo "Ajout de ".$motclef."";
}else{
$query = "SELECT * FROM tag_cloud WHERE tag_name = '$motclef'";
$result = mysql_query($query);
while ( $champ = mysql_fetch_array($result) )
{
//echo 'Resultat: '.$champ[id].' | '.$champ[tag_name].' - "'.$champ[nbsearch]."\" \n" ;
$id = $champ[id];
$nb_search = $champ[nbsearch];
$nb_search++;
//echo "Increment de ".$motclef." - ".$nbsearch."";
$sql = "UPDATE `tag_cloud` SET `nbsearch` = '$nb_search' WHERE `id` = $id LIMIT 1";
mysql_query($sql) or die(mysql_error());
}
}
}
// Fin Insertion[/codebox] -
http://www.3dvf.fr/tag.php voila mon test, normalement le tableau est limité a 180 pixel de large, mais si des mots trop long apparaissent, le tableau s'éllargi!!! Comment faire?
Merci
Le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<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:6px;color:#DFDFDF;} .nuage a.level1 {font-size:8px;color:#B8C9D6;} .nuage a.level2 {font-size:10px;color:#668AA8;} .nuage a.level3 {font-size:12px;color:#47657B;} .nuage a.level4 {font-size:14px;color:#E76300;} .nuage a.level5 {font-size:16px;color:#E76300;} .nuage a.level6 {font-size:18px;color:#E76300;} .nuage a.level7 {font-size:20px;color:#E76300;} .nuage a.level8 {font-size:22px;color:#E76300;} .nuage a.level9 {font-size:24px;color:#E76300;font-weight: bold} .nuage a.level10 {font-size:26px;color:#FF3300;font-weight: bold} </style></head><body topmargin="0" leftmargin="0" alink="#ff9900" bgcolor="#ffffff" link="#e86519" marginheight="0" marginwidth="0" text="#000000" vlink="#6e003a">
<?php
include("configuration.inc.php");
// N'oubliez pas de vous connectez à votre base de données
// Afin d'adapter le code à votre site internet, il vous suffit de modifier 3 choses :
// col est le nom du champs représentant le Tag Cloud
// ID est la clé primaire
// MA_TABLE est le nom de ma base de données
$query = "SELECT tag_name AS tag, nbsearch AS quantity FROM tag_cloud GROUP BY tag_name ORDER BY tag_name ASC";
$result = mysql_query($query);
// Boucle à travers les résultats afin de les mettres dans un simple tableau:
// $tag['col1'] = 12;
// $tag['col2'] = 25;
// etc. Ceci nous permetteras de calculer la taille de chacun d'entre eux.
while ($row = mysql_fetch_array($result)) {
$tags[$row['tag']] = $row['quantity'];
}
// Taille maximal - Taille minimal
$max_size = 250; // max font size en %
$min_size = 100; // min font size en %
// Obtenir la plus petit valeur et la plus grande du tableau
$max_qty = max(array_values($tags));
$min_qty = min(array_values($tags));
// Déterminer l'étendu des valeurs
$spread = $max_qty - $min_qty;
if (0 == $spread) { // we don't want to divide by zero
$spread = 1;
}
// Détermine l'incrémentation du font-size
$step = ($max_size - $min_size)/($spread);
?>
<table width="180" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div class="nuage" style="margin: 0pt auto; line-height: 25px;"><font face="arial,helvetica,sans-serif" size="3">
<?
// Boucle à travers le tableau
foreach ($tags as $key => $value) {
// Calcul du font-size CSS
// trouvez les valeur supérieurs au $min_qty
// multiplier par la valeur de l'incrémentatiion ($size)
// et ajouter la valeur du minimum ($min_size)
$size = $min_size + (($value - $min_qty) * $step);
// Afin de terminer le script, il vous suffit de modifier les caractères
// '####' par le lien de destination voulu.
echo '<a href="http://www.3dvf.fr/achat/recherche.php?motclef='.$key.'" style="font-size: '.$size.'%"';
echo ' title="'.$value.' recherche(s) sur le mot '.$key.'"';
echo '>'.$key.'</a> ';
}
?>
</font></div>
</td>
</tr>
</table>
</body>
</html>[/codebox]La table SQL :
[codebox]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',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=55 ; -
Oui apres une nuit de fonctionnement c'est un peu tous est n'importe quoi, tout le site ce vois décallé a cause de mot trop long etc.
il vas me falloir encore améliorer la chose, et trouvé un moyen de gerer correctement les accent.
-
je le poste demain, et comme ça on pourras sans doute amélioré la chose.
A+
-
En suivant vos conseil, voila le résultat :
Il ne me reste plus qu'a optimisé les accés BDD.
A+
PS : du coup cela est super instructif sur le comportement des visiteurs.
-
Question existent il une fonction increment directement dans une commande mysql?
du style
$sql = "UPDATE `tag_cloud` SET `nbsearch` = 'INC nbsearch' WHERE `id` = $id LIMIT 1";
Merci :)
-
Pas bon, tu vas remplir ta table de données existantes, faut verifier si ca existe en table et mettre à jour le compteur.Heu oui la je rempli ma table, et ensuite lors de l'affichage je compte, c'est un premier jet qui fonctionne, et ça demande correction/amelioration, je suis preneur de vos idées.
A+
-
je fait des test la, 1ere etape remplir une table sql avec les mots rechercher sur le site, donc je modifi le fichier /achat/recherche.php
ADD :
// Insertion Tag de recherche
$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`) VALUES ('', '$motclef')";
mysql_query($sql) or die(mysql_error());
// Fin Insertion[/codebox]A suivre
-
Heu c'est quoi un systeme de nuages ? :)Willy
-
Sinon une idée c'est de gégérer le TAg Cloud a partir des Meta présent dans les fiches produit : http://www.3dvf.fr/tag.php
c'est pas encore au point, il faudrais que j'arrive a extraire chaque mot du champs meta_tag.
J'ai tester avec le poids ça fonctionne bien.
A+
-
Effectivement il faudrait inscrire dans la base tous les mots qui sont recherché, pour ensuite faire un count!!!
Ca risque d'etres lourd non?
-
effectivement la ça marche
Merci Willy
-
Ca ne marche pas, voici ce que j'ai fait :
Sous mysql, j'ai ajouter un status, "Clients Soft | user", mais malgré cela j'ai systématiquement un message comme quoi je ne suis pas authorisé...
<?
include("../configuration.inc.php");
necessite_identification();
necessite_priv("user");
$DOC_TITLE = "[Rubrique Support de $site]";
include("modeles/haut.php");
?>
Merci
-
Oui je veux que ce soit des client normaux, juste un accès en plus a une rubrique.
-
Salut,
Je souhaite créer une section sur ma boutique qui vas etres réservé a mes client.
J'ai besoin donc d'un status supplémentaire à validé dans l'admin de la boutique, afin d'éviter que les personnes n'ayant pas acheter le produit spécifique ne puissent pas accédé à la rubrique.
Avez vous quelques piste à me donner?
Merci
-
Pour le formulaire contact, tu peux effectuer la modification que j'explique ici : http://forum.peel.fr/index.php?showtopic=1046
-
9a vas me valoir une remise sur la prochaine MAJ peel ^^
-
1) Télécharger le script http://www.cryptographp.com/ actuellement version 1.4 est copier le dossier crypt à la racine de votre site.
2) Editer la page utilisateurs/contact.php (peel version 3.x)
3)
Après la ligne : include ("../configuration.inc.php");
inserez : $cryptinstall="../crypt/cryptographp.fct.php";
include $cryptinstall;
4) Au niveau du formulaire inserez :
<tr><td colspan=2 align=center>Sécurité anti Spam :<br /> <?php dsp_crypt(0,1); ?></td></tr>
<tr><td colspan=2>Recopier le code:<input type="text" name="code"><? if (isset($erreurs['captcha'])) echo $marqueur_erreur." ".$message_erreur['captcha'] ?></td></tr>
5) Dans la fonction : function valide_form(&$frm, &$erreurs) inserez :
if (chk_crypt($_POST['code'])) {
}else{
$erreurs['captcha'] = true;
$msg['captcha'] = "Code de vérification incorrect";
}
Voila votre formulaire est sécurisé.
Pascal - 3DVF
-
je vais poster les modif effectuer dans mon fichier contact.php et tu pourras faire le correctif.
Comment créer un nuage de tags php/mysql
dans Module PEEL Premium pour PEEL SHOPPING
Posté(e) · Signaler ce message
C'est a dire?