THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Trie des produits

(11-02-2016 17:04:51)


Bonjours,

J'ai mis au point un système de trie suivant en jQuery:

Options de tries sont : marques, taille, types(new ou promo)

Lors d'un click,
je construis une url dans un champs caché qui reprend :
    catégorie en cours
    le lien (ex: taille) et sa valeur
    puis je lance l'appel du lien en jQuery qui se compose comme ci (ex: view=category&category_id=2&taille=6%3A%283%29 )

Au chargement de la page: je reprend url, je la découpe pour appliquer une classe active sur les liens qui ont été cliqué.

Ca marche mais ce n'est pas fonctionnel et en plus j'ai 200 ligne de jQuery... il suffit que le javascript soit désactivé ... Aie

Je souhaite faire la même chose mais avec des assign var des if et de trim ',' - mais je suis un peu perdu avec smarty.
Je suis par contre calé en php.

voici ou j'en suis :

{loop name="triemarque" type="brand" id=$brands|trim:',' order="manual"}

         {assign var="brandouille" value="{$ID}{if $smarty.get.brand},{$smarty.get.category_id}{/if}"}

        <a href="{viewurl view="category" category_id="$category_id" brand="$brandouille" }" >{$TITLE}</a>

 {/loop}

mon soucis principal c'est que je ne sais pas reproduire avec smarty le code php que j'aimerai mettre en place.

C'est a dire :

Découper mon url sous forme de tableau GET > valeur
Comparer ses valeurs dans une boucle pour ajouter une class css
Comparer ses valeurs dans la même boucle pour construire mon URL > si active URL ne comprend pas cette valeur et inversement.

Bref, je papote...

Offline

#2 Re: Trie des produits

(12-02-2016 09:44:08)


Bonjour Cornélius,

As-tu regarder le tuto sur Thelia School pour faire un moteur de recherche multi-critères ? http://thelia-school.com/moteur-de-rech … helia.html

Ce tuto pourrais te servir de base, à toi de le faire évoluer pour ajouter/supprimer les filtres dont tu as besoin.

Offline

#3 Re: Trie des produits

(12-02-2016 17:46:45)


J'ai suivi le cours, téléchargé le plugin. Mais impossible de le faire fonctionner. La requête ajax ne retourne aucun résultat.(je ne suis pas le seul à avoir eu se soucis.)Mais il m'a bien aidé à créer le mien en jQuery.
console d'erreur

Failed to load resource: the server responded with a status of 404 (Not Found) 

A cause de...

$('#products-list').load(
                '/product/ajaxList',
                {literal}
                    {
                        limit: limit,
                        page: page,
                        order: order,
                        type: type,
                        feature_availability: url,
                        feature_availability_from_url: url_friendly
                    }
                {/literal}
            );

Je souhaite vraiment développer avec thélia juste parce la v1 était vraiment bien conçu , mais là on tombe dans un copier /coller de prestashop (une impression rien de plus)

J'aimerai vraiment plus de cour sur thélia school, du moins pas au sens large du terme; mais des explications pointues sur tel et tel choses. On comprend le fonctionnement global avec la doc 'no soucis' la dessus, mais creuser soit même pour se perfectionner ...... une dur labeur.

Last edited by cornélius (12-02-2016 18:08:35)

Offline

#4 Re: Trie des produits

(12-02-2016 18:39:00)


404 (Not Found)

Elle sort d'où cette route /product/ajaxList ?

Dans Thelia, si tu veux générer une URL, tu dois utiliser la fonction Smarty {url path="/product/ajaxList"}.
Mais il faut que cette route existe quelque par, dans un module par exemple, et mène vers un contrôleur.

Tu peux aussi utiliser une vue (un fichier html, par exemple ajaxList.html), que tu vas placer où tu veux dans ton template (disons dans le dossier 'ajax'), dans laquelle tu peux placer des boucles, ou tout ce que tu voudras. Pour générer une URL vers celle vue, tu vas utiliser {viewurl view="ajax/ajaxList"}

Pour des explications détaillées, c'est là : http://doc.thelia.net/en/documentation/ … paths.html


OpenStudio Toulouse

Offline

#5 Re: Trie des produits

(15-02-2016 14:45:05)


cornélius wrote:
Failed to load resource: the server responded with a status of 404 (Not Found) 

La route appelant le controller du module n'est pas trouvée par thelia. Il y a donc soit un soucis au niveau de l'install du module, soit au niveau du cache.
As-tu bien vidé ton cache avant/après installation et activation du module ?

De plus, as-tu bien ajouté le fichier "product-list.html" dans le dossier ajax de ton template ?

Personnellement, j'ai pu utiliser ce module sur plusieurs projets sans rencontrer de bug sinon des bugs créés par une mauvaise configuration.

Pour Roadster31 : Cette route est renseignée dans le module "AdvancedSearch" :

<!-- product ajax list -->
    <route id="advancedsearch.front.product.ajax-list" path="/product/ajaxList">
        <default key="_controller">AdvancedSearch\Controller\Front\ProductController::getListAjaxAction</default>
    </route>

Offline

#6 Re: Trie des produits

(18-02-2016 11:44:42)


Pour l'erreur du chargement au niveau de la page : (je suis en local donc ...)

'/thelia_2.2.2/web/product/ajaxList',

Il doit y avoir une étape que je fais mal ou que je comprend mal donc voici ou j'en suis :

Je place le module (route xml, etc ... ) dans le dossier prévu à cette effet !
Je place dans category.html le javascript et la boucle de trie + la div ou ajax appel les produits triés.(je ne touche à rien mis à part à url ci dessus)
Je place dans le dossier ajax/ le fichier product-list.html (je ne fait aucune modification )

La liste des options de tries fonctionne correctement.
La création de url dans le input fonctionne bien et affiche par exemple :

http://localhost:8888/thelia_2.2.2/web/view_all?feature_availability=9&limit=8&order=new&page=1

Pourquoi aucun produits n'apparait dans la liste, alors que feature_availability=9 (un paramètre passe...)
Lorsque que aucun paramètres n'est sélectionnés, aucun produits n'est affiché.

View_all est appelé dans l'url pour le chargement de la liste des produits triés; alors que je suis sur category.html

Nota : A quoi sert ce url_nav dans le fichier "ajax/product-list.html"

{$url_nav="/view_all?feature_availability={$feature_availability_from_url}"}

Merci d'avance

Last edited by cornélius (18-02-2016 11:49:03)