Ajouter un hook dans les pages CMS

10 septembre

Les pages CMS de Prestashop sont utiles, mais il leur manque la possibilité d’ajouter des modules pour l’un d’eux, en particulier. Voyons comment améliorer ces pages et créer des hook pour elles !

Création d’un hook personnalisé pour les pages CMS

Localisez votre cms.tpl l’intérieur du dossier du module et ouvrez-le dans un éditeur de code.

Nous devons d’abord décider où mettre notre module, avant que le contenu CMS, ou après. Quelle que soit la position que vous choisissez, l’importante section de la page est la suivante:

1
2
3
<div class="rte{if $content_only} content_only{/if}">
    {$cms->content}
</div>

Je vous conseille fortement d’insérer le nouveau hook à l’extérieur du bloc de conteneur de RTE, pour éviter  que les styles du CMS remplacent ceux de tout module éventuel. À ce stade, nous allons ajouter le crochet.

1
2
3
4
5
{hook h='customCMS'}
<div class="rte{if $content_only} content_only{/if}">
    {$cms->content}
</div>

Comme vous pouvez le voir, je décidé d’ajouter le hook avant le bloc de contenu du CMS.

Comment raccorder les modules à des pages CMS

Nous avons notre crochet personnalisé. Il est temps de décider quel module nous voulons brancher à une page cms.

Étant donné que cela  ne peut être fait sans modifier les fichiers du module, pour rendre nos vies plus facile il est généralement une bonne idée de tout simplement clone / appeler un accrochage existante méthode.

Dans l’exemple, je vais utiliser le module myCollectionPlaces, pour afficher la liste des lieux dans une page CMS. Par conséquent, ouvrir mycollectionsplaces.php, situé à modules/mycollectionsplaces, puis recherchez la méthode install() :

1
2
3
4
5
public function install()
{
    global $cookie;
    return (parent::install() AND myOwnReservationsController::install($this, $cookie));
}

Nous avons appelé le hook customCMS, donc nous avons besoin de l’enregistrer lors de l’installation du module:

1
2
3
4
5
6
public function install()
{
    global $cookie;
    $this->registerHook('customCMS');
    return (parent::install() AND myOwnReservationsController::install($this, $cookie));
}

Ensuite, nous devons ajouter la méthode d’accrochage à la fin du fichier, avant le crochet de fermeture

1
2
3
4
public function hookcustomCMS($params)
{
    return $this->hookDisplayHome($params);
}

De cette façon, nous demandons simplement la méthode par défaut utilisé pour montrer le bloc dans la page d’accueil.

No comments yet.

Laisser un commentaire