Lorsque vous créez un module incluant un contrôleur spécifique et que vous souhaitez avoir des listes ou des formulaires, vous devez utiliser les helpers, cela constitue une bonne pratique pour créer des pages d’admin.

Le problème est que vous êtes limité par la mise en forme du template existant.

Pour lever cette limite il faut surcharger partiellement ou en totalité ce template, pour ce faire il va falloir en créer un nouveau, jusque là ça va, mais où le placer dans tous ces répertoires ?

Partons du principe que vous avez un contrôleur du type :
class AdminMonControleurController extends ModuleAdminController

La première chose va être de définir le répertoire de surcharge qu’attend Prestashop en fonction du nom de votre contrôleur, pour ce faire, il va falloir supprimer le suffixe Controller, ainsi que le préfixe Admin, puis transformer le nom restant en ajoutant un underscore devant les majuscules (à part la première) puis en remplaçant les majuscules par des minuscules.

Donc si on procède par étape en partant de AdminMonControleurController :

  • on supprime le suffixe Controller, reste AdminMonControleur
  • on supprime le préfixe Admin, reste MonControleur
  • on ajoute un underscore devant toutes les majuscules sauf la première, reste Mon_Controleur
  • on remplace les majuscules par des minuscules, reste mon_controleur

Le nom de notre sous répertoire sera donc mon_controleur.

Maintenant passons à la structure complète du répertoire, prenons par exemple le fichier form.tpl, il se situe dans le répertoire :

/[repAdmin]/themes/default/template/helpers/form/

Pour qu’il soit pris en compte dans notre contrôleur, il va falloir le placer dans un répertoire de la forme :

/modules/[nomDuModule]/views/templates/admin/[nomModifieDuControleur]/helpers/form/

Donc pour notre cas, et en partant du principe que le module s’appelle monmodule, ça donne :

/modules/monmodule/views/templates/admin/mon_controleur/helpers/form/

Il faudra donc créer toute l’arborescence et y déposer le fichier form.tpl.

Si vous souhaitez remplacer l’original, vous mettez simplement votre code dedans, attention aux mises à jour ultérieures des templates de l’admin.

Si vous souhaitez uniquement ajouter des infos, un formulaire suplémentaire, du code javascript … Il va falloir inclure le fichier de base et lui ajouter votre code, vous allez donc créer un fichier form.tpl du type :


{extends file="helpers/form/form.tpl"}
{block name="after"}
Block after : add a text after the form
{/block}

Voilà, vous avez maintenant un message qui s’affiche sous le formulaire de base.

Répondre

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

+ 55 = 64