PipBoy2000 PipBoy2000 - 4 months ago 34
Smarty Question

How to extend Prestashop ajaxCall function to show tpl file content?

I'm facing a problem with extending ajaxCall function located in blocklayered.php

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


In my product-list.tpl file i have this

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


Then when i use blocklayered (choose one of the filter options) page is refreshed by AJAX and show the results with showing 10 that is my myVariable value.

Question is: How to show something else instead of 10 like .tpl file with other contents?

I try also:

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

...

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


Without success... JSON with myVariable is empty throwing just

" \n "

Answer

You did all good, just in wrong sequence (or show it in wrong sequence). First you need to created variable contains template data and only then use it, like:

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

or first $myVariable = ... and then assign it to tpl variable. In this case myVariable will contain content of tpl file. Of course if you want to have some other data transferred from PHP (I mean not just pure html) in my_content.tpl, you need to assign it first, before fetch