THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Hook dans un contenu précis

(04-03-2020 23:53:48)


Bonjour,

Je souhaite ajouter un Hook dans certains contenus uniquement.

Par exemple, j'ai les ID contenu 1,2,3,4, et je veux n'afficher le hook que sur le 3 et le 4.

Comment faire ?

Offline


Que veux tu faire exactement ? Afficher quelque chose dans un hook uniquement pour certains contenus ?


OpenStudio Toulouse

Offline


Hello,

Exactement, afficher un hook seulement pour par exemple la page contenu ID=1 et ID=2

Offline


Si tu affiche un fragment de template dans le hook, c'est assez simple de ne rien afficher, tu utilises l'ID du contenu pour filtrer dans ce fragment :

{if $content_id == 1 || $content_id == 2}
...
{/if}

A toi de passer la variable "content_id" à ton fragment, dans le code du Hook :

public function onQuelqueChode(HookRenderEvent $event) 
{
    $event->add(
        $this->render(
            'ton-template.html',
            [ 'content_id' => $event->getArgument('id') ]
        )
    );
}

Attention, en fonction du hook, l'argument qui contient l'ID du contenu est soit 'id', soit 'content', regarde dans le code de content.html.


OpenStudio Toulouse

Offline


Merci wink

c'est fait.

j'en profite pour partager le code de config.xml :

<hooks>
        <hook id="hookCommentaires.hook.front" class="HookCommentaires\Hook\FrontHook">
            <tag name="hook.event_listener" event="content.content-bottom" method="onMainFooterBody"/>
        </hook>
    </hooks>