* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ declare(strict_types=1); namespace PrestaShop\Module\Mbo\Controller\Admin; use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; use PrestaShopBundle\Security\Annotation\AdminSecurity; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException; /** * Responsible of "Improve > Modules > Modules Catalog > Modules Selection" page display. */ class ModuleSelectionController extends FrameworkBundleAdminController { /** * @var RequestStack */ protected $requestStack; /** * @param RequestStack $requestStack */ public function __construct( RequestStack $requestStack ) { parent::__construct(); $this->requestStack = $requestStack; } /** * @AdminSecurity("is_granted('read', request.get('_legacy_controller'))") * * @return Response */ public function indexAction(): Response { $response = new Response(); try { $response->setContent($this->renderView( '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/addons_store.html.twig', [ 'pageContent' => $this->get('mbo.externalcontent.provider')->getContent( $this->get('mbo.addons.links_provider')->getSelectionLink() ), 'layoutHeaderToolbarBtn' => [], 'layoutTitle' => $this->trans('Modules in the spotlight', 'Modules.Mbo.Modulesselection'), 'requireAddonsSearch' => true, 'requireBulkActions' => false, 'showContentHeader' => true, 'enableSidebar' => true, 'help_link' => $this->generateSidebarLink($this->requestStack->getCurrentRequest()->get('_legacy_controller')), 'requireFilterStatus' => false, 'level' => $this->authorizationLevel($this->requestStack->getCurrentRequest()->get('_legacy_controller')), ] )); } catch (ServiceUnavailableHttpException $exception) { $response->setContent($this->renderView('@Modules/ps_mbo/views/templates/admin/error.html.twig')); $response->setStatusCode($exception->getStatusCode()); $response->headers->add($exception->getHeaders()); } return $response; } }