在.tpl文件中包含其他.tpl

kac*_*per 1 smarty prestashop prestashop-1.5

我使用的是Prestashop 1.5.4.1,我想在其他模块中调用一个模块(确切地说,我需要在家用产品上方使用滑块模块)。我试图通过

包括文件='.. / directory / module.tpl'

但总是我只得到空白页,没有任何代码。我也尝试过用不同的目录声明方式,但是结果总是一样的。是否有可能以正确的方式包含新模块?

Jos*_*rín 5

为此,您的目录结构应为(使用PrestaShop 1.6):

-- mymodule.php
-- views
---- templates
------ hook
------ displayFooBarTemplate.tpl
-------- inc
---------- foo.tpl
---------- bar.tpl
Run Code Online (Sandbox Code Playgroud)

绝对方式:

从您的主模块文件:

protected function displayFooBarTemplate()
{
    global $smarty;

    ...

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

    return $this->display(__FILE__, 'displayFooBarTemplate.tpl');
}
Run Code Online (Sandbox Code Playgroud)

然后在您的tpl文件(displayFooBarTemplate.tpl)中:

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

{include file="{$module_templates}hook/inc/modal/bar.tpl"}
Run Code Online (Sandbox Code Playgroud)

相对方式(我的最爱):

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

{include './inc/modal/bar.tpl'}
Run Code Online (Sandbox Code Playgroud)