Jump to content
Alex--77

[1.6.1.1] Rediriger Vers La Page 404

Recommended Posts

Bonjour,

 

Lorsque je désactive un produit, je souhaiterais afficher la page 404 que j'ai personnalisé.

 Voici les manip que j'ai fait :

- Désactiver le produit dans le BO

- Rediriger lorsque inactif : j'ai choisit "pas de redirection (404)".

 

Mais lorsque je sélection cette option, j'ai un affichage pas très propre et j'ai le texte :"Il y a 1 erreur. Ce produit n'est plus disponible.". Ce n'est pas la page que j'ai personnalisé (404.tpl).

 

Dans le fichier ProductController.php, j'ai repéré ceux-ci :

switch ($this->product->redirect_type) {
    case '301':
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
        exit;
    break;
    case '302':
        header('HTTP/1.1 302 Moved Temporarily');
        header('Cache-Control: no-cache');
        header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
        exit;
    break;
    case '404':
    default:
        header('HTTP/1.1 404 Not Found');
        header('Status: 404 Not Found');
       $this->errors[] = Tools::displayError('This product is no longer available.');
    break;

Je ne trouve pas comment faire appel à la page 404.tpl.

 

Quelqu'un a une idée ?

Edited by Alex--77 (see edit history)

Share this post


Link to post
Share on other sites

Il faut appeler la page (le controller) 404.php mais, magie de prestashop c'est pas codé pour rediriger mais pour juste claquer une 404.

 

Patch comme suit:

                        case '404':
                        default:
                            header('HTTP/1.1 404 Not Found');
                            header('Status: 404 Not Found');
                                Controller::getController('PageNotFoundController')->run();
                                die;
                            $this->errors[] = Tools::displayError('This product is no longer available.');
                        break;

  • Thanks 1

Share this post


Link to post
Share on other sites

Ah merci doekia, je savais que c'était un petit bout de code à ajouter.

 

Sans me rendre compte, j'étais prêt à recoder le controler de 404.php  :wacko: :wacko:

Share this post


Link to post
Share on other sites

Merci Doekia, j'ai utilisé ton patch cela fonctionne pour moi aussi sur une version 1.6.1.18

Pour compléter le sujet le fichier productcontroller.php se trouve dans controllers/front/

Edited by Jean André (see edit history)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More