<?php
namespace App\Controller;
use App\Entity\Setting;
use App\Entity\WebGroup;
use App\Tools\WebGroupHelper;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment as Twig;
class DefaultController extends AbstractController
{
const LAYOUT_IMAGE_SLIDER = 1;
const LAYOUT_MAIN_GROUPS = 2;
const LAYOUT_SUB_GROUPS = 3;
/**
* @Route("/", methods={"GET"}, name="app_home")
*
* @param Request $request
* @param WebGroupHelper $webGroupHelper
*
* @return Response
* @throws
*/
public function index(Request $request, Twig $twig, WebGroupHelper $webGroupHelper): Response
{
return $this->redirectToRoute('wi_cam_home');
$doctrine = $this->getDoctrine();
$setting = $doctrine->getRepository(Setting::class)->findOneByName('startpage-layout');
if (empty($setting)) {
throw new \RuntimeException('Setting with name "startpage-layout" was not found');
}
$startPageGroups = new ArrayCollection();
switch ($setting->getValue()) {
case self::LAYOUT_IMAGE_SLIDER:
break;
case self::LAYOUT_MAIN_GROUPS:
// @see: RequestListener
break;
case self::LAYOUT_SUB_GROUPS:
$globals = $twig->getGlobals();
$language = $globals['language'];
$fallbackLanguage = $globals['fallbackLanguage'];
$startPageGroups = $doctrine->getRepository(WebGroup::class)->findByLevel(1);
$webGroupHelper->translateGroups($startPageGroups, $language, $fallbackLanguage);
break;
}
return $this->render('default/index.html.twig', [
'startPageSetting' => $setting,
'startPageGroups' => $startPageGroups
]);
}
/**
* @Route("/privacy", methods={"GET"}, name="app_privacy")
*
* @param Request $request
*
* @return Response
*/
public function privacy(Request $request): Response
{
return $this->render('default/privacy.html.twig');
}
/**
* @Route("/mail-test", methods={"GET"}, name="app_test", condition="'dev' == '%kernel.environment%'")
*
* @param Request $request
* @param \Swift_Mailer $mailer
*
* @return Response
*/
public function mailTest(Request $request, \Swift_Mailer $mailer): Response
{
$email = 'd.richardt@ottcomputer.de';
if ($request->get('address')) {
$email = $request->get('address');
}
$message = (new \Swift_Message('Hello Email'))
->setFrom($this->getParameter('mail_sender_address'))
->setTo($email)
->setBody(
'hello world',
'text/plain'
);
$return = $mailer->send($message, $errors);
ob_start();
ini_set('xdebug.var_display_max_depth', '20');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');
var_dump($return, $errors, $mailer);
$result = ob_get_clean();
return new Response($result);
}
}