Bonjour et bonne année !
Je te suggère de faire un template spécifique, qui hérite de ton template "e-commerce", et dans lequel tu vas supprimer ce que tu ne veux pas faire apparaitre.
Ensuite, installer le module TemplateSwitcher : https://github.com/roadster31/TemplateSwitcher . Tu disposeras alors d'un moyen de basculer d'un template à l'autre, soit avec une URL, soit avec un évènement. Je vois alors deux solutions différentes.
1. Tu bricoles les URLs de changement de langue, pour que lorsuqi'on change de langue, on bascule sur le "bon" template. Exemple :
fr => http://tonsite.com/ts/nom_de_ton_templa … lang=fr_FR
en => http://tonsite.com/ts/nom_de_ton_templa … lang=en_US
es => http://tonsite.com/ts/nom_de_ton_templa … lang=es_ES
etc.
Ainsi, en même temps que tu change de langue, tu change de template.
Autre stratégie, beaucoup plus sûre, écrire un petit bout de module qui met en place le bon template en fonction de la langue courante. Tu peux faire ça dans un RequestListener, exemple (attention, code non testé) :
<?php
namespace MonModule\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use TemplateSwitcher\Events\TemplateSwitcherEvent;
use Thelia\Core\Template\TemplateDefinition;
class RequestListener implements EventSubscriberInterface
{
public function checkTemplateSwitch(RequestEvent $event): void
{
/** @var \Thelia\Core\HttpFoundation\Session\Session $session */
$session = $event->getRequest()->getSession();
$locale = $session->getLang()->gertLocale();
if ($locale === 'fr_FR') {
$templateName = 'nom_de_ton_template_ecommerce';
} else {
$templateName = 'nom_de_ton_template_vitrine';
}
$event = (new TemplateSwitcherEvent($templateName))
->setTemplateType(TemplateDefinition::FRONT_OFFICE);
$this->eventDispatcher->dispatch(
TemplateSwitcherEvent::SWITCH_TEMPLATE_EVENT,
$event
);
}
/**
* {@inheritdoc}
* api.
*/
public static function getSubscribedEvents()
{
return [
KernelEvents::REQUEST => ['checkTemplateSwitch', 100],
];
}
}