- Posts: 51
- Thank you received: 0
Afficher le nombre de produit - module de filtre
- svillechange
-
Topic Author
- Offline
Less
More
13 years 3 months ago #106669
by svillechange
Afficher le nombre de produit - module de filtre was created by svillechange
Bonjour à tous
Voila mon soucis
J'utilise le module de filtrage avec les champs personnalisés, jusque la pas de soucis, mais j'aimerais afficher le nombre de produit présent dans mes choix.
Par exemple, j'ai un choix par année et j'aimerais que chaque année me donne le nombre de produit présent
Merci de votre réponse
Ci joint une image explicative
Voila mon soucis
J'utilise le module de filtrage avec les champs personnalisés, jusque la pas de soucis, mais j'aimerais afficher le nombre de produit présent dans mes choix.
Par exemple, j'ai un choix par année et j'aimerais que chaque année me donne le nombre de produit présent
Merci de votre réponse
Ci joint une image explicative
Please Log in or Create an account to join the conversation.
13 years 3 months ago #106763
by Eliot
Replied by Eliot on topic Afficher le nombre de produit - module de filtre
Bonjour,
C'est en effet une idée intéressante. Un problème se pose néanmoins, c'est que pour afficher de telles informations il faudrait effectuer des requêtes au chargement de la page pour connaitre le nombre de produit correspond. Cela signifie grossièrement qu'il faut faire un nombre de requête égale au requêtes qui seraient faites si l'on cliquait sur tous les filtres...
Outre le fait que le temps de chargement serait beaucoup plus long, le système actuel ne permet pas de faire ce genre de modification aisément.
Nous notons tout de même l'idée.
Si vos produits ne bougent pas trop (en terme de diversité) vous pouvez toujours afficher cette information en l'inscrivant en dur dans le code. Si cela vous intéresse, je vous donnerais la marche à suivre.
C'est en effet une idée intéressante. Un problème se pose néanmoins, c'est que pour afficher de telles informations il faudrait effectuer des requêtes au chargement de la page pour connaitre le nombre de produit correspond. Cela signifie grossièrement qu'il faut faire un nombre de requête égale au requêtes qui seraient faites si l'on cliquait sur tous les filtres...
Outre le fait que le temps de chargement serait beaucoup plus long, le système actuel ne permet pas de faire ce genre de modification aisément.
Nous notons tout de même l'idée.
Si vos produits ne bougent pas trop (en terme de diversité) vous pouvez toujours afficher cette information en l'inscrivant en dur dans le code. Si cela vous intéresse, je vous donnerais la marche à suivre.
The following user(s) said Thank You: svillechange
Please Log in or Create an account to join the conversation.
- svillechange
-
Topic Author
- Offline
Less
More
- Posts: 51
- Thank you received: 0
13 years 3 months ago #106764
by svillechange
Replied by svillechange on topic Afficher le nombre de produit - module de filtre
Bonjour et merci pour la réponse.
Je veut bien la procédure pour le mettre en dur dans le code, et voir si cela me suffit.
Cordialement
Je veut bien la procédure pour le mettre en dur dans le code, et voir si cela me suffit.
Cordialement
Please Log in or Create an account to join the conversation.
13 years 3 months ago #106776
by Eliot
Replied by Eliot on topic Afficher le nombre de produit - module de filtre
La procédure n'est pas des plus simple non plus mais voilà la marche à suivre.
Il faut que vous vous rendiez dans le dossier classes de administrator/com_hikashop, ouvrer le fichier filter.php
A partir de là, vu que vous utiliser des listes, faites une recherche sur "hikashop_filter_list" dans le document. Vous allez voir des morceaux de code HTML en fonction des éléments à afficher.
Ensuite, en fonction des informations affichés, vous aller devoir faire une boucle avec des conditions pour afficher le bon nombre en fonction de la valeur.
Par exemple pour les catégories, trouvez ce morceau de code:
Il faut que vous ajoutiez après le foreach quelque chose comme:
Avec chaque cas. Une fois cela fait, il suffit d'ajouter la variable en fin de ligne comme suit:
C'est assez fastidieux mais c'est la seule solution qui ne modifie pas en profondeur le code.
Il faut que vous vous rendiez dans le dossier classes de administrator/com_hikashop, ouvrer le fichier filter.php
A partir de là, vu que vous utiliser des listes, faites une recherche sur "hikashop_filter_list" dans le document. Vous allez voir des morceaux de code HTML en fonction des éléments à afficher.
Ensuite, en fonction des informations affichés, vous aller devoir faire une boucle avec des conditions pour afficher le bon nombre en fonction de la valeur.
Par exemple pour les catégories, trouvez ce morceau de code:
Code:
//DISPLAY CATEGORIES
if($filter->filter_data=='category'){
$categories_name=parent::getCategories($filter, $datas);
if(!empty($categories_name)){
foreach($categories_name as $cat){
if(!empty($selected) && (is_numeric($selected)&&$cat->category_id==$selected) ||(is_array($selected) && in_array($cat->category_id, $selected))){
$html.='> <a class="hikashop_filter_list_selected" style="font-weight:bold">'.$cat->category_name.'</a>';
$html.='<a style="cursor:pointer; text-decoration:none" onclick="document.getElementById(\'filter_'.$filter->filter_namekey.'_'.$divName.'\').value=\'\'; document.forms[\'hikashop_filter_form_'.$divName.'\'].submit();"> <img src="'.HIKASHOP_IMAGES.'delete2.png" /></a>'.$br;
}else{
$html.='> <a class="hikashop_filter_list" onclick="document.getElementById(\'filter_'.$filter->filter_namekey.'_'.$divName.'\').value=\''.$cat->category_id.'\'; document.forms[\'hikashop_filter_form_'.$divName.'\'].submit();">'.$cat->category_name.'</a>'.$br;
}
}
}
}
Il faut que vous ajoutiez après le foreach quelque chose comme:
Code:
$nbResult='';
if($cat->category_name=='Rock'){
$nbResult=15;
}else if($cat->category_name=='Pop'){
$nbResult=23;
}else if(){
...
}
Avec chaque cas. Une fois cela fait, il suffit d'ajouter la variable en fin de ligne comme suit:
Code:
if(!empty($selected) && (is_numeric($selected)&&$cat->category_id==$selected) ||(is_array($selected) && in_array($cat->category_id, $selected))){
$html.='> <a class="hikashop_filter_list_selected" style="font-weight:bold">'.$cat->category_name.'</a>('.$nbResult.')'.;
$html.='<a style="cursor:pointer; text-decoration:none" onclick="document.getElementById(\'filter_'.$filter->filter_namekey.'_'.$divName.'\').value=\'\'; document.forms[\'hikashop_filter_form_'.$divName.'\'].submit();"> <img src="'.HIKASHOP_IMAGES.'delete2.png" /></a>'.$br;
}else{
$html.='> <a class="hikashop_filter_list" onclick="document.getElementById(\'filter_'.$filter->filter_namekey.'_'.$divName.'\').value=\''.$cat->category_id.'\'; document.forms[\'hikashop_filter_form_'.$divName.'\'].submit();">'.$cat->category_name.'</a>('.$nbResult.')'.$br;
}
C'est assez fastidieux mais c'est la seule solution qui ne modifie pas en profondeur le code.
Please Log in or Create an account to join the conversation.
- svillechange
-
Topic Author
- Offline
Less
More
- Posts: 51
- Thank you received: 0
13 years 3 months ago #106779
by svillechange
Replied by svillechange on topic Afficher le nombre de produit - module de filtre
Merci pour la réponse
En effet vu que notre catalogue évolue sans cesse cela va être assez fastidieux.
Sinon comment utiliser les mots clés de chaques produit en faisant un lien de recherche.
Par exemple:
Pop rock . quand je clique dessus ça me cherche tous les produits avec le mot pop rock écrit auparavant dans les keywords (mots clés) du produit
Cordialement
En effet vu que notre catalogue évolue sans cesse cela va être assez fastidieux.
Sinon comment utiliser les mots clés de chaques produit en faisant un lien de recherche.
Par exemple:
Pop rock . quand je clique dessus ça me cherche tous les produits avec le mot pop rock écrit auparavant dans les keywords (mots clés) du produit
Cordialement
Please Log in or Create an account to join the conversation.
- svillechange
-
Topic Author
- Offline
Less
More
- Posts: 51
- Thank you received: 0
13 years 3 months ago #106784
by svillechange
Replied by svillechange on topic Afficher le nombre de produit - module de filtre
et en admettant que j'utilise non pas des champs personnalisés, mais les catégories hikashop de mes styles, y'a t'il un moyen plus simple de dire que dans la categorie pop il y'a tant de titres, car j'ai essayé dans le module filtre d'afficher mes catégories pas de soucis mais toujours pas de chiffres.
Cordialement
Cordialement
Please Log in or Create an account to join the conversation.
13 years 3 months ago #106788
by Eliot
Replied by Eliot on topic Afficher le nombre de produit - module de filtre
Bonjour,
Pour ce qui est des mots-clefs qui se transforment en lien ce n'est pas possible mais c'est quelque chose que nous pourrions rajouter.
Là encore il est possible de modifier un peu le fichier filtre.php et d'utiliser le champ de recherche pour en faire quelque chose de similaire mais ce n'est pas très simple.
Pour l'affichage du nombre de produit nous n'avons simplement pas mis en place d'option de ce genre donc peu importe le champ utilisé cela n'apparaitra pas.
Pour ce qui est des mots-clefs qui se transforment en lien ce n'est pas possible mais c'est quelque chose que nous pourrions rajouter.
Là encore il est possible de modifier un peu le fichier filtre.php et d'utiliser le champ de recherche pour en faire quelque chose de similaire mais ce n'est pas très simple.
Pour l'affichage du nombre de produit nous n'avons simplement pas mis en place d'option de ce genre donc peu importe le champ utilisé cela n'apparaitra pas.
Please Log in or Create an account to join the conversation.
- svillechange
-
Topic Author
- Offline
Less
More
- Posts: 51
- Thank you received: 0
13 years 3 months ago #106789
by svillechange
Replied by svillechange on topic Afficher le nombre de produit - module de filtre
Ok pour le filtre j'oublie pour le moment
Pour les tags qui se transforment en lien, comment faire car notamment c'est une fonction qui existe dans "K2" que je trouve particulièrement intéressante je pense pour pas mal de gens.
Merci de votre réponse
Pour les tags qui se transforment en lien, comment faire car notamment c'est une fonction qui existe dans "K2" que je trouve particulièrement intéressante je pense pour pas mal de gens.
Merci de votre réponse
Please Log in or Create an account to join the conversation.
13 years 3 months ago - 13 years 3 months ago #106793
by Eliot
Replied by Eliot on topic Afficher le nombre de produit - module de filtre
Il faut que vous créiez un filtre de type text, s'applicant sur product_keyword, et l'option "deletable filter" activé.
Ensuite, dans le fichier filtre.php, remplacer ces lignes:
Et remplacer le par ceci:
SPECIAL est le nom de votre filtre et n'oubliez pas de changer la valeur de value (qui est "strat")
Ensuite, dans le fichier filtre.php, remplacer ces lignes:
Code:
if($filter->filter_options['title_position']=='inside'){
$onClick='';
if(empty($name)){
$name=$filter->filter_name;
$onClick=' onclick="this.value=\'\';"';
}
$html='<input '.$style.' name="filter_'.$filter->filter_namekey.'" '.$onBlur.' style="width:90%;" type="text" '.$onClick.' id="filter_text_'.$filter->filter_namekey.'" value="'.$name.'"/>';
}else{
$html = '<input '.$style.' name="filter_'.$filter->filter_namekey.'" '.$onBlur.' type="text" id="filter_text_'.$filter->filter_name.'" value="'.$name.'">';
}
Et remplacer le par ceci:
Code:
if($filter->filter_name='SPECIAL'){
$html = '<input type="hidden" '.$style.' name="filter_'.$filter->filter_namekey.'" '.$onBlur.' type="text" id="filter_'.$filter->filter_namekey.'_'.$divName.'" value="'.$name.'">';
$html .= '> <a class="hikashop_filter_list" onclick="document.getElementById(\'filter_'.$filter->filter_namekey.'_'.$divName.'\').value=\'strat\'; document.forms[\'hikashop_filter_form_'.$divName.'\'].submit();">filter_'.$filter->filter_namekey.'</a>';
}else{
if($filter->filter_options['title_position']=='inside'){
$onClick='';
if(empty($name)){
$name=$filter->filter_name;
$onClick=' onclick="this.value=\'\';"';
}
$html='<input '.$style.' name="filter_'.$filter->filter_namekey.'" '.$onBlur.' style="width:90%;" type="text" '.$onClick.' id="filter_text_'.$filter->filter_namekey.'" value="'.$name.'"/>';
}else{
$html = '<input '.$style.' name="filter_'.$filter->filter_namekey.'" '.$onBlur.' type="text" id="filter_text_'.$filter->filter_name.'" value="'.$name.'">';
}
}
SPECIAL est le nom de votre filtre et n'oubliez pas de changer la valeur de value (qui est "strat")
Last edit: 13 years 3 months ago by Eliot.
Please Log in or Create an account to join the conversation.
- svillechange
-
Topic Author
- Offline
Less
More
- Posts: 51
- Thank you received: 0
13 years 3 months ago #106823
by svillechange
Replied by svillechange on topic Afficher le nombre de produit - module de filtre
Merci eliot je vais essayer ça cet après midi et je vous tiendrais au courant.
Cordialement
Cordialement
Please Log in or Create an account to join the conversation.
11 years 2 months ago #209727
by vincent79
Replied by vincent79 on topic Afficher le nombre de produit - module de filtre
Bonjour,
Je suis tombé sur ce sujet et je me demandais si il était maintenant possible d'afficher le nombre de produits dans le module filtre?
Merci.
Je suis tombé sur ce sujet et je me demandais si il était maintenant possible d'afficher le nombre de produits dans le module filtre?
Merci.
Please Log in or Create an account to join the conversation.
11 years 2 months ago #209738
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Replied by Jerome on topic Afficher le nombre de produit - module de filtre
Bonjour,
Malheureusement non ; comme indiqué par Eliot dans un message précédent, cela demande de faire un grand nombre de requête et cela ferait grandement ralentir le chargement des pages avec des filtres.
L'idée serait de changer une partie de la structure des filtres ou de mettre en place un système de cache.
Cordialement,
Malheureusement non ; comme indiqué par Eliot dans un message précédent, cela demande de faire un grand nombre de requête et cela ferait grandement ralentir le chargement des pages avec des filtres.
L'idée serait de changer une partie de la structure des filtres ou de mettre en place un système de cache.
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Please Log in or Create an account to join the conversation.
Time to create page: 0.259 seconds