I'm new in prestashop: I'm trying to display the result of my query in a tpl file, and I get this error:
Notice: Undefined index: produits
This is my controller code :
class AdminStatproduitController extends ModuleAdminController
{
public function init() {
parent::init();
}
public function initContent()
{
parent::initContent();
$products = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity
FROM `'._DB_PREFIX_.'product` pp
LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product
LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product
WHERE pp.cache_is_pack =0
ORDER BY pps.quantity ASC
LIMIT 3');
$pack = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity
FROM `'._DB_PREFIX_.'product` pp
LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product
LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product
WHERE pp.cache_is_pack =1
ORDER BY pps.quantity DESC
LIMIT 3');
$smarty = $this->context->smarty;
$content = $smarty->fetch(_PS_MODULE_DIR_ . 'statproduit/views/templates/admin/statproduit.tpl');
$this->context->smarty->assign(array('produits'=>$products,
'pack'=> $pack,
'content' => $this->content . $content));
}
and this is my tpl code
<section>
<div id="formAddPaymentPanel" class="bootstrap panel">
<form id="formAddPayment" method="post">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th><span class="title_box ">Id Produit</span></th>
<th><span class="title_box ">Nom Produit </span></th>
<th><span class="title_box ">Quantité Produit</span></th>
<th><span class="title_box ">Pack Choisie</span></th>
<th></th>
</tr>
</thead>
<tbody>
{foreach from=$produits item=produit}
<tr>
<td>{produit} </td>
<td>product.name</td>
<td>product.quantity</td>
<td>delete</td>
</tr>
</tr>
{/foreach}
</tbody>
</table>
</div>
</form>
</div>
</section>
Any suggestion??
thanks
just change this in the controller:
$this->context->smarty->assign('produits',$products);
$this->context->smarty->assign('pack',$pack);
$content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . 'statproduit/views/templates/admin/statproduit.tpl');
$this->context->smarty->assign('content',$this->content . $content);