2016-06-23 3 views
1

Я столкнулся с проблемой с расширением ajaxCall функции, расположенной в blocklayered.phpКак расширить функцию Prestashop ajaxCall для отображения содержимого файла tpl?

$smarty->assign(
    array(
    'myVariable' => 10, 
    'homeSize' => ..., 
    'nb_products' => $nb_products, 
     ... 
)); 

В моем файле продукта list.tpl у меня есть этот

{if isset($myVariable)} 
    {$myVariable} 
{/if} 

Тогда, когда Я использую blocklayered (выберите одну из опций фильтра) обновляется AJAX и показывает результаты с показом , что является моим myVariable значение.

Вопрос: Как показать что-то другое вместо как .tpl файл с другим содержимым?

Я стараюсь также:

$smarty->assign(
    array(
    'myVariable' => $my_variable, 
    'homeSize' => ..., 
    'nb_products' => $nb_products, 
     ... 
)); 

... 

$my_variable = $smarty->fetch(_PS_THEME_DIR_.'my_content.tpl'); 

без успеха ... JSON с MYVARIABLE пуст метания просто

" \n " 
+0

Хороший вопрос. Я создам щедрость для этого! – PrestaShark

ответ

1

Ты все хорошо, только в неправильной последовательности (или показать его в неправильная последовательность). Прежде всего, необходимо создана переменная содержит шаблонные данные и только затем использовать его, как:

$smarty->assign('myVariable', $smarty->fetch(_PS_THEME_DIR_.'my_content.tpl'))); 

или первые $ MYVARIABLE = ..., а затем присвоить его переменной TPL. В этом случае myVariable будет содержать содержимое файла tpl. Конечно, если вы хотите иметь некоторые другие данные, передаваемые из PHP (я имею в виду не только чистый HTML) в my_content.tpl, вы должны назначить его первым, перед тем принести