我有Prestashop 1.6。在classes / Product.php中有一个函数,例如:
我想在我的TPL文件中从getImages函数返回日期。怎么做 ?下面我写这个函数的所有代码:
/**
* Get product images and legends
*
* @param int $id_lang Language id for multilingual legends
* @return array Product images and legends
*/
public function getImages($id_lang, Context $context = null)
{
return Db::getInstance()->executeS('
SELECT image_shop.`cover`, i.`id_image`, il.`legend`, i.`position`
FROM `'._DB_PREFIX_.'image` i
'.Shop::addSqlAssociation('image', 'i').'
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
WHERE i.`id_product` = '.(int)$this->id.'
ORDER BY `position`'
);
}
感谢您的帮助。亲切的问候。
答案 0 :(得分:1)
按照您的示例:使用Prestashop所基于的MVC架构,现在您拥有:
因此,您需要Controller,负责从模型接收数据,准备它(如果有必要)并将此数据发送到模板。
然后,您现在需要转到controllers / front文件夹中的ProductController.php。
在控制器中,我们有一个名为initContent()的函数,她的函数是什么创建的,并将值分配给将在模板中使用的变量。
因此,您需要创建一个新的分配:
$this->context->smarty->assign('images_ex', $this->product->getImages((int)$this->context->cookie->id_lang));
现在,您可以在product.tpl中使用变量 {$ images_ex} ,该变量位于已激活的主题根文件夹中。
希望它对你有所帮助。