Prestashop : Ajout d'un bloc sur la vue client admin
Le but ici est d'ajouter un bloc sur la page détail d'un client sur l'administration, il est possible d'utiliser un hook existant mis à disposition par Prestashop.
Vous pouvez utiliser un de vos modules existant ou en créer un vous même. Le hook s'appelle "displayAdminCustomers".
Liste des choses à faire dans votre module :
- Dans la fonction install de votre module
- $this->registerHook('displayAdminCustomers')
- Dans votre module, créer la fonction
- public function hookDisplayAdminCustomers($params) {}
- Créer un template pour y ajouter ce que vous souhaitez
- modules/nom_de_votre_module/views/templates/hook/displayAdminCustomers.tpl
Exemple de contenu pour votre fonction hookDisplayAdminCustomers($params) {} :
public function hookDisplayAdminCustomers($params)
{
{
$customer = new Customer($params['id_customer']);
/*
A vous de créer ce que vous souhaitez récupérer
Et de modifier les clés de tableaux dans le template
*/
/*
A vous de créer ce que vous souhaitez récupérer
Et de modifier les clés de tableaux dans le template
*/
$informations = $customer->getInformations();
$this->context->smarty->assign(array(
'nombre' => count($informations)
'informations' => $informations
));
return $this->display(__FILE__, 'views/templates/hook/displayAdminCustomers.tpl');
}
Exemple de contenu de votre template :
<!--
On ajoute une div "col" vide ici pour afficher notre nouveau bloc à droite, vous pouvez y mettre
dedans si vous souhaitez qu'il s'affiche à gauche
-->
<div class="col"></div>
<div class="col">
<div class="customer-carts-card card">
<h3 class="card-header">
<i class="material-icons">store</i>
{l s='Informations supplémentaires' mod='nom_de_votre_module'}
<span class="badge badge-primary rounded">{$nombre}</span>
</h3>
<div class="card-body">
{if $informations|@count > 0}
<table class="table">
<thead>
<tr>
<th>{l s='Colonne 1' mod='nom_de_votre_module'}</th>
<th>{l s='Colonne 2' mod='nom_de_votre_module'}</th>
</tr>
</thead>
<tbody>
{foreach from=$catalogs item=catalog}
<tr class="customer-cart">
<td class="customer-catalog-id">{$catalog.id_catalogues}</td>
<td class="customer-catalog-name">{$catalog.name}</td>
</tr>
{/foreach}
</tbody>
</table>
{else}
<p class="text-muted text-center mb-0">
{l s='Pas de catalogue pour ce client' mod='zs_catalogues'}
</p>
{/if}
</div>
</div>
</div>