csid Posted January 10, 2019 Share Posted January 10, 2019 Bonjour, dans le cadre d'une modif dans le template et sous templates qui affichent une catégorie (et donc les produits dans cette categorie) je cherche, au niveau du template à connaitre les catégories d'un produit. J'aurai donc besoin de faire remonter à smarty les categories de chaque produit. Au point où j'en suis arrivé , ca serait dans product.tpl qu'il me faudrait un array des numéro de categorie du produit. On a déjà un $product, il me faudrait pouvoir exploiter un $product.current_categories ........ Je cherche désespérément à faire remonter ça... Quelqu'un aurait une piste? D'avance merci. Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 10, 2019 Share Posted January 10, 2019 Bonjour, Vous souhaitez la solution pour toutes les versions existantes de PrestaShop à ce jour ou vous avez une préférence ? 1 Link to comment Share on other sites More sharing options...
csid Posted January 14, 2019 Author Share Posted January 14, 2019 bonjour, oups... c'est un prestashop 1.7.4.2 désolé de l'oubli de la version... Link to comment Share on other sites More sharing options...
Manu-41 Posted January 14, 2019 Share Posted January 14, 2019 je doit avoir un code,mais c'est pour la 1.6 dsl Link to comment Share on other sites More sharing options...
csid Posted January 15, 2019 Author Share Posted January 15, 2019 Je prends quand même ca m'aidera surement ou ca me donnera une piste Link to comment Share on other sites More sharing options...
csid Posted January 15, 2019 Author Share Posted January 15, 2019 (edited) Bonjour, je m'arrache toujours les cheveux... Je n'arrive toujours pas à faire remonter les catégories d'un produit dans smarty... j'ai fait un override dans /override/controllers/front/ProductController.php J'y ai mis : ?php class ProductController extends ProductControllerCore { public function initContent() { parent::initContent(); if (!$this->errors) { $hg_categs = 'toto'; $this->context->smarty->assign('hg_categs', $hg_categs); } } } Ensuite dans /themes/beeperchild/templates/catalog/_partials/miniatures/product.tpl j'ai mis " =>{$product.hg_categs} " : ..... {block name='product_miniature_item'} =>{$product.hg_categs} <article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}" itemscope itemtype="http://schema.org/Product"> <div class="product-miniature-container"> ..... Mais toujours rien ne remonte... Ya un truc que je ne dois pas comprendre... Je devrais bien avoir un "toto" qui s'affiche non? sachant que je dois remplacer mon "toto" par $this->getCategories(); .......... enfin... je ne suis plus sûr de rien ! 🤬 Edited January 15, 2019 by csid (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 15, 2019 Share Posted January 15, 2019 et en mettant seulement {$hg_categs} Link to comment Share on other sites More sharing options...
csid Posted January 15, 2019 Author Share Posted January 15, 2019 ben non.... vide... Je me remet dessus demain . J'ai trouvé ça qui peut être intéressant même si c'est pour un 1.4 : Link to comment Share on other sites More sharing options...
Alexandre Carette Posted January 16, 2019 Share Posted January 16, 2019 Hello, en toute logique si tu veux recup le smarty dans la product list il faudrait modifier le controller front category et non Product, ca peut etre une piste cordialement Link to comment Share on other sites More sharing options...
csid Posted January 16, 2019 Author Share Posted January 16, 2019 bonjour, oui en suivant la logique du lien mis juste avant j'ai modifié la fonction init() dans CategoryController.php en faisant ainsi : //--- hg $subProducts = array(); $subCategories=$this->category->getSubCategories($this->context->language->id); foreach($subCategories as $subCat) { $tmp_cat_obj = new Category($subCat['id_category'], $this->context->language->id); $subProducts[$subCat['id_category']] = $tmp_cat_obj->getProducts($this->context->language->id,(int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay,false); } //-- fin hg $this->context->smarty->assign(array( 'category' => $categoryVar, 'subcategories' => $this->getTemplateVarSubCategories(), 'subProducts' => $subProducts, //-- hg )); $subProducts remonte bien dans le template category.tpl mais vide !!! Alors que si j'appel getProducts avec True au lieu de false dans le parametre getTotal le nombre de produits est bien remonté ! Dans mon template j'ai mis : {foreach from=$subcategories item=subcat name=subcategories} <h2>{$subcat.name|upper}</h2> =>{$subProducts[$subcat.id_category]|print_r} {if isset($subProducts[$subcat.id_category][0]['name'])} {include file="$tpl_dir./product-list.tpl" products=$subProducts[$subcat.id_category]} {include file="$tpl_dir./pagination.tpl"} {elseif !isset($subProducts[$subcat.id_category][0]['name'])} <p class="warning">{l s='There are no products in this category.'}</p> {/if} {/foreach} Et j'obtiens : =>19 si je demande getTotal=true => Array() si getTotal=false Je suis à deux doigts d'y arriver mais là je ne comprends encore pas pourquoi... Link to comment Share on other sites More sharing options...
csid Posted January 16, 2019 Author Share Posted January 16, 2019 le problème vient du (int)($this->n) dans le getProducts. Il était à zéro... J'arrive à quelque chose... je suis dans les templates mais apparemment les images ne sont pas remontées.... Link to comment Share on other sites More sharing options...
csid Posted January 17, 2019 Author Share Posted January 17, 2019 Bonjour, L'aventure continue... En fait dans le principe tout est bon. Sauf une chose : Mon tableau $subProducts[lacateg_voulue] remonte un produit mais qui n'a pas la structure de celui remonté de base par CategoryController. Donc il me manque plein de trucs et les noms des indices dans le tableau changent. Quelqu'un peut il me dire comment l'objet "product" traité par product.tpl est généré car je ne trouve pas dans le code... Mon idée serait, dans CategoryController, d'intégrer dans ma boucle sur les sous categories une boucle sur les produits de chaque sous categorie qui génére l'objet produit selon la meme structure que celui généré par prestashop de base pour la categorie courante. Je ne trouve pas comment cette structure produit est générée... et vu mon grand age la POO a tendance à me faire vomir au bout de qq heures Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now