Jump to content

Ajout de paramètres dans une Response d'un Controller décoré


Recommended Posts

Bonjour,

Je souhaite ajouter un bouton avec une action personnalisée dans les actions de masse de la liste des commandes.

Pour cela, j'ai suivi la documentation concernant la surcharge de Controller, notamment la partie sur la décoration https://devdocs.prestashop.com/1.7/modules/concepts/controllers/admin-controllers/override-decorate-controller/#decorate-the-controller

J'arrive bien à effectuer la surcharge, mais je me demandais comment faire pour ajouter des variables Twig dans la Response renvoyée par le Controller parent.

Dans la documentation, l'exemple suivant est donné

public function indexAction(CmsPageCategoryFilters $categoryFilters, CmsPageFilters $cmsFilters, Request $request)
{
	$output = $this->decoratedController->indexAction($categoryFilters, $cmsFilters, $request);

	$myService = $this->getMyPaymentService();
	$output = $this->injectMyData($myService, $output);

	return $output;
}

J'ai donc essayé la méthode suivante pour une décoration de OrderController :


public function indexAction(Request $request, OrderFilters $filters)
{
	$output = $this->decoratedController->indexAction($request, $filters);

	$myCustomForm = $this->createForm(BulkExportOrdersType::class);

	return $this->render(
		'@PrestaShop/Admin/Sell/Order/Order/Blocks/my_custom_form_modal.html.twig',
		[
			'myCustomForm' => $myCustomForm->createView(),

		],
		$output
	);
}

Malheureusement, cette méthode écrase la Response d'origine et son contenu pour le remplacer complètement. Dans mon cas, j'aimerais réutiliser le contenu d'origine et y ajouter des paramètres supplémentaires.

Comment implémenter la fonction injectMyData() de la documentation de façon à récupérer la Response initiale tout en y ajoutant un nouveau paramètre ?

Merci

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...