Jump to content

[RESOLU] Block newsletter sur page maintenance


Recommended Posts

Bonjour,

Je cherche désespérément une grande âme de technicien qui ferait ça en 5 minutes que moi je le fais en 100 heures et qu'en + ça s'affiche pas :(

Je souhaite mettre le bloc newsletter sur ma page de maintenance. J'avais vu un module, mais le lien ne fonctionne plus.

Du coup j’ai appris à créer un hook, donc j’ai un petit peu avancé dans mon malheur...seulement il ne s'affiche pas sur ma page de maintenance

Dans la base de donnée ps_hook j’ai créer un nom maintenance.

J’ai rajouté dans header.php ‘HOOK_MAINTENANCE’ => Module::hookExec(‘maintenance’)
,
Ensuite j’ai rajouté la fonction suivante dans le fichier blocknewsletter.php : function hookMaintenance($params){return $this->hookLeftColumn($params);}

et dans le fichier maintenance.tpl j’ai rajouté à l’emplacement voulu : {$HOOK_MAINTENANCE}

J’ai ensuite pu greffé le module via l’admin : dans Modules/Position

Mon nouveau et tout beau hook s'affiche donc bien dans le back office, le block newsletter est bien dedans, mais rien dans ma page de maintenance !

Alors je Re-Tourne en rond…est ce qu’on peut attribuer du css à {$HOOK_MAINTENANCE} ?

Est ce que c’est le Css ?

Que me manque t-il d'essentiel ??

Avez vous des idées svp ??

[Topics fusionnés. Merci d'éviter de multiplier les posts sur le même sujet - Divine]

Link to comment
Share on other sites

Bonjour,

Je cherche désespérément une grande âme de technicien qui ferait ça en 5 minutes que moi je le fais en 100 heures et qu'en + ça s'affiche pas :(

Je souhaite mettre le bloc newsletter sur ma page de maintenance. J'avais vu un module, mais le lien ne fonctionne plus.

Du coup j’ai appris à créer un hook, donc j’ai un petit peu avancé dans mon malheur...seulement il ne s'affiche pas sur ma page de maintenance

Dans la base de donnée ps_hook j’ai créer un nom maintenance.

J’ai rajouté dans header.php ‘HOOK_MAINTENANCE’ => Module::hookExec(‘maintenance’)
,
Ensuite j’ai rajouté la fonction suivante dans le fichier blocknewsletter.php : function hookMaintenance($params){return $this->hookLeftColumn($params);}

et dans le fichier maintenance.tpl j’ai rajouté à l’emplacement voulu : {$HOOK_MAINTENANCE}

J’ai ensuite pu greffé le module via l’admin : dans Modules/Position

Mon nouveau et tout beau hook s'affiche donc bien dans le back office, le block newsletter est bien dedans, mais rien dans ma page de maintenance !

Alors je Re-Tourne en rond…est ce qu’on peut attribuer du css à {$HOOK_MAINTENANCE} ?

Est ce que c’est le Css ?

Que me manque t-il d'essentiel ??

Avez vous des idées svp ??
Link to comment
Share on other sites

Bonjour,

Je cherche désespérément une grande âme de technicien qui ferait ça en 5 minutes que moi je le fais en 100 heures et qu’en + ça s’affiche pas :(

Je souhaite mettre le bloc newsletter sur ma page de maintenance. J’avais vu un module, mais le lien ne fonctionne plus.

Du coup j’ai appris à créer un hook, donc j’ai un petit peu avancé dans mon malheur…seulement il ne s’affiche pas sur ma page de maintenance

Dans la base de donnée ps_hook j’ai créer un nom maintenance.

J’ai rajouté dans header.php ‘HOOK_MAINTENANCE’ => Module::hookExec(‘maintenance’)
,
Ensuite j’ai rajouté la fonction suivante dans le fichier blocknewsletter.php : function hookMaintenance($params){return $this->hookLeftColumn($params);}

et dans le fichier maintenance.tpl j’ai rajouté à l’emplacement voulu : {$HOOK_MAINTENANCE}

J’ai ensuite pu greffé le module via l’admin : dans Modules/Position

Mon nouveau et tout beau hook s’affiche donc bien dans le back office, le block newsletter est bien dedans, mais rien dans ma page de maintenance !

J’ai essayé auss ‘’ d’appeler ‘‘le fichier bloc newsletter dans le fichier maintenance.tpl de cette manière :

{include file=$tpl_dir./blocknewsletter.tpl}


Le block s’affiche, mais il ne se passe rien lors de l’inscription…

Que me manque t-il d’essentiel ??

Avez vous des idées svp ??

maintenancenewsletter.zip

Link to comment
Share on other sites

Bonjour,

Je cherche désespérément une grande âme de technicien qui ferait ça en 5 minutes que moi je le fais en 100 heures et qu’en + ça s’affiche pas :(

Je souhaite mettre le bloc newsletter sur ma page de maintenance. J’avais vu un module, mais le lien ne fonctionne plus.

Du coup j’ai appris à créer un hook, donc j’ai un petit peu avancé dans mon malheur…seulement il ne s’affiche pas sur ma page de maintenance

Dans la base de donnée ps_hook j’ai créer un nom maintenance.

J’ai rajouté dans header.php ‘HOOK_MAINTENANCE’ => Module::hookExec(‘maintenance’)
,
Ensuite j’ai rajouté la fonction suivante dans le fichier blocknewsletter.php : function hookMaintenance($params){return $this->hookLeftColumn($params);}

et dans le fichier maintenance.tpl j’ai rajouté à l’emplacement voulu : {$HOOK_MAINTENANCE}

J’ai ensuite pu greffé le module via l’admin : dans Modules/Position

Mon nouveau et tout beau hook s’affiche donc bien dans le back office, le block newsletter est bien dedans, mais rien dans ma page de maintenance !

J’ai essayé auss ‘’ d’appeler ‘‘le fichier bloc newsletter dans le fichier maintenance.tpl de cette manière :

{include file=$tpl_dir./blocknewsletter.tpl}


Le block s’affiche, mais il ne se passe rien lors de l’inscription…

Que me manque t-il d’essentiel ??

Avez vous des idées svp ??
Link to comment
Share on other sites

Salut,
header.php s'exécute seulement après init, donc n'est pas exécuté si tu es en mode maintenance.

Jusque là tu as tout bon , sauf le include qui ne sert à rien , tu peux remettre le {$HOOK_MAINTENANCE} dans le tpl.

Ensuite il te suffit de déplacer la ligne mise dans header.php vers la fin du fichier init.php :

/* Display a maintenance page if shop is closed */
if (isset($maintenance) AND (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))))
{
   header('HTTP/1.1 503 temporarily overloaded');
   $smarty->assign('HOOK_MAINTENANCE',Module::hookExec('maintenance')); // <---- cette ligne là
   $smarty->display(_PS_THEME_DIR_.'maintenance.tpl');
   exit;
}



C'est tout ce que tu as raté , rien d'autre : bonne logique donc ;)

Link to comment
Share on other sites

  • 10 months later...
  • 1 year later...

Salut,

header.php s'exécute seulement après init, donc n'est pas exécuté si tu es en mode maintenance.

 

Jusque là tu as tout bon , sauf le include qui ne sert à rien , tu peux remettre le {$HOOK_MAINTENANCE} dans le tpl.

 

Ensuite il te suffit de déplacer la ligne mise dans header.php vers la fin du fichier init.php :

 

/* Display a maintenance page if shop is closed */
if (isset($maintenance) AND (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))))
{
header('HTTP/1.1 503 temporarily overloaded');
$smarty->assign('HOOK_MAINTENANCE',Module::hookExec('maintenance')); // <---- cette ligne là
$smarty->display(_PS_THEME_DIR_.'maintenance.tpl');
exit;
}

 

C'est tout ce que tu as raté , rien d'autre : bonne logique donc ;)

 

Bonjour Broceliande,

 

Cette technique a l'air parfaite. Cependant, sur la 1.5.3, le fichier init.php ne possède plus grand chose et plus ces lignes.

 

Saurais tu où modifier ces lignes désormais ?

 

Merci d'avance.

 

Bonne journée

 

EDIT: les lignes se trouvent dans classes/controller/FrontController.php

 

Mais ce n'est pas exactement pareil. As-tu une idée de comment modifier ?

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