<?php
/*
* This file is part of MultiCategorySearch
*
* Copyright(c) Akira Kurozumi <info@a-zumi.net>
*
* https://a-zumi.net
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\MultiCategorySearch42\Controller\Block;
use Eccube\Controller\AbstractController;
use Eccube\Form\Type\SearchProductType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Routing\Annotation\Route;
class MultiCategorySearchController extends AbstractController
{
/**
* @var RequestStack
*/
private RequestStack $requestStack;
public function __construct(
RequestStack $requestStack
) {
$this->requestStack = $requestStack;
}
/**
* @return array|void
*
* @Route("/block/multi_category_search/main", name="block_multi_category_search_form_main")
*
* @Template("Block/multi_category_search_form_main.twig")
*/
public function main()
{
$request = $this->requestStack->getMainRequest();
if (null === $request) {
return;
}
return $this->createSearchForm($request);
}
/**
* @return array|void
*
* @Route("/block/multi_category_search/side", name="block_multi_category_search_form_side")
*
* @Template("Block/multi_category_search_form_side.twig")
*/
public function side()
{
$request = $this->requestStack->getMainRequest();
if (null === $request) {
return;
}
return $this->createSearchForm($request);
}
/**
* @param Request $request
*
* @return array
*/
private function createSearchForm(Request $request): array
{
$builder = $this->formFactory->createNamedBuilder('', SearchProductType::class);
$builder->setAction($this->generateUrl('product_list'));
$builder->setMethod('GET');
$form = $builder->getForm();
$form->handleRequest($request);
return [
'form' => $form->createView(),
];
}
}