如何扩展 Prestashop ajaxCall 函数以显示 tpl 文件内容?

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

我在扩展位于 blocklayered.php

中的 ajaxCall 函数时遇到问题
$smarty->assign(
   array(
     'myVariable' => 10,
     'homeSize' => ...,
     'nb_products' => $nb_products,
      ...
));

在我的 product-list.tpl 文件中我有这个

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

然后当我使用 blocklayered(选择一个过滤器选项)时,页面被 AJAX 刷新并显示结果显示 10 那是我的 我的变量值。

问题是:如何显示其他内容而不是 10 像包含其他内容的 .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    "

你做的很好,只是顺序错了(或者显示顺序错了)。首先,您需要创建包含模板数据的变量,然后才使用它,例如:

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

或者先$myVariable = ... 然后赋值给tpl变量。 在这种情况下 myVariable 将包含 tpl 文件的内容。当然如果你想从PHP(我的意思不仅仅是纯粹的html)在my_content.tpl中传输一些其他数据,你需要分配首先,在 fetch

之前