3DVF
Utilisateur open source-
Compteur de contenus
215 -
Inscrit(e) le
-
Dernière visite
Messages posté(e)s par 3DVF
-
-
Débat fort interessant sur le nuage de tag ;)
Concernant le RSS je pense que cela est possible mais de la a savoir comment.
Tu veux un RSS sur quoi précisement, tous les produit, les nouveautés, les promos?
A+
-
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.
-
:) mouais :)n'empeche que bientot il va mettre la partie admin dans son autre post, en gros willy c'est les deux pages plus haut avec juste le nom du champs qui enregistre si il doit afficher ou non à modifier par copier/coller...
J'aicréer un autre Message pour plus de clarté, je ne voulais pas te froissé!!
-
ah bravo, maintenant va falloit mettre à jour la page tag et tags_liste de admin pour lesquels j'ai tout mis avec afficheFrontj'ai fait la modif.
-
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 Insertionb) 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.
-
alors 3DVF ? ca marche comme tu veux?Ayé tous marche nickel, il ne me reste plus qu'a faire un package que je vais vous revendre :)
Donc ça tourne toutes la nuit et demain Go validation avec trasfert du script ici .
-
Reste à mettre de dvp poru la page de recherche et si l'article cherché est trouév ou non.Willy
Oui c'est fait ça, Update de mon message au dessus, y a une erreur.
-
je teste, quelle vitesse :)
EDIT : Une erreur de connexion à la base s est produite 24.
Unknown column 'afficheFront' in 'field list'
Quand je veux updater le status
-
C'est possible que tu me post ici un petit dump avec par exemple une quarantaine de recherche?Voila :)
-- phpMyAdmin SQL Dump
-- version 2.6.2-Debian-3sarge3
-- [url="http://www.phpmyadmin.net"]http://www.phpmyadmin.net[/url]
--
-- Serveur: localhost
-- Généré le : Mercredi 06 Juin 2007 à 17:17
-- Version du serveur: 4.1.15
-- Version de PHP: 4.3.10-19
--
-- Base de données: `sitefr`
--
-- --------------------------------------------------------
--
-- 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=159 ;
--
-- Contenu de la table `tag_cloud`
--
INSERT INTO `tag_cloud` VALUES (1, 'maya', 19, 1);
INSERT INTO `tag_cloud` VALUES (2, '3ds', 10, 1);
INSERT INTO `tag_cloud` VALUES (3, 'photoshop', 17, 1);
INSERT INTO `tag_cloud` VALUES (6, '3dsmax', 17, 1);
INSERT INTO `tag_cloud` VALUES (24, 'cinema4d', 15, 1);
INSERT INTO `tag_cloud` VALUES (8, 'cinema 4d', 11, 1);
INSERT INTO `tag_cloud` VALUES (9, 'dosch', 15, 1);
INSERT INTO `tag_cloud` VALUES (10, 'dosch 3d', 11, 0);
INSERT INTO `tag_cloud` VALUES (12, 'intuos', 24, 1);
INSERT INTO `tag_cloud` VALUES (13, 'Brazil r/s', 12, 1);
INSERT INTO `tag_cloud` VALUES (65, 'livre', 6, 1);
INSERT INTO `tag_cloud` VALUES (17, 'zbrush', 16, 1);
INSERT INTO `tag_cloud` VALUES (18, 'intuos', 21, 0);
INSERT INTO `tag_cloud` VALUES (89, 'Brazilirs', 10, 0);
INSERT INTO `tag_cloud` VALUES (20, 'Syflex', 17, 1);
INSERT INTO `tag_cloud` VALUES (21, 'Exposé', 17, 1);
INSERT INTO `tag_cloud` VALUES (22, 'vegas', 15, 0);
INSERT INTO `tag_cloud` VALUES (80, 'bryceia', 5, 0);
INSERT INTO `tag_cloud` VALUES (27, 'gnomon', 21, 1);
INSERT INTO `tag_cloud` VALUES (28, 'personnages', 15, 1);
INSERT INTO `tag_cloud` VALUES (29, 'Les Ateliers 3dsmax - Vol.1', 12, 1);
INSERT INTO `tag_cloud` VALUES (135, 'tabletteigraphique', 2, 0);
INSERT INTO `tag_cloud` VALUES (134, 'sdsimaxiO', 1, 0);
INSERT INTO `tag_cloud` VALUES (133, 'mangaisd', 1, 0);
INSERT INTO `tag_cloud` VALUES (132, 'syflex0sOappart', 2, 0);
INSERT INTO `tag_cloud` VALUES (34, 'DX Studio', 4, 1);
INSERT INTO `tag_cloud` VALUES (131, 'MUDBOX', 2, 0);
INSERT INTO `tag_cloud` VALUES (122, 'Exposec', 2, 0);
INSERT INTO `tag_cloud` VALUES (123, 'sDiStudioiMax', 4, 0);
INSERT INTO `tag_cloud` VALUES (124, 'sds', 3, 0);
INSERT INTO `tag_cloud` VALUES (125, 'sDiMax', 2, 0);
INSERT INTO `tag_cloud` VALUES (126, 'doschsd', 3, 0);
INSERT INTO `tag_cloud` VALUES (127, 'sDiMaxistudio', 2, 0);
INSERT INTO `tag_cloud` VALUES (128, 'sDSMaxistudio', 2, 0);
INSERT INTO `tag_cloud` VALUES (129, 'Exposcccccccc', 3, 0);
INSERT INTO `tag_cloud` VALUES (130, 'LesiAteliersisdsmaxiiVolC', 9, 0);
INSERT INTO `tag_cloud` VALUES (121, 'adobeiproduction', 4, 0);
INSERT INTO `tag_cloud` VALUES (120, 'adobe', 3, 1);
INSERT INTO `tag_cloud` VALUES (119, 'sexibombe', 2, 0);
INSERT INTO `tag_cloud` VALUES (118, 'petiteU0bite', 2, 0);
INSERT INTO `tag_cloud` VALUES (117, 'freeform', 2, 0);
INSERT INTO `tag_cloud` VALUES (116, 'Exposeeec', 1, 0);
INSERT INTO `tag_cloud` VALUES (115, 'Exposeeeec', 1, 0);
INSERT INTO `tag_cloud` VALUES (91, 'Expos', 9, 0);
INSERT INTO `tag_cloud` VALUES (90, 'DXiStudio', 10, 0);
INSERT INTO `tag_cloud` VALUES (78, 'dosch3d', 3, 0);
INSERT INTO `tag_cloud` VALUES (87, 'sdsmax', 14, 0);
INSERT INTO `tag_cloud` VALUES (88, 'cinemai4d', 8, 0);
INSERT INTO `tag_cloud` VALUES (75, 'xsi', 8, 0);
INSERT INTO `tag_cloud` VALUES (114, 'Exposeec', 1, 0);
INSERT INTO `tag_cloud` VALUES (113, 'doschisd', 4, 0);
INSERT INTO `tag_cloud` VALUES (72, 'DXStudio', 5, 0);
INSERT INTO `tag_cloud` VALUES (109, 'ddrisdram', 1, 0);
INSERT INTO `tag_cloud` VALUES (108, 'LesAtelierssdsmaxVolC', 4, 0);
INSERT INTO `tag_cloud` VALUES (70, 'modo', 10, 0);
INSERT INTO `tag_cloud` VALUES (110, 'bionatics', 3, 0);
INSERT INTO `tag_cloud` VALUES (111, 'bite', 1, 0);
INSERT INTO `tag_cloud` VALUES (112, 'petitebite', 1, 0);
INSERT INTO `tag_cloud` VALUES (81, 'bryce', 6, 0);
INSERT INTO `tag_cloud` VALUES (136, 'vray', 1, 0);
INSERT INTO `tag_cloud` VALUES (137, 'unfold', 4, 0);
INSERT INTO `tag_cloud` VALUES (138, 'Exposcccccccccc', 1, 0);
INSERT INTO `tag_cloud` VALUES (139, 'Toolbar', 1, 0);
INSERT INTO `tag_cloud` VALUES (140, 'Exposeiec', 1, 0);
INSERT INTO `tag_cloud` VALUES (141, 'driver', 1, 0);
INSERT INTO `tag_cloud` VALUES (142, 'Willy', 1, 0);
INSERT INTO `tag_cloud` VALUES (143, 'manga', 1, 0);
INSERT INTO `tag_cloud` VALUES (144, 'textures', 1, 0);
INSERT INTO `tag_cloud` VALUES (145, 'petiteibite', 1, 0);
INSERT INTO `tag_cloud` VALUES (146, 'UquotaaliasisketchbookiproUUquota', 2, 0);
INSERT INTO `tag_cloud` VALUES (147, 'aliasisketchbookipro', 1, 0);
INSERT INTO `tag_cloud` VALUES (148, 'Brazilrs', 1, 0);
INSERT INTO `tag_cloud` VALUES (149, 'Tollbarre', 1, 0);
INSERT INTO `tag_cloud` VALUES (150, 'dvd', 1, 0);
INSERT INTO `tag_cloud` VALUES (151, 'gnomonichracter', 1, 0);
INSERT INTO `tag_cloud` VALUES (152, 'gnomoniproduction', 2, 0);
INSERT INTO `tag_cloud` VALUES (153, '', 3, 0);
INSERT INTO `tag_cloud` VALUES (155, 'ic211', 1, 0);
INSERT INTO `tag_cloud` VALUES (154, 'lightroom', 1, 0);
INSERT INTO `tag_cloud` VALUES (156, 'ic 211', 1, 0);
INSERT INTO `tag_cloud` VALUES (157, 'bamboo', 1, 0);
INSERT INTO `tag_cloud` VALUES (158, 'wacom', 1, 0);[/codebox] -
tu n'as plus qu'à creer un module qui t'affiche toutes les recherches, eventuellement (ce que je ferai) en ligne et par 50 et avec la possibilité de modifier et supprimer chaque ligne et ou toutes les lignes la fois.Non je ne l'ai pas encore fait, parce que j'ai une tuile sur un serveur la, mais je vais m'y penché avec ton aide :).
-
Bon alors je viens de finalisé la chose de la maniére suivante :
Dans la page de recherche.php j'insere comme avant les mots qui sont cherché, ensuite si le resultat de la recherche n'est pas bon je taggue a 0, si le résultat est positif je taggue a 1.
Bilan le script ce gére tous seul et je garde dans la base l'intégralité des mot recherché.
Je prépare les explications est je vous soumet cela :)
-
du coup ta table devientCREATE TABLE `tag_cloud` ( `id` int(11) NOT NULL auto_increment, `tag_name` varchar(100) NOT NULL default '', `nbsearch` int(11) NOT NULL default '0', `afficheFront` int(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=55;
Oui c'est ça, en fonction ici : www.3dvf.fr/tag.php
Maintenant je doit faire le module admin de validation des affichages.
-
En effet dans ce but là, il faut placer le mot cherché dans la BDD dès le clic sur le bouton chercher.Pour moi, si tu veux savoir ce qui manque dans ton catalogue, il faut enregistrer toutes les requetes et ensuite les analyser dans le back office.
Le nuage c'est pour les clients, voir ce que les autres cherchent dans tes produits.
Willy
Oui il me reste la solution de faire une validation depuis l'admin.
-
Bonjour,Serait-il possible de poster le vrai bon code une bonne fois pour toute parce qu'avec tout ces code de partout je suis perdu...
Par avance merci
Pour l'idée de ce que je veux faire :
Je veux un nuage de tag, repésentatif des recherches de mes client ou futur client, afin de savoir quel produit manque a mon catalogue, quel produit est le plus intéressant a un moment donné.
Donc la je vais appliqué la modif au niveau de la page de recherche, ce qui vas régler le probléme des insulte etc.
Et ensuite je vous soumet le script final.
EDIT : en relisant mon message je m'apperçois d'un gros soucis, si je place l'inscription en bdd des recherches uniquement en cas de résultat positif, je n'aurais pas une vision réelle de ce que cherche les visiteurs!!!
-
je suis Nounou? ah mais tes experiences SM ne nous concerne pas :)Nounou = garde les enfants :)
-
Ca sert pour montrer ce que recherche le plus les clients,Par exemple il recherche plus le mot Personnage, or aucun produit ne compte personnage dans son nom... mais plutot dans description, et/ou ca sert à montrer ce que recherche les clientd.
D'ailleurs à ce sujet, pour éviter les "entrées foireuses" pourquoi ne mettrai tu pas ton script d'insertion en base au moment ou tu affiche des résultats de la recherche si il y en a au moins un?
Ah mes ce n'ets pas béte ce que tu dis.
Je le fait des demùain Apres midi, le matin je suis nounou ^^
-
ligne 50 c'est bien la requete?while ($row = mysql_fetch_array($result)) {
-
ca te donne quoi comme erreur?Bonne question je vais faire affiché les erreurs ^^
Warning: mysql_query(): Unable to save result set in /home/sitefr/cgshop-v2/tag.php on line 44
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sitefr/cgshop-v2/tag.php on line 50
Notice: Undefined variable: tags in /home/sitefr/cgshop-v2/tag.php on line 60
Warning: array_values(): The argument should be an array in /home/sitefr/cgshop-v2/tag.php on line 60
Warning: Wrong parameter count for max() in /home/sitefr/cgshop-v2/tag.php on line 60
Notice: Undefined variable: tags in /home/sitefr/cgshop-v2/tag.php on line 61
Warning: array_values(): The argument should be an array in /home/sitefr/cgshop-v2/tag.php on line 61
Warning: Wrong parameter count for min() in /home/sitefr/cgshop-v2/tag.php on line 61
-
ON PEUT REPONDRE A MA QUESTIONOui tous les mots qui sont saisie dans le formulaire sont entré dans la base et ou incrémenté, ensuite je l'ai affiche sous forme de nuage.
-
voilà, essaye caSELECT tag_name AS tag, nbsearch AS quantity FROM tag_cloud WHERE tag_name =(SELECT tag_name FROM tag_cloud GROUP BY tag_name ORDER BY nbsearch DESC LIMIT 40) GROUP BY tag_name ORDER BY tag_name ASC;
PAs bon :)
Willy il faut que je supprime le /b?
-
La solution de willy fonctionne, par contre celle du dessus non.
Donc reste maintenant a supprimé certain mots qui n'ont rien a faire dans le nuage :)
Premier jet :
Traitemant de la chaine
$interdit='enfoiré|connard|merde|salaud|bite|sexe|sex|penis';
$autre='*****';
$key1 = preg_replace('`\b('.$interdit.')[sx]?\b`si',$autre, $key);
// '####' par le lien de destination voulu.
if($key1 != '*****'){
echo '<li><a href="http://www.3dvf.fr/achat/recherche.php?motclef='.$key.'" ';
echo ' title="'.$value.' recherche(s) sur le mot '.$key.'"';
echo '>'.$key.'</a></li> ';
}
[/codebox]Ca fonctionne je supprime bite, mais pas petitebite!!!
A+
-
Bon petit etat des lieux :
On a là un bon exemple de la problématique avec ce script trop ouvert :
Certain mots sont des erreurs d'orthographe
(ex :
# Expos
# Exposé <-- Celui la c'est le bon produit
# Exposeec
# Exposeeec
# Exposeeeec
)
Les insultes (ex: bite, petitebite etc...)
Il faut aussi limité le nombre de résultat affiché, tout en gardant l'effet nuage de tag, c'est a dire qu'il represente tous les niveaux de recherche.
Et la j'ai besoin d'aide :)
Merci
-
Tu peux faire un filtre + un LIMIT 30 ou 40 dans ta requete SQL.Willy
Je bloque je ne sais pas faire, tu peux filer un tuyau :)
merci
-
je ne suis pas certain que tu ai besoin de les effacer (les mauvaises requetes) sachant qu'il ne te reste qu'à choisir les 30 ou 40 plus grosses demandes.Oui pas béte je vais faire ça avec la requete sql.
Faut que je place un filtre aussi, car j'ai droit au petitebite etc....
Nuage de Tags
dans Module PEEL Premium pour PEEL SHOPPING
Posté(e) · Signaler ce message
Concernant la modif, pour la navigation.
J'ai mis sur le ftp ton fichier tags.php en // a Tags.php et j'ai remplacé le fichier dans modele, et la navigation fonctionne.