Jump to content

[RESOLUT] ovverride pas pris en compte sur authentification?back=my-account#account-creation


jd440

Recommended Posts

Bonjour à tous,

 

J'ai devellopé un module personnel similaire au block newsletter.

Le problème est que sur la page d'authentification, si le module "blocknewsletter" n'est pas activé la case d'inscription ne s'affichera pas sur le formulaire d'inscription (plus sur le compte).

 

En cherchant on s'apercoit qu'il y a un controle effectué sur le template afin de s'assurer que le module est activé:

{if isset($newsletter) && $newsletter}

Sachant que cette variable est définit dans le /controllers/front/AuthController.php

	public function initContent()
	{
[...]
		$active_module_newsletter = false;
		if ($module_newsletter = Module::getInstanceByName('blocknewsletter'))
			$active_module_newsletter = $module_newsletter->active;

		$this->context->smarty->assign('newsletter', (int)$active_module_newsletter);
[...]

J'ai donc choisit de créer un override :

/override/controllers/front/AuthController.php

avec:

	public function initContent()
[...]
		$active_module_newsletter = false;
		if ($module_newsletter = Module::getInstanceByName('blocknewsletter'))
			$active_module_newsletter = $module_newsletter->active;

		$this->context->smarty->assign('newsletter', (int)$active_module_newsletter);

		if ($module_newsletter_v2 = Module::getInstanceByName('blocknewsletter_v2'))
			$active_module_newsletter_v2 = $module_newsletter_v2->active;

		$this->context->smarty->assign('newsletter_v2', (int)$active_module_newsletter_v2);
		$this->context->smarty->assign('check_override', 'overrride');
[...]

Mais mon souci est que l'override est pris en compte sur la première page d'authentification:

(celle oú l'on as le choix entre Créer un compte / Déjà inscrit)

Create your account
newsletter: 0
newsletter v2: 1
chech override : overrride

 

 

Mais une fois que je vais sur le form de cŕeation de compte:

authentification#account-creation

J'ai :

 

newsletter: 0
newsletter v2:
chech override :

 

 

On vois donc que ici l'override est pas pris en compte ou du moi l'initContent de l'override.

 

Afin de pousser un peu plus loin le test j'ai rajouter dans le AuthController en core:

        $active_module_newsletter_v2 = false;
        if ($module_newsletter_v2 = Module::getInstanceByName('blocknewsletter_v2'))
            $active_module_newsletter_v2 = $module_newsletter_v2->active;

        $this->context->smarty->assign('newsletter_v2', (int)$active_module_newsletter_v2);
        $this->context->smarty->assign('check_override', "pas ovverride");

authentification#account-creation

J'ai :

 

 

newsletter: 0
newsletter v2:1
chech override :pas ovverride

 

 

 

 

 

A noté:

  1. j'ai désactiver tous les caches,
  2. Supprimé tous les fichier cache (templates. cache smarty, compile)
  3. Supprimé le class_index.php (même si on travaille pas sur une classe)
  4. Vider la cache navigateur.

 

Auriez vous une idée?

 

Edit:

Il semblerais qu'a la prem,ière étape soit appelé

InitContent

 

Puis à la deuxième étape INIT

Edited by jd440 (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...