src/StartPlatz/Bundle/AlphaBundle/Controller/BenefitController.php line 32

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace App\StartPlatz\Bundle\AlphaBundle\Controller;
  3. use App\StartPlatz\Bundle\AlphaBundle\Entity\Feed;
  4. use App\StartPlatz\Bundle\AlphaBundle\Entity\Page;
  5. use App\StartPlatz\Bundle\AlphaBundle\Entity\Post;
  6. use App\StartPlatz\Bundle\MemberBundle\Entity\Member;
  7. use App\StartPlatz\Bundle\MetaBundle\Entity\Attribute;
  8. use App\StartPlatz\Bundle\UserBundle\Entity\User;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. class BenefitController extends AbstractController
  15. {
  16.     public function __construct(
  17.         private readonly EntityManagerInterface $entityManager
  18.     ) {
  19.     }
  20.     #[Route('/x/startup-tools/home'name'x_startup-tools_home')]
  21.     public function startupToolsRedirectAction(Request $request)
  22.     {
  23.         return $this->redirectToRoute('connect_benefit_tools'$request->query->all(), 301);
  24.     }
  25.     #[Route('/benefits/perks'name'benefits_perks')]
  26.     #[Route('/en/benefits/perks'name'benefits_perks_english')]
  27.     public function startupToolsAction(Request $request)
  28.     {
  29.                 $redirect json_decode(base64_decode((string)$request->get('redirect')));
  30.         /** @var User $user */
  31.         if ($user $this->getUser()) {
  32.             $this->entityManager->getRepository(User::class)->writeActivity($user);
  33.             $member $this->entityManager->getRepository(Member::class)->find($user->getMemberId());
  34.         }
  35.         $pageType "startup-tool";
  36.         $parentSlug "startup-tools";
  37.         $pageRepository $this->entityManager->getRepository(Page::class);
  38.         if (!$parentPage $pageRepository->findOneBy(['slug' => $parentSlug])) {
  39.             $parentPage = new Page();
  40.             $parentPage->setTitle('Tools');
  41.             $parentPage->setTeaser('Welcome');
  42.             $parentPage->setDescription('Our Startup Tools are software solutions that can help to scale up your business. Each of our software solutions has an exclusive community-discount. We will continuously add more benefits to our portfolio. In case your prefered tool is not represented here: please do not hesitate to contact us and help us improve our benefits Contact our team.');
  43.         }
  44.         $ajax $request->get('ajax');
  45.         $limit 3;
  46.         if (!$page $request->get('page')) {
  47.             $page 1;
  48.         }
  49.         $criteria = ['type' => $pageType'isActive' => 1'status' => 'publish'];
  50.         $items $pageRepository->findPaginated($criteria, [], $page$limit);
  51.         $total $pageRepository->countByCriteria($criteria);
  52.         $path $request->getPathInfo();
  53.         $lang 'DE';
  54.         if (str_starts_with($path"/en/")) {
  55.             $lang 'EN';
  56.         }
  57.         $viewFeed '@StartPlatzAlphaBundle/Benefit/StartupTools__feed.twig';
  58.         $view '@StartPlatzAlphaBundle/Benefit/StartupTools__index__homepage.twig';
  59.         if ($ajax) {
  60.             return $this->render($viewFeed, [
  61.                 'items' => $items,
  62.                 'lang' => $lang,
  63.                 'maxPages' => ceil($total $limit),
  64.                 'thisPage' => $page,
  65.                 'ajax' => $ajax,
  66.                 'templateVars' => [],
  67.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  68.             ]);
  69.         }
  70.         return $this->render($view, [
  71.             'items' => $items,
  72.             'parentPage' => $parentPage,
  73.             'path' => $path,
  74.             'lang' => $lang,
  75.             'maxPages' => ceil($total $limit),
  76.             'thisPage' => $page,
  77.             'ajax' => $ajax,
  78.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-tools_home''parameters' => []])),
  79.             'templateVars' => [],
  80.         ]);
  81.     }
  82.     #[Route('/x/software-for-startups/{id}/{slug}'name'x_startup-tools_single')]
  83.     public function startupToolSingleAction(Request $request$id$slug)
  84.     {
  85.         return $this->redirectToRoute('connect_benefit_tool_detail', ['id' => $id'slug' => $slug] + $request->query->all(), 301);
  86.     }
  87.     #[Route('/x/benefits/home'name'x_benefits_home')]
  88.     public function benefitsAction(Request $request)
  89.     {
  90.         return $this->redirectToRoute('connect_benefit_index'$request->query->all(), 301);
  91.     }
  92.     #[Route('/x/startup-products/home'name'x_startup-products_home')]
  93.     public function startupProductAction(Request $request)
  94.     {
  95.         return $this->redirectToRoute('connect_benefit_products'$request->query->all(), 301);
  96.     }
  97.     #[Route('/x/startup-products/single/{id}'name'x_startup-products_single')]
  98.     public function startupProductSingleAction(Request $request$id)
  99.     {
  100.         return $this->redirectToRoute('connect_benefit_product_detail', ['id' => $id] + $request->query->all(), 301);
  101.     }
  102.     #[Route('/x/pages/{pageType}/single/{id}/{slug}'name'x_page_single')]
  103.     public function pageSingleAction(Request $request$pageType$id$slug)
  104.     {
  105.         return $this->redirectToRoute('connect_benefit_page_detail', ['pageType' => $pageType'id' => $id'slug' => $slug] + $request->query->all(), 301);
  106.     }
  107.     #[Route('/x/service-partner/home'name'x_service-partner_home')]
  108.     public function servicePartnerRedirectAction(Request $request)
  109.     {
  110.         return $this->redirectToRoute('connect_benefit_service_partners'$request->query->all(), 301);
  111.     }
  112.     #[Route('/benefits/service-partner'name'hp_service-partner')]
  113.     #[Route('/en/benefits/service-partner'name'hp_service-partner_english')]
  114.     public function servicePartnerAction(Request $request)
  115.     {
  116.                 $redirect json_decode(base64_decode((string)$request->get('redirect')));
  117.         /** @var User $user */
  118.         if ($user $this->getUser()) {
  119.             $this->entityManager->getRepository(User::class)->writeActivity($user);
  120.             $member $this->entityManager->getRepository(Member::class)->find($user->getMemberId());
  121.         } else {
  122.             $member $this->entityManager->getRepository(Member::class)->setEmptyMemberAccount();
  123.         }
  124.         $pageRepository $this->entityManager->getRepository(Page::class);
  125.         if (!$parentPage $pageRepository->findOneBy(['slug' => 'service-partner'])) {
  126.             $parentPage = new Page();
  127.             $parentPage->setTitle('Service Partner');
  128.             $parentPage->setTeaser('Welcome');
  129.             $parentPage->setDescription('Hier sind unsere Partner aufgelistet, die Dir helfen, Dein Business zu verbessern.');
  130.         }
  131.         $ajax $request->get('ajax');
  132.         $limit 18;
  133.         if (!$page $request->get('page')) {
  134.             $page 1;
  135.         }
  136.         if ($topic $request->get('topic')) {
  137.             $criteria = ['partners' => ['service-partner'], 'tags' => $topic'isActive' => 1'status' => 'publish'];
  138.         } else {
  139.             $criteria = ['partners' => ['service-partner'], 'isActive' => 1'status' => 'publish'];
  140.         }
  141.         $partners $pageRepository->findPaginated($criteria, [], $page$limit);
  142.         $total $pageRepository->countByCriteria($criteria);
  143.         $path $request->getPathInfo();
  144.         $lang 'DE';
  145.         if (str_starts_with($path"/en/")) {
  146.             $lang 'EN';
  147.         }
  148.         if (!$pageType $request->get('pageType')) {
  149.             $pageType 'service-partner';
  150.         }
  151.         $titles $pageRepository->getPageTexts($pageType$lang);
  152.         $pageTypes $pageRepository->getPageTypes();
  153.         $view '@StartPlatzAlphaBundle/Benefit/index.servicePartners.homepage.html.twig';
  154.         $viewFeed '@StartPlatzAlphaBundle/Benefit/_feed.servicePartners.homepage.html.twig';
  155.         if ($ajax) {
  156.             return $this->render($viewFeed, [
  157.                 'partners' => $partners,
  158.                 'pageType' => $pageType,
  159.                 'pageTypes' => $pageTypes,
  160.                 'lang' => $lang,
  161.                 'titles' => $titles,
  162.                 'topic' => $topic,
  163.                 'userMember' => $member,
  164.                 'maxPages' => ceil($total $limit),
  165.                 'thisPage' => $page,
  166.                 'ajax' => $ajax,
  167.                 'limit' => $limit,
  168.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_service-partner_home''parameters' => []])),
  169.                 'templateVars' => [],
  170.             ]);
  171.         }
  172.         return $this->render($view, [
  173.             'partners' => $partners,
  174.             'pageType' => $pageType,
  175.             'pageTypes' => $pageTypes,
  176.             'lang' => $lang,
  177.             'titles' => $titles,
  178.             'total' => $total,
  179.             'parentPage' => $parentPage,
  180.             'topic' => $topic,
  181.             'userMember' => $member,
  182.             'maxPages' => ceil($total $limit),
  183.             'thisPage' => $page,
  184.             'ajax' => $ajax,
  185.             'limit' => $limit,
  186.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_service-partner_home''parameters' => []])),
  187.             'templateVars' => [],
  188.         ]);
  189.     }
  190.     #[Route('/x/service-partner/single/{id}/{slug}'name'x_service-partner_single')]
  191.     /**
  192.      * @IsGranted("ROLE_USER")
  193.      */
  194.     public function servicePartnerSingleAction(Request $request$id$slug)
  195.     {
  196.         return $this->redirectToRoute('connect_benefit_service_partner_detail', ['id' => $id'slug' => $slug] + $request->query->all(), 301);
  197.     }
  198. }