Olikos
Utilisateur open source-
Compteur de contenus
5 -
Inscrit(e) le
-
Dernière visite
Tout ce qui a été posté par Olikos
-
Olikos a ajouté un message dans un sujet Ajouter une nouvelle option de recherche
N'ayant malheureusement pas eu de réponse depuis deux mois, j'ai essayé de contourner la difficulté pour arriver au résultats désiré. Aussi, je me permets de donner ici mon astuce si ça peut aider certaines personnes. Je précise que c'est sous peel 5.7 et non sous la nouvelle version.
Dans le fichier search.php, il faut en premier ajouter une ou plusieurs nouvelle valeur de recherche.
Par exemple :
Ensuite, rajouter dans "build_terms_clause()" au dessus de "default:"
Maintenant passons à mon bricolage maison (il doit y avoir mieux, mais je n'y parviens pas)
Il faut aller dans "build_sql_produits()"
Recopier tout ce qui est contenu entre le "$requete" et le "return $requete", ce qui donne dans mon cas ceci
A présent, on se sert de la variable $match pour remplacer tout le contenu de la requête par ceci :
Ça n'est peut-être pas très optimisé et lourd, mais au moins ça fonctionne. Faute de mieux... Si vous avez une idée pour optimiser ça, je suis évidemment preneur.
-
0
-
-
Olikos a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Ajouter une nouvelle option de rechercheBonjour.
Actuellement, le fichier search.php propose trois options "Tous les mots", "N'importe quel mot", "La phrase exacte".
Je souhaiterai pouvoir y rajouter une autre option qui correspondrait à peu près à "Tous les mots + prix > 10€".
Dans search.php, j'ai donc déclaré la valeur $fields[] = 'p.prix'; afin de pouvoir chercher à ce niveau.
Par contre, ensuite, je ne sais pas ce que je dois faire. Apparemment, il faut changer une partie du code suivant , ou modifier le $cmptype :
Pouvez-vous me dire si c'est possible ? Et si oui, comment faire ?
Merci.
- 2 réponses
- 3 113 vues
-
Olikos a ajouté un message dans un sujet Modification des résultats du moteur de recherche
C'est parfaitement ce que je voulais, merci beaucoup.
Ça fonctionne et ça ne ramène plus aucun doublon !
-
0
-
-
Olikos a ajouté un message dans un sujet Modification des résultats du moteur de recherche
Merci pour cette réponse.
Apparemment, le SELECT DISTINCT(p.id) est bel et bien présent. En vérifiant directement dans la base SQL, je pense que le problème vient du fait que la recherche s'effectue aussi sur l'id de la catégorie. Et dans mon exemple, la requête ramène bien plusieurs entrées provenant de plusieurs catégories différentes (logique) même si le produit est au final le même.
Est-il possible de rajouter dans la requête une distinction via le parent_id ? Il me semble que ça résoudrait cet affichage multiple.
Voici la fonction telle qu'elle est actuellement dans le fichier search.php :
/**
* build_sql_produits()
*
* build the sql statement
* this will build the sql based on the given information
* @param mixed $terms
* @param mixed $fields
* @param mixed $match
* @return
*/
function build_sql_produits($terms, $fields, $match)
{
$requete = 'SELECT DISTINCT(p.id)
,c.id AS categorie_id
,c.nom_' . $_SESSION['langue'] . ' AS categorie';
// ajout des champs $fields où $term sera recherché
foreach($fields as $value) {
$requete .= ', ' . $value . ' ';
}
$requete .= 'FROM peel_produits p, peel_produits_categories pc, peel_categories c
WHERE p.id = pc.produit_id AND pc.categorie_id = c.id AND p.etat = "1" AND ' . build_terms_clause($terms, $fields, $match) . '
ORDER BY p.id DESC
LIMIT 100';
return $requete;
}
-
0
-
-
Olikos a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Modification des résultats du moteur de rechercheBonjour.
Nouvel utilisateur de Peel Shopping 5.7 que je teste depuis plusieurs semaines, je m'efforce ces derniers temps à adapter le code à mes besoins. Jusqu'ici, tant qu'il suffisait de changer une fonction de place ou de supprimer une portion de code qui m'était inutile, je m'en suis sorti. Mais je bute actuellement sur un problème que je ne parviens pas à résoudre.
Il m'arrive quelquefois de faire figurer un même produit dans plusieurs catégories différentes.
Exemple de ce type de cas de figure :
Catégorie principale : Blu-Ray et DVD
Sous catégorie 1 : Blu-Ray
Sous catégorie 2 : DVD
Aucun problème particulier à signaler pour l'affichage, puisque de façon intuitive et logique, un combo Blu-Ray+DVD apparait dans les trois catégories.
Le problème c'est que s'il on se met à faire une recherche en utilisant le moteur de recherche, ça remonte forcément 3 produits (1 par catégorie), alors qu'en fait il n'y en a qu'un seul.
Je pense qu'il faut changer un bout de code dans le fichier search.php à la racine de Peel Shopping, mais je ne sais pas du tout comment faire. J'ai pensé rajouter un contrôle au niveau de $prod['id'], dans ce le cas où il trouve le même, il ne l'affiche pas plusieurs fois. Ou alors, faire un contrôle forçant le moteur de recherche à n'afficher que la catégorie principale, sans les autres.
Ne sachant pas coder cette fonction, quelqu'un peut-il m'aider ?
Merci.
- 5 réponses
- 1 996 vues