Include other .tpl in a .tpl file Prestashop

kacper picture kacper · Jan 13, 2014 · Viewed 12.6k times · Source

I'm usinh a Prestashop 1.5.4.1, and I would like to call a module in other module (precisely I need to use slider module just above the home featured products). I tried to call it via

include file='../directory/module.tpl'

but always I get only blank page without any code. I also tried with different ways of directory statement, but always the result was the same. Is there any possibility to include new module in correct way?

Answer

José Pablo Orozco Marín picture José Pablo Orozco Marín · Jan 5, 2015

For this to work, your directory structure should be (Using PrestaShop 1.6):

-- mymodule.php
-- views
---- templates
------ hook
------ displayFooBarTemplate.tpl
-------- inc
---------- foo.tpl
---------- bar.tpl

Absolute way:

From your main module file:

protected function displayFooBarTemplate()
{
    global $smarty;

    ...

    $smarty->assign('module_templates', dirname(__FILE__).'/views/templates/');

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

then in your tpl file (displayFooBarTemplate.tpl):

{include file="{$module_templates}hook/inc/modal/foo.tpl"}

{include file="{$module_templates}hook/inc/modal/bar.tpl"}

Relative way (my favorite):

{include './inc/foo.tpl'}

{include './inc/modal/bar.tpl'}