我使用的是Prestashop 1.5.4.1,我想在其他模塊中調用模塊(正好我需要在家用特色產品上方使用滑塊模塊)。我試圖通過在.tpl文件中包含其他.tpl Prestashop
包括文件來調用它=「.. /目錄/ module.tpl」
但始終我只得到空白頁沒有任何代碼。我也嘗試了不同的目錄聲明方式,但結果總是一樣的。是否有可能以正確的方式包含新模塊?
我使用的是Prestashop 1.5.4.1,我想在其他模塊中調用模塊(正好我需要在家用特色產品上方使用滑塊模塊)。我試圖通過在.tpl文件中包含其他.tpl Prestashop
包括文件來調用它=「.. /目錄/ module.tpl」
但始終我只得到空白頁沒有任何代碼。我也嘗試了不同的目錄聲明方式,但結果總是一樣的。是否有可能以正確的方式包含新模塊?
包含smarty標籤的正確方法包括使用curl括號。
{include file='directory/module.tpl'}
請注意,include語句中的目錄應該相對於templates目錄。
http://www.smarty.net/docsv2/en/language.function.include.tpl
在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兼容。
什麼的Prestashop 1.6工作對我來說是
{include file="$tpl_dir/modules/blocknewsletter/blocknewsletter.tpl"}
我把這個在footer.tpl文件,並正確顯示文本框中訂閱電子報。我想它也適用於所有其他模塊。
對於這個工作,你的目錄結構應該是(使用的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'}
{包括 'INC/foo.tpl'}沒有工作,但{包括 './inc/foo.tpl'}做了! – user109764
我doint worng ... {包含文件=「$ tpl_dir./modules/blockcategories/blockcategories.tpl」} - >在product.tpl中。爲什麼沒有加載類別的.tpl文件?任何想法 ? – Blue