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\Actor;
  4. use App\StartPlatz\Bundle\AlphaBundle\Entity\Feed;
  5. use App\StartPlatz\Bundle\AlphaBundle\Entity\Page;
  6. use App\StartPlatz\Bundle\AlphaBundle\Entity\Post;
  7. use App\StartPlatz\Bundle\MemberBundle\Entity\Member;
  8. use App\StartPlatz\Bundle\MetaBundle\Entity\Attribute;
  9. use App\StartPlatz\Bundle\UserBundle\Entity\User;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use App\StartPlatz\Bundle\WebsiteBundle\MenuTranslationService;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  16. class BenefitController extends AbstractController
  17. {
  18.     public function __construct(
  19.         private readonly SessionInterface $session,
  20.         private readonly MenuTranslationService $menuTranslationService
  21.     ) {
  22.     }
  23.     /**
  24.      * @Route("/x/startup-tools/home", name="x_startup-tools_home")
  25.      * @Route("/benefits/perks", name="benefits_perks")
  26.      * @Route("/en/benefits/perks", name="benefits_perks_english")
  27.      */
  28.     public function startupToolsAction(Request $request)
  29.     {
  30.         $em $this->getDoctrine()->getManager();
  31.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  32.         /** @var User $user */
  33.         if ($user $this->getUser()) {
  34.             $em->getRepository(User::class)->writeActivity($user);
  35.             $member $em->getRepository(Member::class)->find($user->getMemberId());
  36.         }
  37.         $pageType "startup-tool";
  38.         $parentSlug "startup-tools";
  39.         $pageRepository $em->getRepository(Page::class);
  40.         if (!$parentPage $pageRepository->findOneBy(['slug' => $parentSlug])) {
  41.             $parentPage = new Page();
  42.             $parentPage->setTitle('Tools');
  43.             $parentPage->setTeaser('Welcome');
  44.             $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.');
  45.         }
  46.         $ajax $request->get('ajax');
  47.         $limit 3;
  48.         if (!$page $request->get('page')) {
  49.             $page 1;
  50.         }
  51.         $criteria = ['type' => $pageType'isActive' => 1'status' => 'publish'];
  52.         $items $pageRepository->findPaginated($criteria, [], $page$limit);
  53.         $total $pageRepository->countByCriteria($criteria);
  54.         $route $request->get('_route');
  55.         $path $request->getPathInfo();
  56.         $lang 'DE';
  57.         if (str_starts_with($path"/en/")) {
  58.             $lang 'EN';
  59.         }
  60.         $viewFeed '@StartPlatzAlphaBundle/Benefit/StartupTools__feed.twig';
  61.         if ($route == 'x_startup-tools_home') {
  62.             $view '@StartPlatzAlphaBundle/Benefit/StartupTools__index.twig';
  63.         } else {
  64.             $view '@StartPlatzAlphaBundle/Benefit/StartupTools__index__homepage.twig';
  65.         }
  66.         if ($ajax) {
  67.             return $this->render($viewFeed, [
  68.                 'items' => $items,
  69.                 'lang' => $lang,
  70.                 'maxPages' => ceil($total $limit),
  71.                 'thisPage' => $page,
  72.                 'ajax' => $ajax,
  73.                 'templateVars' => [],
  74.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  75.             ]);
  76.         }
  77.         return $this->render($view, [
  78.             'items' => $items,
  79.             'parentPage' => $parentPage,
  80.             'path' => $path,
  81.             'lang' => $lang,
  82.             'maxPages' => ceil($total $limit),
  83.             'thisPage' => $page,
  84.             'ajax' => $ajax,
  85.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-tools_home''parameters' => []])),
  86.             'templateVars' => [],
  87.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  88.         ]);
  89.     }
  90.     /**
  91.      * @Route("/x/software-for-startups/{id}/{slug}", name="x_startup-tools_single")
  92.      */
  93.     public function startupToolSingleAction(Request $request$id$slug)
  94.     {
  95.         $em $this->getDoctrine()->getManager();
  96.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  97.         /** @var User $user */
  98.         if ($user $this->getUser()) {
  99.             $em->getRepository(User::class)->writeActivity($user);
  100.         }
  101.         $pageRepository $em->getRepository(Page::class);
  102.         $item $pageRepository->findOneBy(['id' => $id]);
  103.         $feedItems = [];
  104.         $entities = [];
  105.         if ($item->getFeedTags()) {
  106.             $feedItems $em->getRepository(Feed::class)->findByFeedTag($item->getFeedTags());
  107.             $entities $em->getRepository(Feed::class)->getEntitiesByFeedItems($feedItems);
  108.         }
  109.         $pageType 'startup-tool';
  110.         $lang "EN";
  111.         $titles $pageRepository->getPageTexts($pageType$lang);
  112.         return $this->render('@StartPlatzAlphaBundle/Benefit/single.startupTools.html.twig', [
  113.             'id' => $id,
  114.             'item' => $item,
  115.             'feedItems' => $feedItems,
  116.             'entities' => $entities,
  117.             'pageType' => $pageType,
  118.             'lang' => $lang,
  119.             'titles' => $titles,
  120.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-tools_home''parameters' => []])),
  121.             'templateVars' => [],
  122.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  123.         ]);
  124.     }
  125.     /**
  126.      * @Route("/x/benefits/home", name="x_benefits_home")
  127.      */
  128.     public function benefitsAction(Request $request)
  129.     {
  130.         $em $this->getDoctrine()->getManager();
  131.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  132.         /** @var User $user */
  133.         if ($user $this->getUser()) {
  134.             $em->getRepository(User::class)->writeActivity($user);
  135.         }
  136.         $pageRepository $em->getRepository(Page::class);
  137.         $templateVars $pageRepository->getTemplateVars($request);
  138.         $orderBy $templateVars['dimensions'] ?: ['title' => 'ASC'];
  139.         $pageTypes $em->getRepository(Attribute::class)->findBy([
  140.             'name' => 'page.type',
  141.             'parent' => 'benefit',
  142.         ]);
  143.         $types array_map(fn ($result) => $result->getCode(), $pageTypes);
  144.         $criteria = ['partners' => array_keys($types)] + $templateVars['criteria'];
  145.         if (!$parentPage $pageRepository->findOneBy(['slug' => 'benefits-all'])) {
  146.             $parentPage = new Page();
  147.             $parentPage->setTitle('STARTPLATZ Benefits');
  148.             $parentPage->setTeaser('Welcome');
  149.             $parentPage->setDescription('empty');
  150.         }
  151.         $ajax $request->get('ajax');
  152.         $limit 300;
  153.         if (!$page $request->get('page')) {
  154.             $page 1;
  155.         }
  156.         $items $pageRepository->findPaginated($criteria$orderBy$page$limit);
  157.         $maxPages $pageRepository->countByCriteria($criteria);
  158.         if ($ajax) {
  159.             return $this->render('@StartPlatzAlphaBundle/Benefit/Benefits__Feed.twig', [
  160.                 'items' => $items,
  161.                 'pageTypes' => $pageTypes,
  162.                 'maxPages' => $maxPages,
  163.                 'thisPage' => $page,
  164.                 'ajax' => $ajax,
  165.                 'limit' => $limit,
  166.                 'templateVars' => [],
  167.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  168.             ]);
  169.         }
  170.         return $this->render('@StartPlatzAlphaBundle/Benefit/Benefits__index.twig', [
  171.             'items' => $items,
  172.             'parentPage' => $parentPage,
  173.             'pageTypes' => $pageTypes,
  174.             'maxPages' => $maxPages,
  175.             'thisPage' => $page,
  176.             'ajax' => $ajax,
  177.             'limit' => $limit,
  178.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  179.             'templateVars' => [],
  180.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  181.         ]);
  182.     }
  183.     /**
  184.      * @Route("/x/startup-products/home", name="x_startup-products_home")
  185.      */
  186.     public function startupProductAction(Request $request)
  187.     {
  188.         $em $this->getDoctrine()->getManager();
  189.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  190.         /** @var User $user */
  191.         if ($user $this->getUser()) {
  192.             $em->getRepository(User::class)->writeActivity($user);
  193.             $member $em->getRepository(Member::class)->find($user->getMemberId());
  194.         } else {
  195.             $member $em->getRepository(Member::class)->setEmptyMemberAccount();
  196.         }
  197.         $pageType "startup-product-partner";
  198.         $parentSlug "startup-products";
  199.         $pageRepository $em->getRepository(Page::class);
  200.         if (!$parentPage $pageRepository->findOneBy(['slug' => $parentSlug])) {
  201.             $parentPage = new Page();
  202.             $parentPage->setTitle('Products');
  203.             $parentPage->setTeaser('Welcome');
  204.             $parentPage->setDescription('    <p>Wir zeigen hier Produkte, die andere Startups geschaffen haben und die n&uuml;tzlich f&uuml;r die Mitglieder unserer Community sind. Das k&ouml;nnen Alltagsp â–¶
  205.                     Wir werden &uuml;ber die n&auml;chsten Wochen Produkt-Partner suchen, sie portraitieren und die Produkte hier vorstellen. Wenn Du auch Produkt-Partner werden wi â–¶
  206.                 ');
  207.         }
  208.         $ajax $request->get('ajax');
  209.         $limit 3;
  210.         if (!$page $request->get('page')) {
  211.             $page 1;
  212.         }
  213.         $visibilityStatuses = [
  214.             'Public' => 'public',
  215.             'SP-Connect' => 'sp-connect',
  216.             'Admin only' => 'admin',
  217.         ];
  218.         $allowedVisibility = ['sp-connect''public'];
  219.         $criteria = ['type' => $pageType'visibility' => $allowedVisibility'status' => 'publish'];
  220.         $items $pageRepository->findPaginated($criteria, [], $page$limit);
  221.         $maxPages $pageRepository->countByCriteria($criteria);
  222.         $viewFeed '@StartPlatzAlphaBundle/Benefit/StartupProduct__feed.twig';
  223.         $view '@StartPlatzAlphaBundle/Benefit/StartupProducts__index.twig';
  224.         if ($ajax) {
  225.             return $this->render($viewFeed, [
  226.                 'items' => $items,
  227.                 'userMember' => $member,
  228.                 'maxPages' => $maxPages,
  229.                 'thisPage' => $page,
  230.                 'ajax' => $ajax,
  231.                 'templateVars' => [],
  232.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  233.             ]);
  234.         }
  235.         return $this->render($view, [
  236.             'items' => $items,
  237.             'parentPage' => $parentPage,
  238.             'userMember' => $member,
  239.             'maxPages' => $maxPages,
  240.             'thisPage' => $page,
  241.             'ajax' => $ajax,
  242.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  243.             'templateVars' => [],
  244.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  245.         ]);
  246.     }
  247.     /**
  248.      * @Route("/x/startup-products/single/{id}", name="x_startup-products_single")
  249.      */
  250.     public function startupProductSingleAction(Request $request$id)
  251.     {
  252.         $em $this->getDoctrine()->getManager();
  253.         if (!$redirect json_decode(
  254.             base64_decode((string)$request->get('redirect'))
  255.         )) {
  256.             $redirect json_decode(
  257.                 json_encode(['path' => 'x_startup-products_home''parameters' => []])
  258.             );
  259.         }
  260.         /** @var User $user */
  261.         if ($user $this->getUser()) {
  262.             $em->getRepository(User::class)->writeActivity($user);
  263.             $userMember $em->getRepository(Member::class)->find($user->getMemberId());
  264.         } else {
  265.             $userMember $em->getRepository(Member::class)->setEmptyMemberAccount();
  266.         }
  267.         if (!$item $em->getRepository(Page::class)->findOneBy(['id' => $id])) {
  268.             $this->session->getFlashBag()->add('notice''ERROR 084: page not found');
  269.             return $this->redirect($this->generateUrl($redirect->path, (array)$redirect->parameters));
  270.         }
  271.         $feedItems = [];
  272.         $entities = [];
  273.         if ($item->getFeedTags() and !$item->getFeedTags() == '["no tag wanted"]') {
  274.             $feedItems $em->getRepository(Feed::class)->findByFeedTag($item->getFeedTags());
  275.             $entities $em->getRepository(Feed::class)->getEntitiesByFeedItems($feedItems);
  276.         }
  277.         if (!$parentPage $em->getRepository(Page::class)->findOneBy(['slug' => 'startup-products'])) {
  278.             $parentPage = new Page();
  279.             $parentPage->setTitle('Startup Products');
  280.             $parentPage->setTeaser('Welcome');
  281.             $parentPage->setDescription('    <p>Wir zeigen hier Produkte, die andere Startups geschaffen haben und die n&uuml;tzlich f&uuml;r die Mitglieder unserer Community sind. Das k&ouml;nnen Alltagsp â–¶
  282.                     Wir werden &uuml;ber die n&auml;chsten Wochen Produkt-Partner suchen, sie portraitieren und die Produkte hier vorstellen. Wenn Du auch Produkt-Partner werden wi â–¶
  283.                 ');
  284.         }
  285.         $pageType 'startup-product-partner';
  286.         $lang "DE";
  287.         $titles $em->getRepository(Page::class)->getPageTexts($pageType$lang);
  288.         return $this->render('@StartPlatzAlphaBundle/Benefit/single.startupProducts.html.twig', [
  289.             'id' => $id,
  290.             'item' => $item,
  291.             'feedItems' => $feedItems,
  292.             'entities' => $entities,
  293.             'pageType' => $pageType,
  294.             'lang' => $lang,
  295.             'titles' => $titles,
  296.             'parentPage' => $parentPage,
  297.             'userMember' => $userMember,
  298.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_startup-products_home''parameters' => []])),
  299.             'templateVars' => [],
  300.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  301.         ]);
  302.     }
  303.     /**
  304.      * @Route("/x/pages/{pageType}/single/{id}/{slug}", name="x_page_single")
  305.      */
  306.     public function pageSingleAction(Request $request$pageType$id$slug)
  307.     {
  308.         $em $this->getDoctrine()->getManager();
  309.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  310.         /** @var User $user */
  311.         if ($user $this->getUser()) {
  312.             $em->getRepository(User::class)->writeActivity($user);
  313.         }
  314.         /** @var Page $page */
  315.         $page $em->getRepository(Page::class)->findOneBy(['id' => $id]);
  316.         $title $page->getTitle();
  317.         $pageTag $page->getSlug();
  318.         $feedItems = [];
  319.         $entities = [];
  320.         if ($page->getFeedTags()) {
  321.             $feedItems $em->getRepository(Feed::class)->findByFeedTag($page->getFeedTags());
  322.             $entities $em->getRepository(Feed::class)->getEntitiesByFeedItems($feedItems);
  323.         }
  324.         $lang "DE";
  325.         $titles $em->getRepository(Page::class)->getPageTexts($pageType$lang);
  326.         return $this->render('@StartPlatzAlphaBundle/Benefit/single.page.html.twig', [
  327.             'id' => $id,
  328.             'item' => $page,
  329.             'feedItems' => $feedItems,
  330.             'entities' => $entities,
  331.             'pageType' => $pageType,
  332.             'lang' => $lang,
  333.             'titles' => $titles,
  334.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_page_single''parameters' => ['id' => $id'slug' => $slug],])),
  335.             'templateVars' => [],
  336.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  337.         ]);
  338.     }
  339.     /**
  340.      * @Route("/x/service-partner/home", name="x_service-partner_home")
  341.      * @Route("/benefits/service-partner", name="hp_service-partner")
  342.      * @Route("/en/benefits/service-partner", name="hp_service-partner_english")
  343.      */
  344.     public function servicePartnerAction(Request $request)
  345.     {
  346.         $em $this->getDoctrine()->getManager();
  347.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  348.         /** @var User $user */
  349.         if ($user $this->getUser()) {
  350.             $em->getRepository(User::class)->writeActivity($user);
  351.             $member $em->getRepository(Member::class)->find($user->getMemberId());
  352.         } else {
  353.             $member $em->getRepository(Member::class)->setEmptyMemberAccount();
  354.         }
  355.         $pageRepository $em->getRepository(Page::class);
  356.         if (!$parentPage $pageRepository->findOneBy(['slug' => 'service-partner'])) {
  357.             $parentPage = new Page();
  358.             $parentPage->setTitle('Service Partner');
  359.             $parentPage->setTeaser('Welcome');
  360.             $parentPage->setDescription('Hier sind unsere Partner aufgelistet, die Dir helfen, Dein Business zu verbessern.');
  361.         }
  362.         $ajax $request->get('ajax');
  363.         $limit 18;
  364.         if (!$page $request->get('page')) {
  365.             $page 1;
  366.         }
  367.         if ($topic $request->get('topic')) {
  368.             $criteria = ['partners' => ['service-partner'], 'tags' => $topic'isActive' => 1'status' => 'publish'];
  369.         } else {
  370.             $criteria = ['partners' => ['service-partner'], 'isActive' => 1'status' => 'publish'];
  371.         }
  372.         $partners $pageRepository->findPaginated($criteria, [], $page$limit);
  373.         $total $pageRepository->countByCriteria($criteria);
  374.         $path $request->getPathInfo();
  375.         $lang 'DE';
  376.         if (str_starts_with($path"/en/")) {
  377.             $lang 'EN';
  378.         }
  379.         if (!$pageType $request->get('pageType')) {
  380.             $pageType 'service-partner';
  381.         }
  382.         $titles $pageRepository->getPageTexts($pageType$lang);
  383.         $pageTypes $pageRepository->getPageTypes();
  384.         $route $request->get('_route');
  385.         if ($route == 'x_service-partner_home') {
  386.             $view '@StartPlatzAlphaBundle/Benefit/ServicePartner__index.twig';
  387.             $viewFeed '@StartPlatzAlphaBundle/Benefit/ServicePartner__Feed.twig';
  388.         } else {
  389.             $view '@StartPlatzAlphaBundle/Benefit/index.servicePartners.homepage.html.twig';
  390.             $viewFeed '@StartPlatzAlphaBundle/Benefit/_feed.servicePartners.homepage.html.twig';
  391.         }
  392.         if ($ajax) {
  393.             return $this->render($viewFeed, [
  394.                 'partners' => $partners,
  395.                 'pageType' => $pageType,
  396.                 'pageTypes' => $pageTypes,
  397.                 'lang' => $lang,
  398.                 'titles' => $titles,
  399.                 'topic' => $topic,
  400.                 'userMember' => $member,
  401.                 'maxPages' => ceil($total $limit),
  402.                 'thisPage' => $page,
  403.                 'ajax' => $ajax,
  404.                 'limit' => $limit,
  405.                 'redirectUrl' => base64_encode(json_encode(['path' => 'x_service-partner_home''parameters' => []])),
  406.                 'templateVars' => [],
  407.             ]);
  408.         }
  409.         return $this->render($view, [
  410.             'partners' => $partners,
  411.             'pageType' => $pageType,
  412.             'pageTypes' => $pageTypes,
  413.             'lang' => $lang,
  414.             'titles' => $titles,
  415.             'total' => $total,
  416.             'parentPage' => $parentPage,
  417.             'topic' => $topic,
  418.             'userMember' => $member,
  419.             'maxPages' => ceil($total $limit),
  420.             'thisPage' => $page,
  421.             'ajax' => $ajax,
  422.             'limit' => $limit,
  423.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_service-partner_home''parameters' => []])),
  424.             'templateVars' => [],
  425.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  426.         ]);
  427.     }
  428.     /**
  429.      * @Route("/x/service-partner/single/{id}/{slug}", name="x_service-partner_single")
  430.      * @Security("is_granted('ROLE_USER')")
  431.      */
  432.     public function servicePartnerSingleAction(Request $request$id$slug)
  433.     {
  434.         $em $this->getDoctrine()->getManager();
  435.         $redirect json_decode(base64_decode((string)$request->get('redirect')));
  436.         /** @var User $user */
  437.         if ($user $this->getUser()) {
  438.             $em->getRepository(User::class)->writeActivity($user);
  439.             $member $em->getRepository(Member::class)->find($user->getMemberId());
  440.         } else {
  441.             $member $em->getRepository(Member::class)->setEmptyMemberAccount();
  442.         }
  443.         $item $em->getRepository(Page::class)->findOneBy(['id' => $id]);
  444.         $pageTag $item->getSlug();
  445.         $feedItems = [];
  446.         $entities = [];
  447.         $feedTagsArray json_decode((string)$item->getFeedTags(), true);
  448.         $feedTagsArray[] = $item->getSlug();
  449.         $feedTags json_encode(array_values(array_unique($feedTagsArray)));
  450.         if ($feedTags) {
  451.             $feedItems $em->getRepository(Feed::class)->findByFeedTag($feedTags);
  452.             $entities $em->getRepository(Feed::class)->getEntitiesByFeedItems($feedItems);
  453.         }
  454.         /** @var Member $contactPartner */
  455.         $contactPartner $em->getRepository(Member::class)->findOneBy(['id' => $item->getContactPartnerMemberId()]);
  456.         $actors $em->getRepository(Actor::class)->findActorsByFeedTag($pageTag);
  457.         $pageType $item->getType();
  458.         $lang "DE";
  459.         $titles $em->getRepository(Page::class)->getPageTexts($pageType$lang);
  460.         $faqs $em->getRepository(Post::class)->findBy([
  461.             'type' => 'faq',
  462.             'teamId' => $item->getTeamId(),
  463.         ], ['score' => 'DESC']);
  464.         $faqsByTopic = [];
  465.         foreach ($faqs as $faq) {
  466.             $category ucfirst((string)$faq->getCategories());
  467.             array_key_exists($category$faqsByTopic) ? array_push(
  468.                 $faqsByTopic[$category],
  469.                 $faq
  470.             ) : $faqsByTopic[$category] = [$faq];
  471.         }
  472.         return $this->render('@StartPlatzAlphaBundle/Benefit/single.servicePartner.html.twig', [
  473.             'id' => $id,
  474.             'item' => $item,
  475.             'page' => $item,
  476.             'feedItems' => $feedItems,
  477.             'actors' => $actors,
  478.             'feedTags' => $feedTags,
  479.             'entities' => $entities,
  480.             'pageType' => $pageType,
  481.             'lang' => $lang,
  482.             'titles' => $titles,
  483.             'contactPartner' => $contactPartner,
  484.             'allowEdit' => false,
  485.             'userMember' => $member,
  486.             'faqsByTopic' => $faqsByTopic,
  487.             'redirectUrl' => base64_encode(json_encode(['path' => 'x_service-partner_single''parameters' => ['id' => $id'slug' => $slug],])),
  488.             'templateVars' => [],
  489.             'menuLinksAndPhrases' => $this->menuTranslationService->getMenuLinksAndPhrases($request->server->get('REQUEST_URI')),
  490.         ]);
  491.     }
  492. }