Jump to content

Questions bonne pratique sur la création de module Prestashop


Recommended Posts

Bonjour,

 

J'ai crée un module qui fait des override de controller (en frontoffice).

Jusque là tout ce passe bien, prestashop crée bien des fichiers dans le dossier :

/override/controllers/front/

 

Mon soucis est que lorsque l'on supprime le module (ou que l'on désinstalle le module), prestashop ne supprime pas les fichiers qu'il a lui même crée.

 

Par conséquent je suis obligé de faire moi même des unlink et je n'aime pas cette méthode car j'aimerai que la désinstallation soit géré par prestashop dans son intégralité.

 

S'il crée des fichiers, pourquoi ne les supprime t il pas ?

 

Merci

Link to comment
Share on other sites

Bonjour, 

 

si j'ai bien compris, tu as un module avec un override qui s'installe tout seul lors de l'installation du module mais quand tu désinstalle le module les override restent en place. C'est bien ça ?

Normalement ils sont supprimés, peut être à tu modifié l'override, du coup il était différent du fichier override du module, du coup il n'a pas été reconnu.

Link to comment
Share on other sites

Bonjour et merci de ta réponse rapide !!!

 

Pour faire simple, dans mon module qui s'appelle "toto",  il y a le dossier suivant : override/controllers/front/CmsController.php

 

Dans le fichier toto.php dans la méthode install( ) j'ai c'est ligne :

	public function install()
	{
		// vérifier que le module est installé.
		if (Shop::isFeatureActive())
    		Shop::setContext(Shop::CONTEXT_ALL);

  		if( parent::install() &&
  			$this->registerHook('displayBackOfficeTop') &&
  			$this->registerHook('displayBackOfficeHeader')
  		)
  		{
			return true;
		}
		else
		{
			return false;
		}

	}

Donc c'est bien que prestashop crée tout seul des fichiers.

Ensuite dans ma méthode uninstall( ) je n'ai uniquement ces lignes :

	public function uninstall()
	{
		$this->unregisterHook('displayBackOfficeTop');
		$this->unregisterHook('displayBackOfficeHeader');
		
  		if( parent::uninstall() && Configuration::deleteByName('MYMODULE_NAME') )
  		{
  			return true;
  		}
  		else
  		{
  			return false;
  		}
  	}

Où est mon erreur ?

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