src/Controller/ScreenController.php line 54

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\Persistence\ManagerRegistry;
  4. //use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. //use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  11. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  13. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  14. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  15. use Doctrine\Persistence\ManagerRegistry as PersistenceManagerRegistry;
  16. use Symfony\Component\HttpKernel\KernelInterface;
  17. use Symfony\Contracts\Translation\TranslatorInterface;
  18. use App\Entity\Department;
  19. use App\Entity\Language;
  20. use App\Entity\Server;
  21. use App\Entity\Service;
  22. use App\Entity\ShoppingWindow;
  23. use App\Entity\User;
  24. use App\Entity\UserStory;
  25. use App\Entity\Module;
  26. use App\Entity\Order;
  27. use App\Entity\EshopLink;
  28. use App\Entity\Feed;
  29. use App\Entity\FormResponse;
  30. class ScreenController extends DefaultController
  31. {
  32.     protected string $databaseUser "root";
  33.     protected string $databasePassword "pswdb33";
  34.     /** KernelInterface $appKernel */
  35.     protected $appKernel;
  36.     protected $translator;
  37.     public function __construct(KernelInterface $appKernel,
  38.                                 ManagerRegistry $doctrine,
  39.                                 TranslatorInterface $translator)
  40.     {
  41.         $this->appKernel $appKernel;
  42.         $this->doctrine $doctrine;
  43.         $this->translator $translator;
  44.     }
  45.     #[Route('/'name'root')]
  46.     public function indexAction(Request $requestManagerRegistry $doctrine) {
  47.         /* we load session data */
  48.         parent::init($request$doctrine);
  49.         $session $request->getSession();
  50.         $em $this->doctrine->getManager();
  51.         //print('<br>QQW session: '.$session->get('server')->getLabel());
  52.         //$translator->trans('symfony.great');
  53.         $homePage '';
  54.         //$homePage = $this->parseContent($request, "{INTERACTIVESLIDESHOW_3}");
  55.         if(!empty($session->get('user'))) {
  56.             $userId $session->get('user')->getUserId();
  57.             $user $em->getRepository(User::class)->getUser($userId);
  58.         } else {
  59.             $user null;
  60.         }
  61.         // we get root departments
  62.         $rootDepartments $em->getRepository(Department::class)->getRootNodes();
  63.         // we add sub departments
  64.         $subDepartments = array();
  65.         foreach($rootDepartments as $dep)
  66.         {
  67.             $depId $dep->getDepartmentId();
  68.             $dep->setLocale($session->get('lang')->getLangKey());
  69.             $em->refresh($dep);
  70. //            print('<br>departmentId: '.$depId);
  71. //            print('<br>departmentName: '.$dep->getDepartmentName());
  72.             $subDeps $em->getRepository(Server::class)->getSubDepartments($depId);
  73.             $subDepartments[$depId] = $subDeps;
  74.         }
  75.         /* we load list of departments for marketplace service */
  76.         $departmentArray[] =  $em->getRepository(Server::class)->getDepartment(3);
  77.         /* we load list of shopping windows */
  78.         $shoppingWindowList $em->getRepository(ShoppingWindow::class)->getShoppingWindowList($departmentArray06);
  79.         $templatesDir $this->appKernel->getProjectDir() . '/app/Resources/views';
  80.         $serviceIcons = [];
  81.         foreach($session->get('server')->getServices() as $service) {
  82.             $serviceId $service->getServiceId();
  83.             $icon3d '/users/Kantona/freeworld/FUTURE_'.$this->getNormalisedText($service->getServiceName());
  84.             $icon3d $icon3d.'.x3d';
  85.             //if($session->get('label') == 'webexciter.com') {
  86.             //$icon3d = $icon3d.'.x3d';
  87.             //} else {
  88.             //$icon3d = $icon3d.'-White.x3d';
  89.             //}
  90.             //echo "<br>The file:".$icon3d;
  91.             if (is_file('.'.$icon3d)) {
  92.                 //echo "<br>The file $icon3d exists";
  93.                 $serviceIcons[$serviceId] = $icon3d;
  94.             }
  95.         }
  96.         $server_request_scheme 'https';
  97.         $uri $server_request_scheme '://' $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
  98.         if (strpos($uri'app_dev.php') == false) {
  99.             $urlBase '/';
  100.         } else {
  101.             $urlBase $server_request_scheme '://' $_SERVER['HTTP_HOST'] . '/';
  102.         }
  103.         $eCommerceNews $this->getRedactionList($request1);
  104.         /*
  105.         print('<br>Server: ');
  106.         \Doctrine\Common\Util\Debug::dump($session->get('server'));
  107.         */
  108.         /* we render data */
  109.         return $this->render('index.html.twig',
  110.             array('headerData' => $this -> getPageHeader($request),
  111.                 'homePage' => $homePage,
  112.                 'user' => $user,
  113.                 'rootDepartments' => $rootDepartments,
  114.                 'subDepartments' => $subDepartments,
  115.                 'shoppingWindowList' => $shoppingWindowList,
  116.                 'templatesDir' => $templatesDir,
  117.                 'serviceIcons' => $serviceIcons,
  118.                 'uri' => $uri,
  119.                 'urlBase' => $urlBase,
  120.                 'eCommerceNews' => $eCommerceNews,
  121.             )
  122.         );
  123.     }
  124.     #[Route('/login'name'login')]
  125.     public function loginAction(Request $requestManagerRegistry $doctrine) {
  126.         /* we load session data */
  127.         parent::init($request$doctrine);
  128.         $em $this->doctrine->getManager();
  129.         $user = new User();
  130.         /* we build login form */
  131.         $formBuilder $this->createFormBuilder($user);
  132.         /*
  133.           $formBuilder->add('username', TextType::class, [
  134.               'required' => true,
  135.               'label' => $this->translator->trans('user.username')
  136.           ]);
  137.         */
  138.   $formBuilder->add('username'TextType::class, array(
  139.       'required' => true,
  140.       'label' => $this->translator->trans('user.username'),
  141.       'attr' => array('class' => 'simple_text_form''size' => 22),
  142.       'label_attr' => array('class' => 'simple_form_field_label'),
  143.   ));
  144.   $formBuilder->add('psw'PasswordType::class, array(
  145.       'required' => true,
  146.       'label' => $this->translator->trans('user.password'),
  147.       'attr' => array('class' => 'simple_text_form''size' => 22),
  148.       'label_attr' => array('class' => 'simple_form_field_label'),
  149.   ));
  150.   $formBuilder->add('save'SubmitType::class, array('label' => 'Login',
  151.       'attr' => array('class' => 'butt_big')));
  152.         //$formBuilder->add('save', SubmitType::class, ['label' => 'Login']);
  153.         $form $formBuilder->getForm();
  154.         /*
  155.         $form = $this->createFormBuilder()
  156.             ->add('task', TextType::class)
  157.             ->add('save', SubmitType::class, ['label' => 'Create Task'])
  158.             ->getForm();
  159.         */
  160.         $form->handleRequest($request);
  161.         //print('<br>Form: ');
  162.         //\Doctrine\Common\Util\Debug::dump($form);
  163.         if ($request->getMethod() == 'POST') {
  164.             //$form->bindRequest($request);
  165.             $em $this->doctrine->getManager();
  166.             $formData $form->getData();
  167.             if (!empty($request->request->get('username'))) {
  168.                 $loginUserName $request->request->get('username');
  169.                 $isHashedLogin true;
  170.             } else {
  171.                 $loginUserName $formData->getUserName();
  172.                 $isHashedLogin false;
  173.             }
  174.             if(!empty($request->request->get('password'))) {
  175.                 $loginPsw $request->request->get('password');
  176.             } else {
  177.                 $loginPsw $formData->getPsw();
  178.             }            
  179.             if(!empty($loginUserName) && !empty($loginPsw)) {
  180.                 //print('<br>qqw login 001a');
  181.                 if ($isHashedLogin) {
  182.                     $userExist $em->getRepository(User::class)->getUserFromHashedLogin($loginUserName$loginPsw);
  183.                 } else {
  184.                     $userExist $em->getRepository(User::class)->getUserFromLogin($loginUserName$loginPsw);
  185.                 }
  186.             }
  187.             //print('<br>userExist: '.$loginUserName.' :: '.$loginPsw);
  188.             //die();
  189.             /* we check if this username exists */
  190.             if(!empty($userExist)) {
  191.                 /* we load logged user into session */
  192.                 $session $request->getSession();
  193.                 $session->set('user'$userExist);
  194.                 /*
  195.                 print('<hr>we set session user: ');
  196.                 \Doctrine\Common\Util\Debug::dump($session->get('user'));
  197.                 */
  198.                 $this->addFlash('notice''Welcome '.$loginUserName.'. You are logged in.');
  199.                 $userExist->setLastLogin(new \DateTime());
  200.                 $em->persist($userExist);
  201.                 $em->flush();
  202.                 // we redirect to request route or to homeuser
  203.                 if(!empty($userExist->getServices()) && count($userExist->getServices())==) {
  204.                     foreach($userExist->getServices() as $service) {
  205.                         return $this->redirectToRoute($service->getLandingUrl().'Admin');
  206.                     }
  207.                 } else {
  208.                     return $this->redirectToRoute('homeuser');
  209.                 }
  210.             }
  211.             else {
  212.                 $this->addFlash('error''Login error.');
  213.             }
  214.             //}
  215.         }
  216.         /* we render data */
  217.         return $this->render('login.html.twig',
  218.             array('form' => $formBuilder->getForm()->createView(),
  219.                 'headerData' => $this -> getPageHeader($request)
  220.             )
  221.         );
  222.     }
  223.     /**
  224.      * @Route("/homeuser", name="homeuser")
  225.      */
  226.     #[Route('/homeuser'name'homeuser')]
  227.     public function homeuserAction(Request $request) {
  228.         /* we load session data */
  229.         parent::init($request);
  230.         $session $request->getSession();
  231.         // we check if any user is logged in
  232.         if(!$this->isLoggedUser($request)) {
  233.             return $this->redirectToRoute('login');
  234.         }
  235.         /* we load entity managers */
  236.         $em $this->doctrine->getManager();
  237.         $dem $this->doctrine->getManager('dynamic_em');
  238.         $userId $session->get('user')->getUserId();
  239.         $user $em->getRepository(User::class)->getUser($userId);
  240.         $userDirs $this->getUserFolderPathsFromUserId($userId);
  241.         $moduleCollection $em->getRepository(Module::class)->getModuleList();
  242.         /* we check users database */
  243.         if(!$this->checkUserDB($request)) {
  244.             return $this->redirectToRoute('homeuser');
  245.         }
  246.         /* we check user entities */
  247.         $this->checkUserEntities($request);
  248.         //$this->generateUserEntities($request);
  249.         /* we load dynamic entity manager */
  250.         //$dem = $this->doctrine->getManager('dynamic_em');
  251.         //return $this->redirectToRoute('eshopAdmin');
  252.         $orderList null;
  253.         $orderPrices = array();
  254.         $eshopService $em->getRepository(Service::class)->getService(1);
  255.         $isService $em->getRepository(User::class)->userHasService($user$eshopService);
  256.         if($isService) {
  257.             /* we load recent orders */
  258.             //$orderList = $dem->getRepository(Order::class)->getOrderList("orderId", "DESC", 5);
  259.             $orderList = [];
  260.             if(!empty($orderList) && count($orderList) > 0) {
  261.                 /* we get current e-shop */
  262.                 $eshop $em->getRepository('AppBundle:Eshop')->getCurrentEshop($userId);
  263.                 if(!empty($eshop)) {
  264.                     $defaultCurrency $em->getRepository('AppBundle:Currency')->getCurrency($eshop->getPreferredCurrencyId());
  265.                 }
  266.             }
  267.             /* we load order prices */
  268.             foreach($orderList as $order) {
  269.                 if(!empty($order->getCurrencyKey())) {
  270.                     $targetCurrency $em->getRepository('AppBundle:Currency')->getCurrencyByKey($order->getCurrencyKey());
  271.                 } else {
  272.                     $targetCurrency $defaultCurrency;
  273.                 }
  274.                 $orderPrices[$order->getOrderId()] = $dem->getRepository('AppBundle:Order')->getOrderPrice($order->getOrderId(), $targetCurrencyfalse$eshop$defaultCurrency);
  275.             }
  276.         }
  277.         //we check if user has Form Builder module and get recent form responses
  278.         $module $em->getRepository(Module::class)->getModule(12);
  279.         $isModule $em->getRepository(User::class)->userHasModule($user$module);
  280.         $formResponseList null;
  281.         if($isModule) {
  282.             //print('<br>qqw is Form Builder');
  283.             $formResponseList $dem->getRepository(FormResponse::class)->getFormResponseList2("formResponseId""DESC"5);
  284.             //$formResponseList = $dem->getRepository('AppBundle:FormResponse')->getFormResponseList();
  285.         }
  286.         //we check if user has UserStory module and get recent form responses
  287.         $module $em->getRepository(Module::class)->getModule(24);
  288.         $isModule $em->getRepository(User::class)->userHasModule($user$module);
  289.         $taskList null;
  290.         if($isModule) {
  291.             $dateStart date("Y-m-d",strtotime('monday this week'));
  292.             $dateEnd date("Y-m-d",strtotime('sunday this week'));
  293.             $taskList $dem->getRepository(UserStory::class)->getUserStoryStartBetweenDatesList($dateStart$dateEnd);
  294.         }
  295.         /*
  296.         $serverExist = $em->getRepository('AppBundle:Server')->getServerFromLabel('webexciter.com');
  297.         print('<br>QQW Current server: ');
  298.         \Doctrine\Common\Util\Debug::dump($serverExist);
  299.         print('<hr>QQW UD: ');
  300.         \Doctrine\Common\Util\Debug::dump($userDirs);
  301.         */
  302.         /* we render data */
  303.         return $this->render('homeuser.html.twig',
  304.             array('headerData' => $this -> getPageHeader($request),
  305.                 'user' => $user,
  306.                 'orderList' => $orderList,
  307.                 'orderPrices' => $orderPrices,
  308.                 'formResponseList' => $formResponseList,
  309.                 'userDirs' => $userDirs,
  310.                 'taskList' => $taskList,
  311.                 'menu' => $this -> adminMenu($request),
  312.                 'mainMenu' => $this -> adminMainMenu($request),
  313.                 'moduleCollection' => $moduleCollection
  314.             )
  315.         );
  316.     }
  317.     #[Route('/homeuser/config'name'config')]
  318.     public function configAction(Request $request) {
  319.         /* we load session data */
  320.         parent::init($request);
  321.         $session $request->getSession();
  322.         // we check if any user is logged in
  323.         if(!$this->isLoggedUser($request)) {
  324.             return $this->redirectToRoute('login');
  325.         }
  326.         $em $this->doctrine->getManager();
  327.         $userId $session->get('user')->getUserId();
  328.         $user $em->getRepository(User::class)->getUser($userId);
  329.         $serviceCollection $em->getRepository(Service::class)->getServiceList();
  330.         /*
  331.         print('<br>QQW user ID: '.$userId);
  332.         \Doctrine\Common\Util\Debug::dump($user);
  333.         */
  334.         /*
  335.          $serverExist = $em->getRepository('AppBundle:Server')->getServerFromLabel('webexciter.com');
  336.          print('<br>QQW Current server: ');
  337.          \Doctrine\Common\Util\Debug::dump($serverExist);
  338.          print('<hr>QQW Current user: ');
  339.          \Doctrine\Common\Util\Debug::dump($session->get('user'));
  340.          */
  341.         /* we build register form */
  342.         $formBuilder $this->createFormBuilder($user);
  343.         $formBuilder->add('company'TextType::class, array(
  344.             'required' => false,
  345.             'label' => $this->translator->trans('user.company'),
  346.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getCompany()),
  347.             'label_attr' => array('class' => 'form_field_label')
  348.         ));
  349.         $formBuilder->add('email'EmailType::class, array(
  350.             'required' => true,
  351.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getEmail()),
  352.             'label_attr' => array('class' => 'form_field_label_required'),
  353.         ));
  354.         $formBuilder->add('contactPersonEmail'EmailType::class, array(
  355.             'required' => false,
  356.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getContactPersonEmail()),
  357.             'label_attr' => array('class' => 'form_field_label_required'),
  358.         ));
  359.         $formBuilder->add('telephone'TextType::class, array(
  360.             'required' => false,
  361.             'label' => $this->translator->trans('user.telephone'),
  362.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getTelephone()),
  363.             'label_attr' => array('class' => 'form_field_label'),
  364.         ));
  365.         $formBuilder->add('address'TextareaType::class, array(
  366.             'required' => false,
  367.             'label' => $this->translator->trans('user.address'),
  368.             'attr' => array('class' => 'textarea_form''cols' => 33'rows' => 2'value' => $user->getAddress()),
  369.             'label_attr' => array('class' => 'form_textarea_label'),
  370.             'data' => $user->getAddress(),
  371.         ));
  372.         $formBuilder->add('bankAccount'TextType::class, array(
  373.             'required' => false,
  374.             'label' => $this->translator->trans('user.bank_account'),
  375.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getBankAccount()),
  376.             'label_attr' => array('class' => 'form_field_label'),
  377.         ));
  378.         $formBuilder->add('ico'TextType::class, array(
  379.             'required' => false,
  380.             'label' => $this->translator->trans('user.business_number'),
  381.             'attr' => array('class' => 'text_form''size' => 35'value' => $user->getIco()),
  382.             'label_attr' => array('class' => 'form_field_label'),
  383.         ));
  384.         /* we add service list */
  385.         $services = array();
  386.         foreach($serviceCollection as $service)
  387.         {
  388.             $serviceId $service->getServiceId();
  389.             $services[$service->getServiceName()] = $service->getServiceId();
  390.         }
  391.         $selectedServices = array();
  392.         foreach($user->getServices() as $service)
  393.         {
  394.             $selectedServices[] = $service->getServiceId();
  395.         }
  396.         $formBuilder->add('services'ChoiceType::class, array(
  397.             'choices' => $services,
  398.             'required' => false,
  399.             'mapped' => false,
  400.             'multiple' => true,
  401.             'expanded' => true,
  402.             'data' => $selectedServices
  403.         ));
  404.         // if is module email provider
  405.         $module $em->getRepository(Module::class)->getModule(40);
  406.         $isModule $em->getRepository(User::class)->userHasModule($user$module);
  407.         /*
  408.         if($isModule) {
  409.             $formBuilder->add('emailProviderName', TextType::class, array(
  410.                 'required' => false,
  411.                 'label' => $this->translator->trans('user.company'),
  412.                 'attr' => array('class' => 'text_form', 'size' => 35, 'value' => $user->getCompany()),
  413.                 'label_attr' => array('class' => 'form_field_label')
  414.             ));
  415.         }
  416.         */
  417.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.send'),
  418.             'attr' => array('class' => 'butt_big')));
  419.         $form $formBuilder->getForm();
  420.         $form->handleRequest($request);
  421.         if ($request->getMethod() == 'POST') {
  422.             //$form->bindRequest($request);
  423.             if ($form->isValid()) {
  424.                 // perform some action, such as save the object to the database
  425.                 //print('<br>qqw post form 2: ');
  426.                 $formData $form->getData();
  427.                 //print('<br>We create new user');
  428.                 //$user = new User;
  429.                 /* we load user data from register form into user object */
  430.                 $user->setCompany($formData->getCompany());
  431.                 $user->setEmail($formData->getEmail());
  432.                 $user->setContactPersonEmail($formData->getContactPersonEmail());
  433.                 $user->setTelephone($formData->getTelephone());
  434.                 $user->setAddress($formData->getAddress());
  435.                 $user->setBankAccount($formData->getBankAccount());
  436.                 $user->setIco($formData->getIco());
  437.                 /* we remove old service associations */
  438.                 foreach($user->getServices() as $service) {
  439.                     $user->removeService($service);
  440.                     //$session->get('user')->removeService($service);
  441.                 }
  442.                 /* we load user services */
  443.                 $formServices $form['services']->getData();
  444.                 if(!empty($formServices)) {
  445.                     foreach($formServices as $serviceId) {
  446.                         $addService $em->getRepository(Service::class)->getService($serviceId);
  447.                         $user->addService($addService);
  448.                         //$session->get('user')->addService($addService);
  449.                     }
  450.                 }
  451.                 /*
  452.                 print('<br>qqw user exists: ');
  453.                 \Doctrine\Common\Util\Debug::dump($user);
  454.                 */
  455.                 /* we persist and save user *//* we persist and save user */
  456.                 $em->persist($user);
  457.                 $em->flush();
  458.                 /* we update user session */
  459.                 $session->set('user'$user);
  460.                 $this->addFlash('notice''User was updated.');
  461.                 return $this->redirectToRoute('config');
  462.             }
  463.         }
  464.         /* we render data */
  465.         return $this->render('userConfig.html.twig',
  466.             array(  'form' => $formBuilder->getForm()->createView(),
  467.                 'headerData' => $this -> getPageHeader($request)
  468.             )
  469.         );
  470.     }
  471.     #[Route('/moduleInfo'name'moduleInfo')]
  472.     public function moduleInfoAction(Request $request) {
  473.         /* we load session data */
  474.         parent::init($request);
  475.         $session $request->getSession();
  476.         // we check if any user is logged in
  477.         if(!$this->isLoggedUser($request)) {
  478.             return $this->redirectToRoute('login');
  479.         }
  480.         $em $this->doctrine->getManager();
  481.         $userId $session->get('user')->getUserId();
  482.         $user $em->getRepository(User::class)->getUser($userId);
  483.         $serviceCollection $em->getRepository(Service::class)->getServiceList();
  484.         /* we render data */
  485.         return $this->render('moduleInfo.html.php',
  486.             array(  'headerData' => $this -> getPageHeader($request)
  487.             )
  488.         );
  489.     }
  490.     /**
  491.      * @Route("/newaccount", name="newaccount")
  492.      */
  493.     #[Route('/newaccount'name'newaccount')]
  494.     public function newAccountAction(Request $request) {
  495.         /* we load session data */
  496.         parent::init($request);
  497.         $session $request->getSession();
  498.         $em $this->doctrine->getManager();
  499.         $serviceCollection $em->getRepository(Service::class)->getServiceList();
  500.         $user = new User();
  501.         $server $this->getServerByLabel($session->get('label'));
  502.         /* we prepare data for the form */
  503.         if(!empty($request->request->get('form2')['company'])) {
  504.             $company $request->request->get('form')['company'];
  505.         } else {
  506.             $company '';
  507.         }
  508.         if(!empty($request->request->get('form2')['email'])) {
  509.             $email $request->request->get('form2')['email'];
  510.         } else {
  511.             $email '';
  512.         }
  513.         if(!empty($request->request->get('form2')['telephone'])) {
  514.             $telefon $request->request->get('form2')['telephone'];
  515.         } else {
  516.             $telefon '';
  517.         }
  518.         if(!empty($request->request->get('form2')['address'])) {
  519.             $address $request->request->get('form2')['address'];
  520.         } else {
  521.             $address '';
  522.         }
  523.         if(!empty($request->request->get('form2')['username'])) {
  524.             $username $request->request->get('form2')['username'];
  525.         } else {
  526.             $username '';
  527.         }
  528.         if(!empty($request->request->get('form2')['password'])) {
  529.             $password $request->request->get('form2')['password'];
  530.         } else {
  531.             $password '';
  532.         }
  533.         if(!empty($request->request->get('form2')['password_retype'])) {
  534.             $password_retype $request->request->get('form2')['password_retype'];
  535.         } else {
  536.             $password_retype '';
  537.         }
  538.         /* we build register form */
  539.         $formBuilder $this->createFormBuilder($user);
  540.         // $formBuilder->add('save2', SubmitType::class, array('label' => $this->translator->trans('system.register'),
  541.         //                   'attr' => array('class' => 'butt_big')));
  542.         $formBuilder->add('company'TextType::class, array(
  543.             'required' => false,
  544.             'label' => $this->translator->trans('user.company'),
  545.             'attr' => array('class' => 'text_form''size' => 35'value' => $company),
  546.             'label_attr' => array('class' => 'form_field_label')
  547.         ));
  548.         $formBuilder->add('email'EmailType::class, array(
  549.             'required' => true,
  550.             'attr' => array('class' => 'text_form''size' => 35'value' => $email),
  551.             'label_attr' => array('class' => 'form_field_label_required'),
  552.         ));
  553.         $formBuilder->add('telephone'TextType::class, array(
  554.             'required' => false,
  555.             'label' => $this->translator->trans('user.telephone'),
  556.             'attr' => array('class' => 'text_form''size' => 35'value' => $telefon),
  557.             'label_attr' => array('class' => 'form_field_label'),
  558.         ));
  559.         $formBuilder->add('address'TextareaType::class, array(
  560.             'required' => false,
  561.             'label' => $this->translator->trans('user.address'),
  562.             'attr' => array('class' => 'textarea_form''cols' => 33'rows' => 2'value' => $address),
  563.             'label_attr' => array('class' => 'form_textarea_label'),
  564.         ));
  565.         $formBuilder->add('username'TextType::class, array(
  566.             'required' => true,
  567.             'label' => $this->translator->trans('user.username'),
  568.             'empty_data'  => '',
  569.             'attr' => array('class' => 'text_form''size' => 35'value' => $username),
  570.             'label_attr' => array('class' => 'form_field_label_required'),
  571.         ));
  572.         $formBuilder->add('psw'PasswordType::class, array(
  573.             'required' => true,
  574.             'label' => $this->translator->trans('user.password'),
  575.             'attr' => array('class' => 'text_form''size' => 35'value' => $password),
  576.             'label_attr' => array('class' => 'form_field_label_required'),
  577.         ));
  578.         $formBuilder->add('psw_retype'PasswordType::class, array(
  579.             'required' => true,
  580.             'label' => $this->translator->trans('user.password_retype'),
  581.             'attr' => array('class' => 'text_form''size' => 35'value' => $password_retype),
  582.             'label_attr' => array('class' => 'form_field_label_required'),
  583.             'mapped' => false
  584.         ));
  585.         //die('<br>qqw post form 0: ');
  586.         // we add service list
  587.         // we add preselected service registrations
  588.         $selectedServices = [];
  589.         if(!empty($session->get('eshopLink'))) {
  590.             $selectedServices[] = 4;
  591.         }
  592.         if(!empty($request->get('addService'))) {
  593.             $selectedServices[] = $request->get('addService');
  594.         }
  595.         // we add preselected module registrations
  596.         if(!empty($request->get('addModule'))) {
  597.             $selectedServices[] = 'module_'.$request->get('addModule');
  598.         }
  599.         // we add second preselected module registrations
  600.         if(!empty($request->get('addModule2'))) {
  601.             $selectedServices[] = 'module_'.$request->get('addModule2');
  602.         }
  603.         $services = array();
  604.         $serviceCount 0;
  605.         foreach($serviceCollection as $service)
  606.         {
  607.             $serviceId $service->getServiceId();
  608.             $localisedServiceName $this->translator->trans('service.'.$service->getAction());
  609.             $services[$localisedServiceName] = $service->getServiceId();
  610.             $serviceModules $service->getModules();
  611.             $moduleArray = array();
  612.             if(!empty($serviceModules)) {
  613.                 foreach($serviceModules as $mod) {
  614.                     $services[$mod->getModuleName()] = 'module_'.$mod->getModuleId();
  615.                 }
  616.             }
  617.             $serviceCount++;
  618.         }
  619.         // we sort the array - selected services first
  620.         $sortedServices = array();
  621.         foreach($selectedServices as $key => $serviceId)
  622.         {
  623.             foreach($serviceCollection as $service)
  624.             {
  625.                 if ($service->getServiceId() == $serviceId) {
  626.                     $localisedServiceName $this->translator->trans('service.'.$service->getAction());
  627.                     $sortedServices[$localisedServiceName] = $service->getServiceId();
  628.                     $serviceModules $service->getModules();
  629.                     $moduleArray = array();
  630.                     if(!empty($serviceModules)) {
  631.                         foreach($serviceModules as $mod) {
  632.                             $sortedServices[$mod->getModuleName()] = 'module_'.$mod->getModuleId();
  633.                         }
  634.                     }
  635.                 }
  636.             }
  637.         }
  638.         // we add other not checked services
  639.         foreach($serviceCollection as $service)
  640.         {
  641.             if (!in_array($service->getServiceId(), $sortedServices)) {
  642.                 $localisedServiceName $this->translator->trans('service.'.$service->getAction());
  643.                 $sortedServices[$localisedServiceName] = $service->getServiceId();
  644.                 $serviceModules $service->getModules();
  645.                 $moduleArray = array();
  646.                 if(!empty($serviceModules)) {
  647.                     foreach($serviceModules as $mod) {
  648.                         $sortedServices[$mod->getModuleName()] = 'module_'.$mod->getModuleId();
  649.                     }
  650.                 }
  651.             }
  652.         }
  653.         $services $sortedServices;
  654.         //print('<hr>qqw selectedServices: ');
  655.         //var_dump($selectedServices);
  656.         $formBuilder->add('services'ChoiceType::class, array(
  657.             'choices' => $services,
  658.             'required' => false,
  659.             'label' => $this->translator->trans('service.services'),
  660.             'attr' => array('class' => 'form_choice'),
  661.             'label_attr' => array('class' => 'form_choice_label'),
  662.             'label_format' => 'form.address.%name%',
  663.             //'choice_name' => 'texteditor',
  664.             'choice_attr' => function($val$key$index) {
  665.                 // adds a class like attending_yes, attending_no, etc
  666.                 $pos strpos($val'module');
  667.                 if ($pos === false) {
  668.                     $cssClass 'service-item';
  669.                 } else {
  670.                     $cssClass 'module-item';
  671.                 }
  672.                 return ['class' => $cssClass];
  673.             },
  674.             'mapped' => false,
  675.             'multiple' => true,
  676.             'expanded' => true,
  677.             'data' => $selectedServices
  678.         ));
  679.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('system.register_free'),
  680.             'attr' => array('class' => 'butt_big')));
  681.         $form $formBuilder->getForm();
  682.         $form->handleRequest($request);
  683.         if ($request->getMethod() == 'POST') {
  684.             //print('<br>qqw post form 1: ');
  685.             $formData $form->getData();
  686.             //$form->bindRequest($request);
  687.             if(!empty($server->getGoogleApiKey()) && $server->getGoogleApiKey() !== '') {
  688.                 //we load re-captcha
  689.                 $captchaResponse $request->get('g-recaptcha-response');
  690.             } else {
  691.                 $captchaResponse "noCaptcha";
  692.             }
  693.             if ($form->isValid() && $captchaResponse != "") {
  694.                 // perform some action, such as save the object to the database
  695.                 print('<br>qqw post form 2: ');
  696.                 /* we check if this username already exists */
  697.                 $em $this->doctrine->getManager();
  698.                 $formData $form->getData();
  699.                 $userExist $em->getRepository(User::class)->getUserFromUsername($formData->getUserName());
  700.                 // print('<br>qqw user exists: ');
  701.                 // \Doctrine\Common\Util\Debug::dump($userExist);
  702.                 if($userExist === null) {
  703.                     /* we check if the password fields are the same */
  704.                     $password $formData->getPsw();
  705.                     //$retypePassword = $formData->get('psw_retype');
  706.                     $retypePassword $form['psw_retype']->getData();
  707.                     $hashPassword md5($password);
  708.                     /*
  709.                     print('<br>qqw password: '.$password);
  710.                     print('<br>qqw retypePassword: '.$retypePassword);
  711.                     print('<br>qqw hashPassword: '.$hashPassword);
  712.                     */
  713.                     if ($password != '' && $password == $retypePassword) {
  714.                         //print('<br>We create new user');
  715.                         $newUser = new User;
  716.                         $password md5($formData->getPsw());
  717.                         /* we load user data from register form into user object */
  718.                         $newUser->setCompany($formData->getCompany());
  719.                         $newUser->setUserName($formData->getUserName());
  720.                         $newUser->setEmail($formData->getEmail());
  721.                         $newUser->setAddress($formData->getAddress());
  722.                         $newUser->setPsw($password);
  723.                         $user->setPsw($password);
  724.                         $newUser->setDatabaseUser($this->databaseUser);
  725.                         $newUser->setDatabasePassword($this->databasePassword);
  726.                         $newUser->setDateInserted(new \DateTime());
  727.                         $user->setDateInserted(new \DateTime());
  728.                         $servicesString "";
  729.                         $modulesString "";
  730.                         /* we load user services */
  731.                         $formServices $form['services']->getData();
  732.                         if(!empty($formServices)) {
  733.                             foreach($formServices as $key=>$serviceId) {
  734.                                 $pos strpos($serviceId'module');
  735.                                 if ($pos === false) {
  736.                                     //we add service to user
  737.                                     $addService $em->getRepository(Service::class)->getService($serviceId);
  738.                                     $user->addService($addService);
  739.                                     $servicesString .= $addService->getServiceName(). " | ";
  740.                                 } else {
  741.                                     //we add module to user
  742.                                     $moduleExplode explode("_"$serviceId);
  743.                                     $addModule $em->getRepository(Module::class)->getModule($moduleExplode[1]);
  744.                                     $user->addModule($addModule);
  745.                                     $modulesString .= $addModule->getModuleName(). " | ";
  746.                                 }
  747.                             }
  748.                         }
  749.                         /* we persist and save user */
  750.                         $em->persist($user);
  751.                         $em->flush();
  752.                         //die("<br>qqw die");
  753.                         /*
  754.                         print('<br>qqw user exists: ');
  755.                         \Doctrine\Common\Util\Debug::dump($user);
  756.                         */
  757.                         /* we add preselected service registrations */
  758.                         if(!empty($session->get('eshopLink'))) {
  759.                             print('<br>qqw eshopLink: ');
  760.                             \Doctrine\Common\Util\Debug::dump($session->get('eshopLink'));
  761.                             /*
  762.                             if(!empty($session->get('eshopLink')->getDepartments())) {
  763.                                 foreach($session->get('eshopLink')->getDepartments() as $dep) {
  764.                                   print('<hr>qqw eshopLink department: ');
  765.                                   \Doctrine\Common\Util\Debug::dump($dep);
  766.                                 }
  767.                             }
  768.                             */
  769.                             $moduleId 11;
  770.                             $addModule $em->getRepository(Module::class)->getModule($moduleId);
  771.                             $user->addModule($addModule);
  772.                             $eshopLink $session->get('eshopLink');
  773.                             $userExist $em->getRepository(User::class)->getUserFromUsername($request->request->get('form')['username']);
  774.                             $eshopLink->setUserId($userExist->getUserId());
  775.                             print('<br>qqw eshopLink: ');
  776.                             \Doctrine\Common\Util\Debug::dump($eshopLink->getDepartments());
  777.                             /* we persist associated eshop link departments */
  778.                             if(!empty($eshopLink->getDepartments())) {
  779.                                 foreach($eshopLink->getDepartments() as $dep) {
  780.                                     $depExist $em->getRepository(Server::class)->getDepartment($dep->getDepartmentId());
  781.                                     print('<hr>qqw eshopLink dep: ');
  782.                                     \Doctrine\Common\Util\Debug::dump($dep);
  783.                                     print('<br>qqw eshopLink dep: ');
  784.                                     \Doctrine\Common\Util\Debug::dump($depExist);
  785.                                     if(!is_array($dep) && $eshopLink->getDepartments()->contains($dep) ) {
  786.                                         @$eshopLink->removeDepartment($dep);
  787.                                     }
  788.                                     if(!empty($depExist)) {
  789.                                         $eshopLink->addDepartment($depExist);
  790.                                         $em->persist($depExist);
  791.                                     }
  792.                                 }
  793.                             }
  794.                             $feed $session->get('feed');
  795.                             $feed->setUserId($userExist->getUserId());
  796.                             /* we persist associated feed departments */
  797.                             if(!empty($feed->getDepartments())) {
  798.                                 foreach($feed->getDepartments() as $dep) {
  799.                                     $depExist $em->getRepository(Server::class)->getDepartment($dep->getDepartmentId());
  800.                                     if(!is_array($dep) && $feed->getDepartments()->contains($dep) ) {
  801.                                         @$feed->removeDepartment($dep);
  802.                                     }
  803.                                     if(!empty($depExist)) {
  804.                                         $feed->addDepartment($depExist);
  805.                                         $em->persist($depExist);
  806.                                     }
  807.                                 }
  808.                             }
  809.                             // we set this eshopLink as current one
  810.                             $em->getRepository(EshopLink::class)->unsetCurrentEshopLink($user->getUserId());
  811.                             $eshopLink->setEshopLinkCurrent(true);
  812.                             /* we set this feed as current one */
  813.                             $em->getRepository(Feed::class)->unsetCurrentFeed($user->getUserId());
  814.                             $feed->setFeedCurrent(true);
  815.                             $user->setDatabaseUser($this->databaseUser);
  816.                             $user->setDatabasePassword($this->databasePassword);
  817.                             /* we persist and save user (again) */
  818.                             $em->persist($user);
  819.                             $em->flush();
  820.                             /* we persist and save eshopLink */
  821.                             //$em->persist($eshopLink->getDepartments());
  822.                             $em->persist($eshopLink);
  823.                             $em->persist($feed);
  824.                             $em->flush();
  825.                             //$session->remove('eshopLink');
  826.                             $session->remove('eshopLink');
  827.                             $session->remove('feed');
  828.                         }
  829.                         /* we load logged user into session */
  830.                         $session $request->getSession();
  831.                         $session->set('user'$user);
  832.                         //sends email to owner
  833.                         $subject 'New User Registered - '.$session->get('label');
  834.                         $from 'info@webexciter.com';
  835.                         $message 'New User Registered on '.$session->get('label')
  836.                             ."\n"."Company: ".$user->getCompany()
  837.                             ."\n"."Email: ".$user->getEmail()
  838.                             ."\n"."Username: ".$user->getUserName()
  839.                             ."\n"."Password: ".$password
  840.                             ."\n"."---------------------------"
  841.                             ."\n"."Services: ".$servicesString
  842.                             ."\n"."Modules: ".$modulesString
  843.                         ;
  844.                         //$this->sendAdminEmail($subject, $from, $message);
  845.                         /*
  846.                          print('<hr>we set session user: ');
  847.                          \Doctrine\Common\Util\Debug::dump($session->get('user'));
  848.                         */
  849.                         $this->addFlash('notice''New user was created.');
  850.                         $this->addFlash('notice''Welcome '.$user->getUserName().'. You are logged in.');
  851.                         return $this->redirectToRoute('homeuser');
  852.                     }
  853.                     else {
  854.                         $this->addFlash('error''Both password fields must be the same.');
  855.                     }
  856.                 }
  857.                 else {
  858.                     $this->addFlash('error''User with this username already exists.');
  859.                 }
  860.             }
  861.         }
  862.         /* we render data */
  863.         return $this->render('newaccount.html.twig',
  864.             array('form' => $formBuilder->getForm()->createView(),
  865.                 'headerData' => $this -> getPageHeader($request),
  866.                 'server' => $server
  867.             )
  868.         );
  869.     }
  870.     #[Route('/logout'name'logout')]
  871.     public function logoutAction(Request $request) {
  872.         /* we load session data */
  873.         parent::init($request);
  874.         /* we unload logged user session */
  875.         $session $request->getSession();
  876.         //$session->set('user', null);
  877.         $session->remove('user');
  878.         $session->remove('label');
  879.         $this->addFlash('notice''User was logged out. ');
  880.         return $this->redirectToRoute('root');
  881.     }
  882.     #[Route('/newlang'name'newlang')]
  883.     public function newlangAction(Request $request) {
  884.         /* we load session data */
  885.         parent::init($request);
  886.         $em $this->doctrine->getManager();
  887.         $session $request->getSession();
  888.         /* setting new language */
  889.         if(!empty($request->query->get('newlang'))) {
  890.             print("<br>QQW setting new language: ".$request->query->get('newlang'));
  891.             $lang $em->getRepository(Language::class)->getLanguageByKey($request->query->get('newlang'));
  892.             if(!empty($lang)) {
  893.                 $session->set('lang'$lang);
  894.                 $this->addFlash('notice''Language was changed to '.$lang->getLangName().'.');
  895.             }
  896.         }
  897.         /*
  898.         print("<br>QQW newlangAction: ");
  899.         \Doctrine\Common\Util\Debug::dump($session->get('lang'));
  900.         die();
  901.         */
  902.         /*
  903.         if(!empty($request->query->get('routeName'))) {
  904.           $redirectRoute = $request->query->get('routeName');
  905.         } else {
  906.           $redirectRoute = 'root';
  907.         }
  908.         */
  909.         if(!empty($request->query->get('routePath'))) {
  910.             $redirectPath $request->query->get('routePath');
  911.         } else {
  912.             $redirectPath './';
  913.         }
  914.         return $this->redirect($redirectPath);
  915.         //return $this->redirectToRoute($redirectRoute);
  916.     }
  917.     #[Route('/installModule/{moduleId}'name'installModule')]
  918.     public function installModuleAction(Request $request$moduleId)
  919.     {
  920.         /* we load session data */
  921.         parent::init($request);
  922.         $em $this->doctrine->getManager();
  923.         $session $request->getSession();
  924.         /* we get current user */
  925.         $currentUserId $session->get('user')->getUserId();
  926.         $user $em->getRepository(User::class)->getUser($currentUserId);
  927.         $module $em->getRepository(Module::class)->getModule($moduleId);
  928.         $moduleCollection $em->getRepository(Module::class)->getModuleList();
  929.         /*
  930.         print('<br>qqw moduleCollection: ');
  931.         \Doctrine\Common\Util\Debug::dump($moduleCollection);
  932.         print('<hr>qqw userModuleCollection: ');
  933.         \Doctrine\Common\Util\Debug::dump($user->getModules());
  934.         print('<br>qqw new module: '.$module->getModuleName());
  935.         */
  936.         //$user->addModule($module);
  937.         /*
  938.         print('<hr>qqw userModuleCollection 77: ');
  939.         \Doctrine\Common\Util\Debug::dump($user->getModules());
  940.         */
  941.         /* we check if user has this module already */
  942.         $isModule false;
  943.         foreach($user->getModules() as $mod) {
  944.             //print('<hr>qqw travModule '.$mod->getModuleId().': '.$mod->getModuleName());
  945.             //print('<hr>qqw currModule '.$module->getModuleId().': '.$module->getModuleName());
  946.             if($mod->getModuleId() == $module->getModuleId()) {
  947.                 $isModule true;
  948.             }
  949.             /*
  950.             print('<hr>qqw installing module: ');
  951.             \Doctrine\Common\Util\Debug::dump($module->getModuleName());
  952.             */
  953.         }
  954.         /*
  955.         print('<hr>qqw is module: ');
  956.         \Doctrine\Common\Util\Debug::dump($isModule);
  957.         */
  958.         if($isModule == false) {
  959.             /* we add module to user */
  960.             $user->addModule($module);
  961.             $session->get('user')->addModule($module);
  962.             //print('<hr>qqw adding module ');
  963.             //print('<hr>qqw persist user: ');
  964.             /* we persist and save user */
  965.             $em->persist($user);
  966.             //$em->persist($user->getModules());
  967.             $em->flush();
  968.             $this->addFlash('notice''Module was installed.');
  969.         }
  970.         /*
  971.         \Doctrine\Common\Util\Debug::dump($user->getModules());
  972.         */
  973.         //die();
  974.         print('<hr>qqw getAction: '.$module->getAction());
  975.         //if(!empty($module->getLandingUrl())) {
  976.         //return $this->redirectToRoute($module->getLandingUrl());
  977.         //} else {
  978.         //return $this->redirectToRoute($module->getAction());
  979.         //}
  980.         return $this->redirectToRoute($module->getAction());
  981.         //return $this->redirectToRoute('homeuser');
  982.     }
  983.     #[Route('/module/{moduleId}'name'module')]
  984.     public function moduleAction(Request $request$moduleId)
  985.     {
  986.         /* we load session data */
  987.         parent::init($request);
  988.         $em $this->doctrine->getManager();
  989.         $session $request->getSession();
  990.         $module $em->getRepository(Module::class)->getModule($moduleId);
  991.         /* we render data */
  992.         return $this->render('module.html.php',
  993.             array('headerData' => $this -> getPageHeader($request),
  994.                 'module' => $module
  995.             )
  996.         );
  997.     }
  998.     #[Route('/contact'name'contact')]
  999.     public function contactAction(Request $request) {
  1000.         /* we load session data */
  1001.         parent::init($request);
  1002.         $em $this->doctrine->getManager();
  1003.         /* we render data */
  1004.         return $this->render('contact.html.twig',
  1005.             array('headerData' => $this -> getPageHeader($request)
  1006.             )
  1007.         );
  1008.     }
  1009.     #[Route('/aboutus'name'aboutus')]
  1010.     public function aboutusAction(Request $request) {
  1011.         /* we load session data */
  1012.         parent::init($request);
  1013.         $em $this->doctrine->getManager();
  1014.         /* we render data */
  1015.         return $this->render('aboutus.html.twig',
  1016.             array('headerData' => $this -> getPageHeader($request)
  1017.             )
  1018.         );
  1019.     }
  1020.     #[Route('/request'name'request')]
  1021.     public function requestAction(Request $request) {
  1022.         /* we load session data */
  1023.         parent::init($request);
  1024.         $em $this->doctrine->getManager();
  1025.         /* we prepare data for the form */
  1026.         if(!empty($request->request->get('company'))) {
  1027.             $company $request->request->get('company');
  1028.         } else {
  1029.             $company '';
  1030.         }
  1031.         if(!empty($request->request->get('email'))) {
  1032.             $email $request->request->get('email');
  1033.         } else {
  1034.             $email '';
  1035.         }
  1036.         if(!empty($request->request->get('telephone'))) {
  1037.             $telefon $request->request->get('telephone');
  1038.         } else {
  1039.             $telefon '';
  1040.         }
  1041.         if(!empty($request->request->get('subject'))) {
  1042.             $subject $request->request->get('subject');
  1043.         } else {
  1044.             $subject '';
  1045.         }
  1046.         if(!empty($request->request->get('message'))) {
  1047.             $message $request->request->get('message');
  1048.         } else {
  1049.             $message '';
  1050.         }
  1051.         /* we build register form */
  1052.         $formBuilder $this->createFormBuilder();
  1053.         $formBuilder->add('company'TextType::class, array(
  1054.             'required' => false,
  1055.             'label' => $this->translator->trans('user.company'),
  1056.             'attr' => array('class' => 'text_form''size' => 35'value' => $company),
  1057.             'label_attr' => array('class' => 'form_field_label')
  1058.         ));
  1059.         $formBuilder->add('email'EmailType::class, array(
  1060.             'required' => true,
  1061.             'attr' => array('class' => 'text_form''size' => 35'value' => $email),
  1062.             'label_attr' => array('class' => 'form_field_label_required'),
  1063.         ));
  1064.         $formBuilder->add('telefon'TextType::class, array(
  1065.             'required' => false,
  1066.             'label' => $this->translator->trans('user.telephone'),
  1067.             'attr' => array('class' => 'text_form''size' => 35'value' => $telefon),
  1068.             'label_attr' => array('class' => 'form_field_label'),
  1069.         ));
  1070.         $formBuilder->add('subject'TextType::class, array(
  1071.             'required' => false,
  1072.             'label' => $this->translator->trans('eshop.request_subject'),
  1073.             'attr' => array('class' => 'text_form''size' => 35'value' => $subject),
  1074.             'label_attr' => array('class' => 'form_field_label'),
  1075.         ));
  1076.         $formBuilder->add('message'TextareaType::class, array(
  1077.             'required' => false,
  1078.             'label' => $this->translator->trans('eshop.request_message'),
  1079.             'attr' => array('class' => 'textarea_form''cols' => 70'rows' => 10'value' => $message),
  1080.             'label_attr' => array('class' => 'form_textarea_label'),
  1081.         ));
  1082.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('eshop.request_send'),
  1083.             'attr' => array('class' => 'butt_big')));
  1084.         $form $formBuilder->getForm();
  1085.         $form->handleRequest($request);
  1086.         if ($request->getMethod() == 'POST') {
  1087.             //$form->bindRequest($request);
  1088.             if ($form->isValid()) {
  1089.                 $subject $form['subject']->getData();
  1090.                 $message "\n message: ".$form['message']->getData();
  1091.                 $from $form['email']->getData();
  1092.                 $message .= "\n company: ".$form['company']->getData();
  1093.                 $message .= "\n email: ".$form['email']->getData();
  1094.                 $message .= "\n tel: ".$form['telefon']->getData();
  1095.                 $body $message;
  1096.                 $this->sendAdminEmail($subject$from$message);
  1097.                 //print('<br>Sending email data...');
  1098.             }
  1099.         }
  1100.         /* we render data */
  1101.         return $this->render('request.html.twig',
  1102.             array('headerData' => $this -> getPageHeader($request),
  1103.                 'form' => $formBuilder->getForm()->createView()
  1104.             )
  1105.         );
  1106.     }
  1107.     public function adminMenu(Request $request)
  1108.     {
  1109.         $menuItems = array(=> array('link' => 'homeuser''langKey' => 'user.admin''routeName' => 'homeuser'),
  1110.             => array('link' => 'eshopAdmin''langKey' => 'eshop.admin''routeName' => 'eshopAdmin'),
  1111.             => array('link' => 'orderlist''langKey' => 'eshop.orders''routeName' => 'orderList'),
  1112.             => array('link' => 'productedit''langKey' => 'eshop.products''routeName' => 'productListEdit'),
  1113.             => array('link' => 'productnew''langKey' => 'eshop.new_product''routeName' => 'productNew'),
  1114.             => array('link' => 'categories''langKey' => 'eshop.categories''routeName' => 'categories'),
  1115.             => array('link' => 'categorynew''langKey' => 'eshop.new_category''routeName' => 'categoryNew'),
  1116.             => array('link' => 'contacts''langKey' => 'knowledgebase.contacts''routeName' => 'contacts'),
  1117.             => array('link' => 'eshopnew''langKey' => 'eshop.new_eshop''routeName' => 'eshopNew'),
  1118.             => array('link' => 'eshopConfig''langKey' => 'eshop.config''routeName' => 'eshopConfig'),
  1119.         );
  1120.         return $menuItems;
  1121.     }
  1122. }