<?php declare(strict_types=1); namespace App\Controller\FrontendModule; use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController; use Contao\CoreBundle\DependencyInjection\Attribute\AsFrontendModule; use Contao\CoreBundle\Image\Studio\Studio; use Contao\ModuleModel; use Contao\StringUtil; use Contao\System; use Contao\Template; use Doctrine\DBAL\Connection; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; #[AsFrontendModule(category: "miscellaneous")] class TeamListController extends AbstractFrontendModuleController { /** * @var Connection */ protected $db; public function __invoke(Request $request, ModuleModel $model, string $section, array $classes = null): Response { $this->db = System::getContainer()->get('database_connection'); return parent::__invoke($request, $model, $section, $classes); // TODO: Change the autogenerated stub } protected function getResponse(Template $template, ModuleModel $model, Request $request): Response { $Team = $this->db->executeQuery( "SELECT * FROM tl_eSM_team WHERE division IN (:division) AND pid = :group AND published = '1' ORDER BY division, lastname", [ 'division' => StringUtil::deserialize($model->eSM_team_divisions), 'group' => $model->eSM_team_group ], ['division' => Connection::PARAM_STR_ARRAY] ); if ($Team->rowCount()) { $arrTeam = []; $figureBuilder = System::getContainer() ->get(Studio::class) ->createFigureBuilder() ->enableLightbox(); foreach ($Team->fetchAllAssociative() as $member) { $arrTeam[] = array_merge($member,[ 'imageFigure' => $figureBuilder->fromUuid($member['singleSRC'])->setSize($model->imgSize)->build() ]); } shuffle($arrTeam); $template->teammembers = $arrTeam; $GLOBALS['TL_CSS']['swiper'] = 'bundles/esalesmediacontaoswiper/css/swiper-custom.css'; $GLOBALS['TL_JAVASCRIPT']['swiper'] = 'bundles/esalesmediacontaoswiper/js/lib/swiper/6.5.0/swiper-bundle.min.js'; // load swiper } return $template->getResponse(); } }