Jump to content

Prest 8.1 et Override


Recommended Posts

Bonjour !

Je souhaite modifier mon fil d'Ariane sur mon Prestashop 8.1 pour enlever le nom du produit et arrêter le fil à la dernière catégorie.

Pour ce faire je voudrais créer un override du controller controllers/front/ProductController.php et plus particulièrement de la fonction getBreadcrumbLinks.

J'ai donc créer le fichier ProductController.php dans /override/controllers/front/ et j'ai mis dedans :

 

<?php


class ProductControllerCore extends ProductPresentingFrontControllerCore
{
    public function getBreadcrumbLinks()
    {
        $breadcrumb = parent::getBreadcrumbLinks();

        $categoryDefault = new Category($this->product->id_category_default, $this->context->language->id);

        foreach ($categoryDefault->getAllParents() as $category) {
            /** @var Category $category */
            if ($category->id_parent != 0 && !$category->is_root_category && $category->active) {
                $breadcrumb['links'][] = [
                    'title' => $category->name,
                    'url' => $this->context->link->getCategoryLink($category),
                ];
            }
        }

        if ($categoryDefault->id_parent != 0 && !$categoryDefault->is_root_category && $categoryDefault->active) {
            $breadcrumb['links'][] = [
                'title' => $categoryDefault->name,
                'url' => $this->context->link->getCategoryLink($categoryDefault),
            ];
        }

        return $breadcrumb;
	}

}

Et rien ne se passe. J'ai bien vérifié de vider le cache et tout, et pourtant aucun changement sur l'affichage.

Je n'ai peut être pas bien fait mon override mais pourtant tout me semble correct.

Merci pour votre aide.

Link to comment
Share on other sites

Salut,

Si vous souhaitez créer une substitution pour le ProductController, veuillez naviguer vers le répertoire /override/controllers/front et créer un nouveau fichier nommé ProductController.php.

À l'intérieur du fichier ProductController.php, vous devez étendre la classe ProductController d'origine et substituer la fonction getBreadcrumbLinks.

Et dans le code fourni, vous avez utilisé l'extension avec ProductPresentingFrontControllerCore, ce qui est incorrect. Nous devons étendre ProductControllerCore

class ProductController extends ProductControllerCore{
...
}

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...