Jump to content

Problème pour ajouter une nouvelle catégorie après modification du thème


Recommended Posts

Bonjour,

Je cherche un peu d'aide car un ancien développeur avait fait des modifications directement dans le thème classique de mon presta 1.7.4.3. Ca me cause pas mal de soucis. Celui que j'ai actuellement c'est que j'ai à ce jour 2 catégories avec listing produits. Si je crée une nouvelle catégorie, le nom de cette dernière s'affiche en h1 mais aucun produit ne s'affiche (j'ai bien vérifié de mettre des produits dans cette nouvelle catégorie).

Je pense avoir identifié une partie du problème. Voici la partie du code qui me semble poser problème dans product-list.tpl

<div id="js-product-list">

        <ul class="clearfix">
            
        	{assign var=nb value=0} 
            {foreach from=$subcategories item=subcategory}
            	 {assign var=nb value=$nb+1}  
                <li class="" >
                	<div class="container" style="padding-left: 0px;padding-right: 0px;" >
                        {if $category.id == 10 OR $category.id == 52}
                        <div class="{if Context::getContext()->isMobile() OR Context::getContext()->isTablet()}card{else}card card-block{/if} " style="margin-left: -5px;margin-right: -5px;">
                        {if $subcategory.id_category == 56}{else}
                        <h2>{$subcategory.name|escape:'html':'UTF-8'}</h2>
                    	{$subcategory.description nofilter}
                    	</div>
                        {/if}
                        {/if}
                		<br class="clear">

                		{assign var=getProduct value=FrontController::GetProductsFromCategory($subcategory.id_category)}
        				
  							<div class="products row">
        					{foreach from=$getProduct item=item_product name=item_name}	
        						{include file='catalog/_partials/miniatures/product.tpl' product=$item_product}		
        					{/foreach}
        					</div>
                        
                        {if $category.id != 10}
                        <div class="card card-block " style="margin-left: -5px;margin-right: -5px;">
                        <h2>{$subcategory.name|escape:'html':'UTF-8'}</h2>
                    	{$subcategory.description nofilter}
                    	</div>

                        {/if}
        			</div>
                </li>
            {/foreach}
        </ul>

    </div>

Et qui renvoi vers le front-controller.php

    public function GetProductsFromCategory($id_category)
    {
    	$category=new Category($id_category,(int)Context::getContext()->language->id,1);
        $products = $category->getProducts(
            (int)Context::getContext()->language->id,
            0,
            40
        );
        
        foreach($products as $key => $prod){
        	$url=new Link();
        	
        	
        	$products[$key]['url']=$url->getProductLink($products[$key]['id_product']);//$products[$key]['id_product'];//$url->getProductLink(1980);
        	//$products[$key]['id_image']='';
        	//print_r($products[$key]['id_image']);
        	//echo '-------------------<br>';
        	if(!isset($products[$key]['cover'])){
        		
        		$id_image=$products[$key]['id_image'];
        		$sql = 'SELECT * FROM `instaps_image` WHERE id_product='.$products[$key]['id_product'].' ORDER BY cover DESC, position DESC LIMIT 1';
        		//echo $sql.'<br>';
        		$result2 = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql, true, false);
        		foreach($result2 as $key3 => $arr){
        			$id_image=$arr['id_image'];
        			
        		}
        		
        		$products[$key]['cover']=array();
        		$link = new Link;//because getImageLInk is not static function
				$imagePath = $link->getImageLink($id_image, $id_image, 'home_default');
				//echo $imagePath.'<br>';
        		$products[$key]['cover']['bySize']['home_default']['url']='https://'.$imagePath;//'http://sevensboutiques.com/img/p/2/4/24-home_default.jpg';
        		$products[$key]['cover']['large']['url']='https://'.$imagePath;//'http://sevensboutiques.com/img/p/2/4/24-home_default.jpg';
        		
        	}
        	if(!isset($products[$key]['flags'])){
        		$products[$key]['flags']=0;
        	}
        	
        	
        	$products[$key]['has_discount']=0;
        	$products[$key]['main_variants']=0;
        	$products[$key]['price']=number_format($products[$key]['price'], 2, ',', ' ').' €';
        	
        }
		
		//print_r($products);
      
        return $products;//json_encode($products,true);
        
    }

Je sais que c'est pas facile sans mettre le nez dans le code mais auriez-vous une idée de ce qui bloque mes nouvelle catégories ?

Merci

Link to comment
Share on other sites

12 minutes ago, @rthur said:
        		$sql = 'SELECT * FROM `instaps_image` WHERE id_product='.$products[$key]['id_product'].' ORDER BY cover DESC, position DESC LIMIT 1';
        		//echo $sql.'<br>';
        		$result2 = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql, true, false);

Vérifiez également si le nom de la table est correct. avez-vous une table comme 'instaps_image' ou 'ps_instaps_image' ??

Edited by stifler97 (see edit history)
Link to comment
Share on other sites

1 hour ago, stifler97 said:

cela contient-il des produits?

Oui puisque j'ai 2 catégories qui génèrent un listing produit. Sauf que toute nouvelle catégorie créée n'en génère pas... 

 

1 hour ago, stifler97 said:

Vérifiez également si le nom de la table est correct. avez-vous une table comme 'instaps_image' ou 'ps_instaps_image' ??

Oui j'ai bien instaps_image

Link to comment
Share on other sites

2 hours ago, Zythom said:

Je ne suis pas un pro mais votre code ne sélectionne-t-il pas que 2 catégories ? (Id==10 et id==52)

A voir si ce sont les id de catégories qui s'affichent correctement, ce qui pourrait être une piste...

Il y a effectivement cette sélection mais ca ne concerne pas l'affichage des produits mais plus le design de la page

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...