Jump to content

hook_product_tab / hook_product_tab_content


Recommended Posts

Plop plop,

 

Dites moi tout le monde les gens ! Z'avez pas remarqué que sur la 1.6, ça va être dur d'implémenter plusieurs déclarations sur le HOOK_PRODUCT_TAB / HOOK_PRODUCT_TAB_CONTENT .

 

Par défaut, le module commentaire y est présent. Mais ce hook est malheureusement encapsulé dans une section commune :

<!--HOOK_PRODUCT_TAB -->
<section class="page-product-box">
	{$HOOK_PRODUCT_TAB}
	{if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}{$HOOK_PRODUCT_TAB_CONTENT}{/if}
</section>
<!--end HOOK_PRODUCT_TAB -->

Du coup, c'est plutôt génant, car la gestion des tabs n'existent plus réellement sur le nouvel agencement de la page product en 1.6. On voit bien une déclaration de js pour gérer l'id tab du hook des commentaires (inclus dans le module commentaires).

 

Mais ça veut dire que nous aussi, nous sommes obligés de nous adapter et de déclarer notre propre événement js sur nos tabs persos ?

 

Un peu bizarre, ce ne n'est pas une évolution de code pour le coup, c'est une régression. La 1.5 réagissait parfaitement, et elle s'adaptait sans même d'ajout d'événement de notre part.

 

Alors y'a-t-il un oubli de ce côté la ?

 

Car en l'état actuel, j'estime que cette paire de hooks (indissociables) n'est pas exploitable, adaptable et non évolutive.

Pourquoi ne pas tout simplement pour la 1.6 prévoir un hook qui permet l'ajout de sections à la suite, sans gestion de tab.

 

Qu'en dites-vous ?

 

A+

Edited by DevNet (see edit history)
  • Like 1
Link to comment
Share on other sites

Ah, ok. Car tu parlais de la déclaration JS qui est propre au module de la 1.5, et qui ne sert donc strictement à rien sur une 1.6 (sauf sur thème custom, évidemment ! ;-)).

 

De fait, on pourrait très bien avoir plusieurs sections tant qu'à faire.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Je suis entrain de rendre un de mes modules compatibles et en effet j'ai un problème à ce niveau car du coup lorsqu'on se retrouve avec plusieurs tabs ça donne

<section>
Titre du tab1
Titre du tab 2

Contenu du tab 1
contenu du tab 2
<section>

Du coup c'est pas logique du tout et évidemment incompréhensible pour l’utilisateur.

 

Quelqu'un aurait une solution ?

Link to comment
Share on other sites

Bon finalement j'ai trouvé une solution.

 

Je n'utilise pas le hookProductTab

public function hookDisplayProductTab() {
if(version_compare(_PS_VERSION_, '1.6.0', '<'))
				return $this->display(__FILE__, 'views/templates/front/opartfaqtab_15.tpl');
			else //fix gestion tab 1.6
				return false;
}

Et j'affiche le titre du tab et son contenu dans le hookProductTabContent

public function hookDisplayProductTabContent()
	{
			if(version_compare(_PS_VERSION_, '1.6.0', '<')) 
				return $this->display(__FILE__, 'views/templates/front/opartfaqtabcontent_15.tpl');			
			else {//fix gestion tab 1.6
				$html=$this->display(__FILE__, 'views/templates/front/opartfaqtab.tpl');
				$html.=$this->display(__FILE__, 'views/templates/front/opartfaqtabcontent.tpl');
				return $html;
			}
	}
Link to comment
Share on other sites

Salut,

 

Tu peux gérer tes hooks différements pendant l'installation de ton module. Voici des exemples de méthodes à ajouter dans ta méthode Module->install()

public function installHookPS15() 
{
	if(version_compare(_PS_VERSION_, '1.6', '<'))
		if(
                	!$this->registerHook('displayProductTab')
		||	!$this->registerHook('displayProductTabContent')
		)
		return false;
	return true;
}	

public function installHookPS16() {
	if(version_compare(_PS_VERSION_, '1.6', '>='))
		if(
			 !$this->registerHook('displayFooterProduct')
		)
		return false;
	return true;
}

Pour la 1.6 tu pourras ainsi utiliser le hook footer de la page product :

public function hookDisplayFooterProduct($params)
{
  if($this->IsPSVersion(">=","1.6")) {
    [...]
  }
}

Et afficher tes sections.

 

A+

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