Jump to content

[Résolu] Comment afficher le Nb total d'articles disponibles en Page d'accueil


Recommended Posts

J'avais pas fait attention que c'était un hook à placer. Comme le site est déjà en production je voudrais être sûre avant de le placer. Je souhaite l'installer dans ma page d'accueil. Quand je regarde le thème (celui par défaut) je ne peux que tout envoyer dans le .tpl concerné (ou alors j'ai loupé quelque chose...). Je ne comprend pas comment créer un hook sur le thème d'origine, si je comprends on ne peux avoir de hook que sur des modules ???

 

Le code final serait bien celui-là (??) :

// Liste de toutes les catégories éxistantes (placer ce code dans un hook ou dans la fonction getContent par exemple)
	$cats = Category::getCategories($cookie->id_lang, false);
	$categories = $this->recurseCategoryPerso($tableau, $cats, $cats[0][1], 1);

// Variable contenant le total des produits
	$nbtotalproduct = 0;

// Parcourt de toutes les catégories
	foreach($categories as $categorie) 
	{
 
       // Récupération de la catégorie ciblée par un ID de catégorie (ici $categorie['id_category'])
      $category = new Category($categorie['id_category'], $this->context->language->id);
 
      // Récupération du nombre total de produits de la catégorie (si le dernier argument est 'true') et l'additionner aux autres
      $nbtotalproduct = $nbtotalproduct + $category->getProducts($this->context->language->id, 0, 0, null, null, true);
	}

Puis dans le .tpl concerné :

{if $nbtotalproduct}
   <div>
          <h3> le nombre total des produits de cette boutique </h3>
           <span> le nombre est : </span> {$nbtotalproduct}
   </div>
{/ if}
Edited by lordbdp (see edit history)
Link to comment
Share on other sites

Le debug ne m'affiche rien mais voilà ce que j'avais mis dans l'override :

<?php
class FrontController extends FrontControllerCore
{
    public function initContent()
    {
	parent::initContent();
	$this->context->smarty->assign('HOOK_EGR_FBLOGIN',Hook::exec('egrfblogin'));
    }
}

class FrontController extends FrontControllerCore
{
public static function getProductTotal() {
	$productObj = new Product();
	$products = $productObj->getProducts(Context::getContext()->language->id, 0, 0, 'id_product', 'DESC', false, true );
	return count( $products );
}
}
?>

Je ne sais pas comment faire pour ajouter les functions à la chaîne...

 

De plus j'ai l'impression que PS 1.5.6 n'aime pas la modification demandée dans class_index.php :

'FrontController' => 
  array (
    'path' => 'override/classes/controller/FrontController.php',
    'type' => 'class',
    'override' => false,
  ),

Sachant qu'il a fallu que je le mette à la place de ce que j'avais avant :

'FrontController' => 'override/classes/controller/FrontController.php',
Link to comment
Share on other sites

Tu ne dois pas modifier à la main le class_index.php. Au pire, tu le supprimes et il le re-génère.

 

Pour ta classe, il faut plutôt faire ça comme ça :

<?php
class FrontController extends FrontControllerCore
{
    public function initContent() {
        parent::initContent();
        $this->context->smarty->assign('HOOK_EGR_FBLOGIN',Hook::exec('egrfblogin'));
    }
	
    public static function getProductTotal() {
        $productObj = new Product();
        $products = $productObj->getProducts(Context::getContext()->language->id, 0, 0, 'id_product', 'DESC', false, true );
        return count( $products );
    }
}

Sans fermeture de la balise php et sans deux déclarations de la classe.

Edited by LIJE Creative (see edit history)
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...