2014-01-13 87 views
0

我使用的是Prestashop 1.5.4.1,我想在其他模塊中調用模塊(正好我需要在家用特色產品上方使用滑塊模塊)。我試圖通過在.tpl文件中包含其他.tpl Prestashop

包括文件來調用它=「.. /目錄/ module.tpl」

但始終我只得到空白頁沒有任何代碼。我也嘗試了不同的目錄聲明方式,但結果總是一樣的。是否有可能以正確的方式包含新模塊?

回答

0

在PHP代碼中聲明一個變量是這樣的:

$this->path_to_tpl_folder = str_replace('\\', '/', _PS_MODULE_DIR_) . 'mon_module/tpl'; 
$this->context->smarty->assign('tpl_path', $this->path_to_tpl_folder) 

然後在您的智者的模板:

{include file=$tpl_path/my_file.tpl} 

與PrestaShop 1.4和1.5兼容。

1

什麼的Prestashop 1.6工作對我來說是

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

我把這個在footer.tpl文件,並正確顯示文本框中訂閱電子報。我想它也適用於所有其他模塊。

3

對於這個工作,你的目錄結構應該是(使用的PrestaShop 1.6):

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

絕對方式:

從你的主模塊文件:

protected function displayFooBarTemplate() 
{ 
    global $smarty; 

    ... 

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

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

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

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

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

相對的方式(我的最愛):

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

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

{包括 'INC/foo.tpl'}沒有工作,但{包括 './inc/foo.tpl'}做了! – user109764

+0

我doint worng ... {包含文件=「$ tpl_dir./modules/blockcategories/blockcategories.tpl」} - >在product.tpl中。爲什麼沒有加載類別的.tpl文件?任何想法 ? – Blue