0

如何在 displayajax() 函数中显示“分配的模板变量”(我使用的是 prestashop 1.5.6.0)。

如果你去:

sitedomain/index.php?id_product=1&controller=product you see the product

但如果你去:

sitedomain/index.php?id_product=1&controller=product&ajax=true you see a blank page

为了在该页面中有一些输出,我在 ProductController.php 中添加了这个函数,它可以工作:

public function displayAjax()
{
    echo "something";
}

如何访问我通常在 prestashop 的调试控制台中看到的所有“分配的模板变量”......比如 $combinations $groups...

谢谢!

4

2 回答 2

1

分配的模板变量可以通过以下代码返回:

$this->context->smarty->getTemplateVars();

或者如果你需要一个特定的变量:

$this->context->smarty->getTemplateVars('combinations');

getTemplateVars() 方法返回这些变量,因此您可以使用标准函数转储它:

var_dump($this->context->smarty->getTemplateVars());

您可以在 displayAjax() 方法中添加它。

如果设置了调试参数(默认情况下为 SMARTY_DEBUG),您还可以调用调试窗口,因此 url 像

index.php?id_product=1&controller=product&ajax=1&SMARTY_DEBUG

使用以下 displayAjax():

public function displayAjax()
{
    $this->context->smarty->display($this->context->smarty->getDebugTemplate());
}

会弹出窗口。

于 2013-10-14T20:38:00.600 回答
0
    public function displayAjax()
    {
        $array= $this->context->smarty->tpl_vars['combinations'];
        foreach($array as $k => $v)
        {
            //some code
        }
    }
于 2013-10-14T20:25:39.933 回答