2014-01-13 3 views
0

Я использую usb-а для Prestashop 1.5.4.1, и я хотел бы назвать модуль в другом модуле (именно мне нужно использовать модуль слайдера чуть выше домашних продуктов). Я пытался вызвать его с помощьюВключите другой .tpl в файл .tpl Prestashop

включаемый файл = «../каталог/module.tpl»

, но всегда я получаю только пустую страницу без кода. Я также пробовал с различными способами инструкции каталога, но всегда результат был тот же. Есть ли возможность правильно включить новый модуль?

ответ

0

Правильный способ включения тега smarty включает использование скобок.

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

Обратите внимание, что каталог в инструкции include должен относиться к каталогу шаблонов.

http://www.smarty.net/docsv2/en/language.function.include.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) 

Затем в Smarty шаблон:

{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

{включают "вкл/foo.tpl} не работает, а {включают './inc/foo.tpl'} сделал !! – user109764

+0

Что я делаю worng ... {include file = "$ tpl_dir./modules/blockcategories/blockcategories.tpl"} -> в product.tpl. Почему файл .tpl для категорий не загружается? Есть идеи ? – Blue

Смежные вопросы