Jump to content

Appel d'un module via un autre module


kjar

Recommended Posts

Bonjour,

Je débute sous Prestashop et j'ai un petit problème de concept.
J'utilise le template health-template qui propose une barre de navigation horizontale, cette barre est un module :

categoriesbar
qui est greffé au point d'accroche
Top of pages
.

Mon souhait est de pouvoir appeler un autre module à partir du module
categoriesbar
, et plus précisément pouvoir y inclure le module de sélection des langues
blocklanguages
sans le greffer directement sur Top of pages qui me prive de toute personnalisation à l'intérieur de ma barre horizontale.

Voilà, j'espère que ma demande n'est pas brouillon, pas tjs évident. lol

Merci d'avance à toute la communauté, si un poste existe déjà sur cette demande merci de me rediriger, je n'ai pas trouvé.

Have a good day !

- KJAR -
Link to comment
Share on other sites

Non tu ne pourras pas en faisant comme ça, le plus simple est d'utiliser le CSS pour placer ton block langues au bon endroit.
Avec une position : absolute et bien placer avec les propriétés right et top, tu peux t'en sortir.

Sinon, tu peux récupérer le code PHP du module lang et le code HTML + Smarty du fichier .tpl, et l'insérer dans l'autre module ... Facile et rapide pour un développeur averti, moins pour un débutant.

Link to comment
Share on other sites

merci Vincent,

j'ai résolu le problème en utilisant ta seconde solution (j'explique) :

dans le php de blocklanguages je récupère / copie le code :

$languages = Language::getLanguages();
if (!sizeof($languages))
return '';
$smarty->assign('languages', $languages);



qui se trouve dans la fonction :

function hookTop($params)
   {
       global $smarty;
       $languages = Language::getLanguages();
       if (!sizeof($languages))
           return '';
       $smarty->assign('languages', $languages);
       return $this->display(__FILE__, 'blocklanguages.tpl');
   }



je colle ensuite ce code dans la fonction du même nom (hookTop) mais cette fois dans le fichier php du module personnalisé pour ma barre de nav. le fichier maBarreDeNav.php contient donc une fonction qui ressemble à :

function hookTop($params)
   {
       global $smarty;

       //construct categories
       $depth = 0;
       $rootCateg = Category::getRootCategory()->recurseLiteCategTree($depth);

       if (isset($_GET['id_category']))
       $smarty->assign('currentCategoryId', intval($_GET['id_category']));
       $smarty->assign('bar_tpl_path', _PS_MODULE_DIR_.'categoriesbar/category-bar-level.tpl');
       $smarty->assign('categoriesLevel', $rootCateg);

       $level = count($rootCateg['children']);
       $level = $level + 1 ;
       $smarty->assign('level', $level);

       //  gestion de la sélection des langues
   $languages = Language::getLanguages();
   if (!sizeof($languages))
   return '';
   $smarty->assign('languages', $languages);
       // \ fin gestion  des langues


       return $this->display(__FILE__, 'categoriesbar.tpl');
   }



je procède de la même manière mais cette fois en copiant le code html du fichier blocklanguages.tpl pour le copier dans le fichier maBarreDeNav.tpl

et voilà le tour est joué (à quelques réglages de positionnement)

il faut que je creuse le concept hookTop = accroche top of pages = une suite de block à la keleuleu .......

encore merci et bonne route

-- KJAR --

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