src/Controller/WebPagesController.php line 347

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\Persistence\ManagerRegistry;
  4. use Symfony\Component\HttpKernel\KernelInterface;
  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\FileType;
  15. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  16. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  17. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  18. use EasyCorp\Bundle\EasyAdminBundle\Form\Type\CodeEditorType;
  19. use App\Entity\Eshop;
  20. use App\Entity\Gallery;
  21. use App\Entity\GalleryItem;
  22. use App\Entity\Website;
  23. use App\Entity\WebMenu;
  24. use App\Entity\WebMenuItem;
  25. use App\Entity\WebPage;
  26. use App\Entity\WireFrame;
  27. use App\Entity\Module;
  28. use App\Entity\Service;
  29. use App\Entity\User;
  30. use App\Entity\Language;
  31. use App\Entity\CssDesign;
  32. use App\Entity\ServiceExample;
  33. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  34. use App\Entity\Contact;
  35. use Symfony\Contracts\Translation\TranslatorInterface;
  36. use Twig\Environment;
  37. class WebPagesController extends DefaultController
  38. {
  39.     protected KernelInterface $appKernel;
  40.     protected ManagerRegistry $doctrine;
  41.     protected TranslatorInterface $translator;
  42.     protected Environment $twig;
  43.     public function __construct(KernelInterface $appKernel,
  44.                                 ManagerRegistry $doctrine,
  45.                                 TranslatorInterface $translator,
  46.                                 Environment $twig)
  47.     {
  48.         $this->appKernel $appKernel;
  49.         $this->doctrine $doctrine;
  50.         $this->translator $translator;
  51.         $this->twig $twig;
  52.     }
  53.     /**
  54.      * @Route("/webpages", name="webpages")
  55.      */
  56.     public function indexAction(Request $request)
  57.     {
  58.         /* we load session data */
  59.         parent::init($request);
  60.         $session $request->getSession();
  61.         /* we load entity managers */
  62.         $em $this->doctrine->getManager();
  63.         /* we get current user */
  64.         if ($session->get('user')) {
  65.             $currentUserId $session->get('user')->getUserId();
  66.         } else {
  67.             $currentUserId null;
  68.         }
  69.         if ($currentUserId) {
  70.             $user $em->getRepository(User::class)->getUser($currentUserId);
  71.         } else {
  72.             $user null;
  73.         }
  74.         /* we load list of modules for connector service */
  75.         $service $em->getRepository(Service::class)->getService(3);
  76.         /* we load examples */
  77.         $exampleCollection $em->getRepository(ServiceExample::class)->getServiceExampleListByService(33);
  78.         shuffle($exampleCollection);              
  79.         /* we render data */
  80.         return $this->render('webpages.html.twig',
  81.             array('headerData' => $this -> getPageHeader($request),
  82.                   'moduleList' => $service->getModules(),
  83.                   'exampleCollection' => $exampleCollection,
  84.                   'service' => $service,
  85.                   'user' => $user,
  86.             )
  87.         );        
  88.     }
  89.     /**
  90.      * @Route("/webpagesAdmin", name="webpagesAdmin")
  91.      */
  92.     public function webpagesAdminAction(Request $request)
  93.     {
  94.     
  95.         /* we load session data */
  96.         parent::init($request);
  97.     
  98.         $session $request->getSession();
  99.         /* we check if user is logged in */
  100.         if(empty($session->get('user'))) {
  101.             return $this->redirectToRoute('login');
  102.         }        
  103.         /* we load entity managers */
  104.         $em $this->doctrine->getManager();
  105.         $dem $this->doctrine->getManager('dynamic_em');
  106.         
  107.         /* we get current user */
  108.         $currentUserId $session->get('user')->getUserId();
  109.         $user $em->getRepository(User::class)->getUser($currentUserId);
  110.         /* setting current webpages */
  111.         if(!empty($request->query->get('setCurrent'))) {
  112.             $website $em->getRepository(Website::class)->getWebsite($request->query->get('setCurrent'));
  113.             $em->getRepository(Website::class)->setCurrentWebsite($currentUserId$request->query->get('setCurrent'));
  114.             $session->set('website'$website);
  115.         
  116.             $this->addFlash('notice''The website '.$website->getWebsiteName().' was set as current one.');
  117.             return $this->redirectToRoute('webpagesAdmin');
  118.         
  119.         }
  120.         /* we get current website */
  121.         $currentWeb $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  122.          
  123.         /* we load list of websites for logged user */
  124.         $websiteList $em->getRepository(Website::class)->getWebsiteListByUser($currentUserId);
  125.         //we create new web if there is none
  126.         if(count($websiteList) == 0) {
  127.             $this->webCreate($request);
  128.             return $this->redirectToRoute('webpagesAdmin'); 
  129.         }
  130.         /* 
  131.         print('<br>qqw count web: '.count($websiteList));
  132.         print('<br>qqw current web: ');
  133.         \Doctrine\Common\Util\Debug::dump($currentWeb); 
  134.         */
  135.         /* if there is no current website set then we set one */
  136.         if(empty($currentWeb) && count($websiteList) == 1) {
  137.             //print('<br>qqw setting current web ');
  138.             $website $websiteList[0];
  139.             $em->getRepository(Website::class)->setCurrentWebsite($currentUserId$website->getWebsiteId());
  140.             $session->set('website'$website);
  141.         }
  142.  
  143.         /* we display lists of menus, pages etc only if there is current website */
  144.         if(!empty($currentWeb)) { 
  145.             /* we load list of web pages for the current website */
  146.             $webPageList $dem->getRepository(WebPage::class)->getWebPageListByWebsite($currentWeb->getWebsiteId());
  147.             foreach ($webPageList as $page) {
  148.                 $page->setLocale($session->get('lang')->getLangKey());
  149.                 $dem->refresh($page);
  150.             }
  151.             /* we load list of web menus for the current website */
  152.             $webMenuList $dem->getRepository(WebMenu::class)->getWebMenuListByWebsite($currentWeb->getWebsiteId());
  153.             /* we load header for the current website */
  154.             $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($currentWeb->getWebsiteId());
  155. //            print('<br>webPageHeader: ');
  156. //            print_r($webPageHeader);
  157.             /* we load footer for the current website */
  158.             $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($currentWeb->getWebsiteId());
  159.         } else {
  160.             $webPageList = array();
  161.             $webMenuList = array();
  162.             $webPageHeader null;
  163.             $webPageFooter null;
  164.         }
  165.         /* we load list of wireframes */
  166.         $wireFrameList $em->getRepository(WireFrame::class)->getWireFrameList();
  167.           
  168.         /* we prepare array of wireframes */
  169.         $wireFrameArray = array();
  170.         foreach($wireFrameList as $wireFrame) {
  171.             $wireFrameArray[$wireFrame->getWireFrameId()] = $wireFrame;
  172.         }
  173.         
  174.         /* we prepare array of count(pages) */
  175.         $webPageCountArray = array();
  176.         foreach($websiteList as $website) {
  177.             $webPageCountArray[$website->getWebsiteId()] = $dem->getRepository(WebPage::class)->getWebPageCountByWebsite($website->getWebsiteId());
  178.         }    
  179.         
  180.         /*
  181.         print('<br>qqw PageCount: ');
  182.         \Doctrine\Common\Util\Debug::dump($webPageCountArray);
  183.         */     
  184.         
  185.         /* we load list of modules for website service */
  186.         $service $em->getRepository(Service::class)->getService(3);
  187.         $moduleCollection $em->getRepository(Module::class)->getModuleList();
  188.         /* we render data */
  189.         return $this->render('webpagesAdmin.html.twig',
  190.                 array(    'headerData' => $this -> getPageHeader($request),
  191.                         'websiteList' => $websiteList,
  192.                         'webPageList' => $webPageList,
  193.                         'webPageHeader' => $webPageHeader,
  194.                         'webPageFooter' => $webPageFooter,
  195.                         'webMenuList' => $webMenuList,
  196.                         'wireFrameArray' => $wireFrameArray,
  197.                         'webPageCountArray' => $webPageCountArray,
  198.                         'moduleList' => $service->getModules(),
  199.                         'userModuleList' => $user->getModules(),                        
  200.                         'menu' => $this -> adminMenu($request),
  201.                         'mainMenu' => $this -> adminMainMenu($request),
  202.                         'user' => $user
  203.                 )
  204.                 );
  205.     
  206.     }
  207.     
  208.     /**
  209.      * @Route("/webPagesHeader", name="webPagesHeader")
  210.      */
  211.     public function webPagesHeaderAction(Request $request)
  212.     {
  213.     
  214.         /* we load session data */
  215.         parent::init($request);
  216.         $session $request->getSession();
  217.     
  218.         /* we load users entity manager */
  219.         $em $this->doctrine->getManager();
  220.         //$dem = $this->doctrine->getManager('dynamic_em');
  221.          
  222.         /* we get current user */
  223.         $currentUserId $session->get('user')->getUserId();
  224.         $user $em->getRepository(User::class)->getUser($currentUserId);
  225.         /* we render data */
  226.         return $this->render('webpagesHeader.html.php',
  227.                 array(    'headerData' => $this -> getPageHeader($request),
  228.                         'menu' => $this -> adminMenu($request),
  229.                         'mainMenu' => $this -> adminMainMenu($request),
  230.                         'mainMenu' => $this -> adminMainMenu($request),
  231.                 )
  232.                 );
  233.     
  234.     }    
  235.     
  236.     /**
  237.      * @Route("/webnew", name="webNew")
  238.      */
  239.     public function webNewAction(Request $request)
  240.     {
  241.     
  242.         /* we load session data */
  243.         parent::init($request);
  244.     
  245.         $session $request->getSession();
  246.     
  247.         $em $this->doctrine->getManager();
  248.         $userId $session->get('user')->getUserId();
  249.         $user $em->getRepository(User::class)->getUser($userId);
  250.     
  251.         /* we build form */
  252.         $formBuilder $this->createFormBuilder();
  253.     
  254.         $formBuilder->add('websiteName'TextType::class, array(
  255.                 'required' => true,
  256.                 'label' => $this->translator->trans('webpages.name'),
  257.                 'attr' => array('class' => 'text_form''size' => 22),
  258.                 'label_attr' => array('class' => 'form_field_label'),
  259.         ));
  260.          
  261.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  262.                 'attr' => array('class' => 'butt_big')));
  263.     
  264.         $form $formBuilder->getForm();
  265.         $form->handleRequest($request);
  266.     
  267.         if ($request->getMethod() == 'POST') {
  268.     
  269.             if ($form->isValid()) {
  270.                 // perform some action, such as save the object to the database
  271.     
  272.                 /* we load users entity manager */
  273.                 //$dem = $this->doctrine->getManager('dynamic_em');
  274.     
  275.                 $website = new Website;
  276.                 $website->setWebsiteName($request->request->get('form')['websiteName']);
  277.                 $website->setUserId($session->get('user')->getUserId());
  278.                 /* we persist and save */
  279.                 $em->persist($website);
  280.                 $em->flush();
  281.     
  282.                 $this->addFlash('notice''New website was created.');
  283.     
  284.                 return $this->redirectToRoute('webpagesAdmin');
  285.     
  286.             }
  287.              
  288.         }
  289.     
  290.         /* we render data */
  291.         return $this->render('webNew.html.twig',
  292.                 array(    'form' => $formBuilder->getForm()->createView(),
  293.                         'headerData' => $this -> getPageHeader($request),
  294.                         'menu' => $this -> adminMenu($request),
  295.                         'mainMenu' => $this -> adminMainMenu($request),
  296.                         'user' => $user,
  297.                 )
  298.                 );
  299.     
  300.     }
  301.     
  302.     /**
  303.      * @Route("/web/{webId}", name="web")
  304.      */
  305.     public function webAction(Request $request$webId)
  306.     {
  307.     
  308.         /* we load session data */
  309.         parent::init($request);
  310.         $session $request->getSession();
  311.         //print('<br>QQW web ID: '.$webId);
  312.     
  313.         /* we load entity managers */
  314.         $em $this->doctrine->getManager();
  315.         $dem $this->doctrine->getManager('dynamic_em');
  316.          
  317.         /* we get current web */
  318.         $web $em->getRepository(Website::class)->getWebsite($webId);
  319.         try {
  320.             //print('<br>Twig - adds php functions ...');
  321.             $this->twig->addFunction(new \Twig\TwigFunction('deg2rad''deg2rad'));
  322.             $this->twig->addFunction(new \Twig\TwigFunction('sin''sin'));
  323.             $this->twig->addFunction(new \Twig\TwigFunction('imagecreatefromstring''imagecreatefromstring'));
  324.             $this->twig->addFunction(new \Twig\TwigFunction('file_get_contents''file_get_contents'));
  325.             $this->twig->addFunction(new \Twig\TwigFunction('ImageSX''ImageSX'));
  326.             $this->twig->addFunction(new \Twig\TwigFunction('ImageSY''ImageSY')); 
  327.         } catch(Exception $e) {
  328.             $this->addFlash('error'"Twig functions init error");
  329.         }
  330.          
  331.         /* we load header for the current website */
  332.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  333.          
  334.         /* we load footer for the current website */
  335.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  336.         $webPageLeftColumn $dem->getRepository(WebPage::class)->getWebPageLeftColumn($webId);
  337.         $webPageRightColumn $dem->getRepository(WebPage::class)->getWebPageRightColumn($webId);
  338.          
  339.         /* we load main menu for the current website */
  340.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  341.         if(!empty($webMenuMain)) {
  342.             $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  343.         } else {
  344.            $webMenuItemList = array();
  345.         }
  346.         /* we load top menu for the current website */
  347.         $webMenuTop $dem->getRepository(WebMenu::class)->getTopMenu($webId);
  348.         if(!empty($webMenuTop)) {
  349.            $webMenuTopItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuTop->getWebMenuId());
  350.         } else {
  351.            $webMenuTopItemList = array();
  352.         }
  353.         /* we load home page for the current website */
  354.         $homePage $dem->getRepository(WebPage::class)->getHomePage($webId);
  355.         $currentLang $session->get('lang');
  356.         $homePageContent '';
  357.         $webPageHeaderContent '';
  358.         $webPageFooterContent '';
  359.         foreach($web->getLanguages() as $lang) {
  360.             if ($lang->getLangKey() == $currentLang->getLangKey()) {
  361.                 
  362.                 if(!empty($homePage)) {
  363.                     $homePage->setLocale($lang->getLangKey());
  364.                     $dem->refresh($homePage);
  365.                     $homePageContent $homePage->getWebPageContent();                    
  366.                 }
  367.                 if(!empty($webPageHeader)) {
  368.                     $webPageHeader->setLocale($lang->getLangKey());
  369.                     $dem->refresh($webPageHeader);
  370.                     $webPageHeaderContent $webPageHeader->getWebPageContent();
  371.                 }    
  372.                 if(!empty($webPageFooter)) {
  373.                     $webPageFooter->setLocale($lang->getLangKey());
  374.                     $dem->refresh($webPageFooter);
  375.                     $webPageFooterContent $webPageFooter->getWebPageContent();
  376.                 }    
  377.             }
  378.         }
  379.         //print('<br>webPageHeaderContent in '.$currentLang->getLangKey().': '.$webPageHeaderContent);
  380. //        print('<br>homePageContent in '.$currentLang->getLangKey().': '.$homePageContent);
  381. //        print('<br>webPageFooterContent in '.$currentLang->getLangKey().': '.$webPageFooterContent);
  382.         $seoData = array();
  383.         $seoData['seoTitle'] = '';
  384.         $seoData['seoDescription'] = '';  
  385.         /* we parse the page content for placeholders */
  386.         if(!empty($homePage)) { 
  387.           $homePageContent $this->parseContent($request$homePageContent);
  388.           $homePage->setWebPageContent($homePageContent);
  389.           $seoData['seoTitle'] = $homePage->getSeoTitle();
  390.           $seoData['seoDescription'] = $homePage->getSeoDescription();           
  391.         }
  392.         if(!empty($webPageHeader)) {
  393.             $webPageHeader->setWebPageContent($webPageHeaderContent);
  394.         }
  395.         if(!empty($webPageFooter)) {
  396.             $webPageFooter->setWebPageContent($webPageFooterContent);
  397.         }
  398. //        print('<hr>qqw homePage Content 2: '.$homePageContent.'<hr>');
  399. //        \Doctrine\Common\Util\Debug::dump($homePage);
  400.         /* we check if website exists */
  401.         if($web === null) {
  402.             $this->addFlash('error''Web with tis ID does not exists.');
  403.             return $this->redirectToRoute('webHome');
  404.         }
  405.         
  406.         /* we get wireframe */
  407.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  408. //        print('<hr>qqw wireframe: ');
  409. //        \Doctrine\Common\Util\Debug::dump($wireFrame);
  410.         $webMenuVertical null;
  411.         $webMenuVerticalItemList null;
  412.         /* we load left column - vertical menu for the current website */
  413.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  414.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  415.             if(!empty($webMenuVertical)) {
  416.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  417.             }
  418.         }
  419.         /*
  420.         print('<hr>qqw webMenuVertical: ');
  421.         \Doctrine\Common\Util\Debug::dump($webMenuVertical);
  422.         print('<hr>qqw webMenuVerticalItemList: ');
  423.         \Doctrine\Common\Util\Debug::dump($webMenuVerticalItemList);
  424.         */
  425.         //print('<br>menu : ');
  426.         //\Doctrine\Common\Util\Debug::dump($webMenuTop);
  427.         //foreach ($webMenuTopItemList as $menuItem) {
  428.             //$menuItem->setLocale($session->get('lang'));
  429.             //$dem->refresh($menuItem);
  430.             //print('<br>menu item: '.$menuItem->getWebMenuItemName());
  431.         //}
  432.     
  433.         /* we render data */
  434.         return $this->render('web.html.twig',
  435.                 array(  'headerData' => $this -> getPageHeader($request),
  436.                         'seoData' => $seoData,                    
  437.                         'menu' => $this -> adminMenu($request),
  438.                         'mainMenu' => $this -> adminMainMenu($request),
  439.                         'web' => $web,
  440.                         'wireFrame' => $wireFrame,
  441.                         'webPageHeader' => $webPageHeader,
  442.                         'webPageFooter' => $webPageFooter,
  443.                         'webPageLeftColumn' => $webPageLeftColumn,
  444.                         'webPageRightColumn' => $webPageRightColumn,
  445.                         'webMenuMain' => $webMenuMain,
  446.                         'webMenuTop' => $webMenuTop,                        
  447.                         'webMenuItemList' => $webMenuItemList,
  448.                         'webMenuTopItemList' => $webMenuTopItemList,                        
  449.                         'webMenuVertical' => $webMenuVertical,
  450.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,                        
  451.                         'homePage' => $homePage,
  452.                 )
  453.                 );
  454.     
  455.     }  
  456.     
  457.     /**
  458.      * @Route("/web/{webId}/page/{pageId}", name="page")
  459.      */
  460.     public function pageAction(Request $request$webId$pageId)
  461.     {
  462.     
  463.         /* we load session data */
  464.         parent::init($request);
  465.         $session $request->getSession();
  466.         //print('<br>QQW page ID: '.$pageId);
  467.     
  468.         /* we load entity managers */
  469.         $em $this->doctrine->getManager();
  470.         $dem $this->doctrine->getManager('dynamic_em');
  471.         /* we get current web */
  472.         $web $em->getRepository(Website::class)->getWebsite($webId);
  473.          
  474.         /* we load header for the current website */
  475.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  476.         /* we load footer for the current website */
  477.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  478.         $webPageLeftColumn $dem->getRepository(WebPage::class)->getWebPageLeftColumn($webId);
  479.         $webPageRightColumn $dem->getRepository(WebPage::class)->getWebPageRightColumn($webId);
  480.          
  481.         /* we load header for the current website */
  482.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  483.         if(!empty($webMenuMain)) {
  484.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  485.         } else {
  486.            $webMenuItemList = array();
  487.         }
  488.         /* we load top menu for the current website */
  489.         $webMenuTop $dem->getRepository(WebMenu::class)->getTopMenu($webId);
  490.         if(!empty($webMenuTop)) {
  491.            $webMenuTopItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuTop->getWebMenuId());
  492.         } else {
  493.            $webMenuTopItemList = array();
  494.         }        
  495.         /* we load page for the current webpage */
  496.         $page $dem->getRepository(WebPage::class)->getWebPage($pageId);
  497.         $currentLang $session->get('lang');
  498.         
  499.         /*
  500.         print('<br>qqw page id: '.$pageId);
  501.         \Doctrine\Common\Util\Debug::dump($page);
  502.         */
  503.         $pageContent '';
  504.         $webPageHeaderContent '';
  505.         $webPageFooterContent '';
  506.         foreach($web->getLanguages() as $lang) {
  507.             if ($lang->getLangKey() == $currentLang->getLangKey()) {
  508.                 if(!empty($page)) {
  509.                     $page->setLocale($lang->getLangKey());
  510.                     $dem->refresh($page);
  511.                     $pageContent $page->getWebPageContent();
  512.                 }
  513.                 if(!empty($webPageHeader)) {
  514.                     $webPageHeader->setLocale($lang->getLangKey());
  515.                     $dem->refresh($webPageHeader);
  516.                     $webPageHeaderContent $webPageHeader->getWebPageContent();
  517.                 }
  518.                 if(!empty($webPageFooter)) {
  519.                     $webPageFooter->setLocale($lang->getLangKey());
  520.                     $dem->refresh($webPageFooter);
  521.                     $webPageFooterContent $webPageFooter->getWebPageContent();
  522.                 }
  523.             }
  524.         }
  525.         /* we parse the page content for placeholders */
  526.         $pageContent $this->parseContent($request$pageContent);
  527.         $page->setWebPageContent($pageContent);
  528.         //print('<br>page content2: '.$pageContent);
  529.         if(!empty($webPageHeader)) {
  530.             $webPageHeader->setWebPageContent($webPageHeaderContent);
  531.         }
  532.         if(!empty($webPageFooter)) {
  533.             $webPageFooter->setWebPageContent($webPageFooterContent);
  534.         }
  535.         
  536.         /* we check if website exists */
  537.         if($web === null) {
  538.             $this->addFlash('error''Web with tis ID does not exists.');
  539.             return $this->redirectToRoute('webHome');
  540.         }
  541.         
  542.         /* we get wireframe */
  543.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  544.         $webMenuVertical null;
  545.         $webMenuVerticalItemList null;
  546.         /* we load left column - vertical menu for the current website */
  547.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  548.             
  549.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  550.             if(!empty($webMenuVertical)) {
  551.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  552.             }
  553.         }
  554.         /*
  555.         print('<br>qqw webMenuVertical: ');
  556.         \Doctrine\Common\Util\Debug::dump($webMenuVertical);
  557.         */
  558.         /* we render data */
  559.         return $this->render('page.html.twig',
  560.                 array(  'headerData' => $this -> getPageHeader($request),
  561.                         'menu' => $this -> adminMenu($request),
  562.                         'mainMenu' => $this -> adminMainMenu($request),
  563.                         'web' => $web,
  564.                         'wireFrame' => $wireFrame,
  565.                         'webPageHeader' => $webPageHeader,
  566.                         'webPageFooter' => $webPageFooter,
  567.                         'webPageLeftColumn' => $webPageLeftColumn,
  568.                         'webPageRightColumn' => $webPageRightColumn,
  569.                         'webMenuMain' => $webMenuMain,
  570.                         'webMenuItemList' => $webMenuItemList,
  571.                         'webMenuTop' => $webMenuTop,                        
  572.                         'webMenuTopItemList' => $webMenuTopItemList,                           
  573.                         'webMenuVertical' => $webMenuVertical,
  574.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,                            
  575.                         'page' => $page,
  576.                 )
  577.                 );
  578.     
  579.     }  
  580.     /**
  581.      * @Route("/web/{webId}/galleries", name="webGalleries")
  582.      */
  583.     public function webGalleriesAction(Request $request$webId)
  584.     {
  585.     
  586.         /* we load session data */
  587.         parent::init($request);
  588.         $session $request->getSession();
  589. //        print('<br>QQW web ID: '.$webId);
  590.     
  591.         /* we load entity managers */
  592.         $em $this->doctrine->getManager();
  593.         $dem $this->doctrine->getManager('dynamic_em');
  594.         /* we get current web */
  595.         $web $em->getRepository(Website::class)->getWebsite($webId);
  596.          
  597.         /* we load header for the current website */
  598.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  599.         if(!empty($webPageHeader)) {
  600.             $webPageHeader->setLocale($session->get('lang')->getLangKey());
  601.             $dem->refresh($webPageHeader);
  602.         }
  603.          
  604.         /* we load footer for the current website */
  605.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  606.         if(!empty($webPageFooter)) {
  607.             $webPageFooter->setLocale($session->get('lang')->getLangKey());
  608.             $dem->refresh($webPageFooter);
  609.         }
  610.         /* we load menu for the current website */
  611.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  612.         if(!empty($webMenuMain)) {
  613.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  614.         } else {
  615.            $webMenuItemList = array();
  616.         }
  617.         
  618.         /* we load top menu for the current website */
  619.         $webMenuTop $dem->getRepository(WebMenu::class)->getTopMenu($webId);
  620.         if(!empty($webMenuTop)) {
  621.            $webMenuTopItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuTop->getWebMenuId());
  622.         } else {
  623.            $webMenuTopItemList = array();
  624.         }   
  625.         /*
  626.         print('<br>qqw page id: '.$pageId);
  627.         \Doctrine\Common\Util\Debug::dump($page);
  628.         */           
  629.         
  630.         /* we check if website exists */
  631.         if($web === null) {
  632.             $this->addFlash('error''Web with tis ID does not exists.');
  633.             return $this->redirectToRoute('webHome');
  634.         }
  635.         
  636.         /* we get wireframe */
  637.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  638.         $webMenuVertical null;
  639.         $webMenuVerticalItemList null;
  640.         /* we load left column - vertical menu for the current website */
  641.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  642.             
  643.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  644.             if(!empty($webMenuVertical)) {
  645.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  646.             }
  647.         }
  648.         /* we get list of galleries */
  649.         $galleryList $dem->getRepository(Gallery::class)->getGalleryListByUser($web->getUserId());
  650.         //print('<br>qqw web: ');
  651.         //\Doctrine\Common\Util\Debug::dump($web);
  652.         /* we render data */
  653.         return $this->render('galleries.html.twig',
  654.                 array(  'headerData' => $this -> getPageHeader($request),
  655.                         'menu' => $this -> adminMenu($request),
  656.                         'mainMenu' => $this -> adminMainMenu($request),
  657.                         //'mainMenu' => $this -> adminMainMenu($request),
  658.                         'web' => $web,
  659.                         'wireFrame' => $wireFrame,
  660.                         'webPageHeader' => $webPageHeader,
  661.                         'webPageFooter' => $webPageFooter,
  662.                         'webMenuMain' => $webMenuMain,
  663.                         'webMenuItemList' => $webMenuItemList,
  664.                         'webMenuTop' => $webMenuTop,                        
  665.                         'webMenuTopItemList' => $webMenuTopItemList,                          
  666.                         'galleryList' => $galleryList,
  667.                         'webMenuVertical' => $webMenuVertical,  
  668.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,                           
  669.                 )
  670.                 );
  671.     
  672.     }  
  673.     /**
  674.      * @Route("/web/{webId}/gallery/{galleryId}", name="webGallery")
  675.      */
  676.     public function webGalleryAction(Request $request$webId$galleryId)
  677.     {
  678.     
  679.         /* we load session data */
  680.         parent::init($request);
  681.         $session $request->getSession();
  682.         /* we load entity managers */
  683.         $em $this->doctrine->getManager();
  684.         $dem $this->doctrine->getManager('dynamic_em');
  685.         /* we get current web */
  686.         $web $em->getRepository(Website::class)->getWebsite($webId);
  687.         
  688.           /* we get user */
  689.           $userId $web->getUserId();
  690.           $user $em->getRepository(User::class)->getUser($userId);
  691.          
  692.         /* we load header for the current website */
  693.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  694.         if(!empty($webPageHeader)) {
  695.             $webPageHeader->setLocale($session->get('lang')->getLangKey());
  696.             $dem->refresh($webPageHeader);
  697.         }
  698.          
  699.         /* we load footer for the current website */
  700.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  701.         if(!empty($webPageFooter)) {
  702.             $webPageFooter->setLocale($session->get('lang')->getLangKey());
  703.             $dem->refresh($webPageFooter);
  704.         }
  705.          
  706.         /* we load header for the current website */
  707.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  708.         if(!empty($webMenuMain)) {
  709.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  710.         } else {
  711.            $webMenuItemList = array();
  712.         }
  713.         /* we load top menu for the current website */
  714.         $webMenuTop $dem->getRepository(WebMenu::class)->getTopMenu($webId);
  715.         if(!empty($webMenuTop)) {
  716.            $webMenuTopItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuTop->getWebMenuId());
  717.         } else {
  718.            $webMenuTopItemList = array();
  719.         }           
  720.         if(!empty($request->get('backUrl'))) {
  721.             $backUrl $request->get('backUrl');
  722.         } else {
  723.             $backUrl null;
  724.         }
  725.         
  726.         /*
  727.         print('<br>qqw page id: '.$pageId);
  728.         \Doctrine\Common\Util\Debug::dump($page);
  729.         */           
  730.         
  731.         /* we check if website exists */
  732.         if($web === null) {
  733.             $this->addFlash('error''Web with tis ID does not exists.');
  734.             return $this->redirectToRoute('webHome');
  735.         }
  736.         $userDirs $this->getUserFolderPaths($request);
  737.         
  738.         /* we get wireframe */
  739.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  740.         /* we get list of gallery */
  741.         $gallery $dem->getRepository(Gallery::class)->getGallery($galleryId);
  742.         $galleryItemList $dem->getRepository(GalleryItem::class)->getGalleryItemList($galleryId);
  743.         //print('<br>qqw gallery: ');
  744.         //\Doctrine\Common\Util\Debug::dump($galleryItemList);
  745.     
  746.         /* we render data */
  747.         return $this->render('webGallery.html.twig',
  748.                 array(  'headerData' => $this -> getPageHeader($request),
  749.                         'menu' => $this -> adminMenu($request),
  750.                         'mainMenu' => $this -> adminMainMenu($request),
  751.                         'web' => $web,
  752.                         'user' => $user,
  753.                         'userDirs' => $userDirs,
  754.                         'wireFrame' => $wireFrame,
  755.                         'webPageHeader' => $webPageHeader,
  756.                         'webPageFooter' => $webPageFooter,
  757.                         'webMenuMain' => $webMenuMain,
  758.                         'webMenuItemList' => $webMenuItemList,
  759.                         'webMenuTop' => $webMenuTop,                        
  760.                         'webMenuTopItemList' => $webMenuTopItemList,                         
  761.                         'gallery' => $gallery,
  762.                         'galleryItemList' => $galleryItemList,
  763.                         'backUrl' => $backUrl,
  764.                 )
  765.                 );
  766.     
  767.     }  
  768.     /**
  769.      * @Route("/webConfig", name="webConfig")
  770.      */
  771.     public function webConfigAction(Request $request)
  772.     {
  773.     
  774.         /* we load session data */
  775.         parent::init($request);
  776.         $session $request->getSession();
  777.     
  778.         /* we load master entity manager */
  779.         $em $this->doctrine->getManager();
  780.         $dem $this->doctrine->getManager('dynamic_em');
  781.          
  782.         $currentUserId $session->get('user')->getUserId();
  783.         $user $em->getRepository(User::class)->getUser($currentUserId);
  784.     
  785.         /* we get current website */
  786.         $web $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  787.          
  788.         /* we get css designs */
  789.         $cssDesignCollection $dem->getRepository(CssDesign::class)->getCssDesignList();
  790.         if(count($cssDesignCollection) == 0) {
  791.             print('we create new css file');
  792.             $cssDesign = new CssDesign;
  793.             $cssDesign->setCssDesignName($user->getUserName());
  794.             $cssDesign->setCssDesignFile($user->getUserName().".css");
  795.             /* we persist and save */
  796.             $dem->persist($cssDesign);
  797.             $dem->flush();
  798.             $this->addFlash('notice'$this->translator->trans('module.cssDesigner_created'));
  799.             return $this->redirectToRoute('webConfig');
  800.         }
  801.         
  802.         /* we get wireframes */
  803.         $wireFrameCollection $em->getRepository(WireFrame::class)->getWireFrameListByService(3);
  804.         /* we get languages */
  805.         $langCollection $em->getRepository(Language::class)->getLanguageList();
  806.          
  807.         /* we build form */
  808.         $formBuilder $this->createFormBuilder($web);
  809.     
  810.         $formBuilder->add('websiteName'TextType::class, array(
  811.                 'required' => false,
  812.                 'label' => $this->translator->trans('webpages.name'),
  813.                 'attr' => array('class' => 'text_form''size' => 35'value' => $web->getWebsiteName()),
  814.                 'label_attr' => array('class' => 'form_field_label')
  815.         ));
  816.         /* we add css designs list */
  817.         $cssDesigns = array();
  818.         $selectedCss '';
  819.         foreach($cssDesignCollection as $cssDesign)
  820.         {
  821.             $cssDesignId $cssDesign->getCssDesignId();
  822.             $cssDesigns[$cssDesign->getCssDesignName()] = $cssDesignId;
  823.     
  824.             /* we look for selected css design of the e-shop */
  825.             if($cssDesign->getCssDesignFile() == $web->getWebsiteCss()) {
  826.                 $selectedCss $cssDesign->getCssDesignId();
  827.             }
  828.         }
  829.     
  830.         $formBuilder->add('cssDesignId'ChoiceType::class, array(
  831.                 'choices' => $cssDesigns,
  832.                 'required' => false,
  833.                 'mapped' => false,
  834.                 'multiple' => false,
  835.                 'expanded' => true,
  836.                 'placeholder' => false,
  837.                 'label_attr' => array('class' => 'form_field_label'),
  838.                 'attr' => array('class' => 'form_field_text'),                
  839.                 'data' => $selectedCss
  840.         ));
  841.         
  842.         /* we add wireframe list */
  843.         $wireFrames = array();
  844.         $selectedWireFrame '';
  845.         foreach($wireFrameCollection as $wireFrame)
  846.         {
  847.             $wireFrameId $wireFrame->getWireFrameId();
  848.             $wireFrames[$wireFrame->getWireFrameName()] = $wireFrameId;
  849.         
  850.             /* we look for selected wireframe of the website */
  851.             if($wireFrame->getWireFrameId() == $web->getWireFrameId()) {
  852.                 $selectedWireFrame $wireFrame->getWireFrameId();
  853.             }
  854.         }  
  855.         
  856.         $formBuilder->add('wireFrameId'ChoiceType::class, array(
  857.                 'choices' => $wireFrames,
  858.                 'required' => false,
  859.                 'mapped' => false,
  860.                 'multiple' => false,
  861.                 'expanded' => true,
  862.                 'placeholder' => false,
  863.                 'label_attr' => array('class' => 'form_field_label'),
  864.                 'attr' => array('class' => 'form_field_text'),                
  865.                 'data' => $selectedWireFrame,
  866.         ));        
  867.         /* we add language list */
  868.         $languages = array();
  869.         foreach($langCollection as $lang)
  870.         {
  871.             $langId $lang->getLangId();
  872.             $languages[$lang->getLangName()] = $lang->getLangId();
  873.         }
  874.         $selectedLanguages = array();
  875.         foreach($web->getLanguages() as $lang) {
  876.             $selectedLanguages[] = $lang->getLangId();
  877.         }
  878.          
  879.         $formBuilder->add('languages'ChoiceType::class, array(
  880.                 'choices' => $languages,
  881.                 'label' => $this->translator->trans('system.languages'),
  882.                 'required' => false,
  883.                 'mapped' => false,
  884.                 'multiple' => true,
  885.                 'expanded' => true,
  886.                 'label_attr' => array('class' => 'form_field_label'),
  887.                 'attr' => array('class' => 'form_field_text'),
  888.                 'data' => $selectedLanguages
  889.         ));  
  890.         
  891.         $formBuilder->add('preferredLanguageId'ChoiceType::class, array(
  892.                 'choices' => $languages,
  893.                 'label' => $this->translator->trans('system.language_preferred'),
  894.                 'required' => true,
  895.                 'mapped' => false,
  896.                 'multiple' => false,
  897.                 'placeholder' => false,
  898.                 'expanded' => true,
  899.                 'label_attr' => array('class' => 'form_field_label'),
  900.                 'attr' => array('class' => 'form_field_text'),
  901.                 'data' => $web->getPreferredLanguageId()
  902.         ));             
  903.          
  904.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.send'),
  905.                 'attr' => array('class' => 'butt_big')));
  906.     
  907.         $form $formBuilder->getForm();
  908.         $form->handleRequest($request);
  909.     
  910.         if ($request->getMethod() == 'POST') {
  911.             //$form->bindRequest($request);
  912.              
  913.             if ($form->isValid()) {
  914.                 $formData $form->getData();
  915.     
  916.                 /* we load eshop data from form into object */
  917.                 $web->setWebsiteName($formData->getWebsiteName());
  918.                 /* we remove old language associations */
  919.                 foreach($web->getLanguages() as $lang) {
  920.                     $web->removeLanguage($lang);
  921.                 }
  922.                     
  923.                 /* we load web languages */
  924.                 if(!empty($form['languages']->getData())) {
  925.                     foreach($form['languages']->getData() as $langId) {
  926.                         $addLang $em->getRepository(Language::class)->getLanguage($langId);
  927.                         $web->addLanguage($addLang);
  928.                     }
  929.                 }
  930.                 
  931.                 /* we set default language */
  932.                 $web->setPreferredLanguageId($form['preferredLanguageId']->getData());
  933.                 /* we set css design */
  934.                 $cssDesign $dem->getRepository(CssDesign::class)->getCssDesign($form['cssDesignId']->getData());
  935.                 $web->setWebsiteCss($cssDesign->getCssDesignFile());
  936.                 /* wireframe setting */
  937.                 $web->setWireFrameId($form['wireFrameId']->getData());
  938.                 /*
  939.                  print('<br>qqw user exists: ');
  940.                  \Doctrine\Common\Util\Debug::dump($user);
  941.                  */
  942.     
  943.                 /* we persist and save user */
  944.                 $em->persist($web);
  945.                 $em->flush();
  946.     
  947.                 $this->addFlash('notice''Website was updated.');
  948.                 return $this->redirectToRoute('webConfig');
  949.     
  950.             }
  951.              
  952.         }
  953.     
  954.         /* we render data */
  955.         return $this->render('webConfig.html.twig',
  956.                 array(  'headerData' => $this -> getPageHeader($request),
  957.                         'form' => $formBuilder->getForm()->createView(),
  958.                         'menu' => $this -> adminMenu($request),
  959.                         'mainMenu' => $this -> adminMainMenu($request),
  960.                         'user' => $user,
  961.                 )
  962.                 );
  963.     
  964.     }      
  965.     /**
  966.      * @Route("/webPageNew", name="webPageNew")
  967.      */
  968.     public function webPageNewAction(Request $request)
  969.     {
  970.     
  971.         /* we load session data */
  972.         parent::init($request);
  973.     
  974.         $session $request->getSession();
  975.     
  976.         /* we load master entity manager */
  977.         $em $this->doctrine->getManager();
  978.         $dem $this->doctrine->getManager('dynamic_em');
  979.         
  980.         $currentUserId $session->get('user')->getUserId();
  981.         $user $em->getRepository(User::class)->getUser($currentUserId);
  982.         
  983.         /* we get current website */
  984.         $web $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  985.         /* we build login form */
  986.         $webPage = new WebPage;
  987.         $formBuilder $this->createFormBuilder($webPage);
  988.     
  989.         $formBuilder->add('webPageName'TextType::class, array(
  990.                 'required' => true,
  991.                 'label' => $this->translator->trans('webpages.page_title'),
  992.                 'attr' => array('class' => 'text_form''size' => 22),
  993.                 'label_attr' => array('class' => 'form_field_label'),
  994.         ));
  995.       
  996.       /* we add flag if it is eshop page */
  997.       if(!empty($request->query->get('eshopPage'))) {
  998.         $formBuilder->add('eshopPage'HiddenType::class, array(
  999.             'data' => 1,
  1000.             'mapped' => false
  1001.         ));   
  1002.       } else {
  1003.           $formBuilder->add('eshopPage'HiddenType::class, array(
  1004.               'data' => 0,
  1005.               'mapped' => false
  1006.           ));
  1007.       }
  1008.     
  1009.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  1010.                 'attr' => array('class' => 'butt_big')));
  1011.     
  1012.         $form $formBuilder->getForm();
  1013.         $form->handleRequest($request);
  1014.     
  1015.         if ($request->getMethod() == 'POST') {
  1016.     
  1017.             if ($form->isValid()) {
  1018.                 $formData $form->getData();
  1019.                 $webPage->setWebPageName($formData->getWebPageName());
  1020.           
  1021.               if(!empty($form['eshopPage']->getData()) && ($form['eshopPage']->getData()==1)) {
  1022.                   /* we get current eshop */
  1023.                   $eshop $em->getRepository(Eshop::class)->getCurrentEshop($currentUserId);
  1024.                   $webPage->setEshopId($eshop->getEshopId());
  1025.               } else {
  1026.                   $webPage->setWebsiteId($web->getWebsiteId());
  1027.               }
  1028.                 //$webPage->setUserId($session->get('user')->getUserId());
  1029.                 $webPage->setDateInserted(new \DateTime("now"));
  1030.                 $webPage->setDatePublished(new \DateTime("now"));
  1031.                 /* we persist and save */
  1032.                 $dem->persist($webPage);
  1033.                 $dem->flush();
  1034.     
  1035.                 $this->addFlash('notice''New web page was created.');
  1036.     
  1037.                 return $this->redirectToRoute('webPageEdit', array('webPageId' => $webPage->getWebPageId()));
  1038.     
  1039.             }
  1040.              
  1041.         }
  1042.     
  1043.         /* we render data */
  1044.         return $this->render('webPageNew.html.twig',
  1045.                 array(    'form' => $formBuilder->getForm()->createView(),
  1046.                         'headerData' => $this -> getPageHeader($request),
  1047.                         'menu' => $this -> adminMenu($request),
  1048.                         'mainMenu' => $this -> adminMainMenu($request),
  1049.                         'user' => $user,
  1050.                 )
  1051.                 );
  1052.     
  1053.     }
  1054.     public function webCreate(Request $request$webName "Test web")
  1055.     {       
  1056.         /* we load session data */
  1057.         parent::init($request);
  1058.     
  1059.         $session $request->getSession();
  1060.     
  1061.         $em $this->doctrine->getManager();
  1062.         $dem $this->doctrine->getManager('dynamic_em');
  1063.         
  1064.         //print('qqw creating web...');
  1065.         $web = new Website;
  1066.         $web->setWebsiteName($webName);
  1067.         $web->setUserId($session->get('user')->getUserId());
  1068.         // wireframe setting
  1069.         $web->setWireFrameId(1);    
  1070.         // we add language
  1071.         $addLang $em->getRepository(Language::class)->getLanguage(1);
  1072.         $web->addLanguage($addLang);         
  1073.  
  1074.         // we set this web as current one 
  1075.         $em->getRepository(Website::class)->unsetCurrentWebsite($session->get('user')->getUserId());
  1076.         $em->getRepository(Website::class)->setCurrentWebsite($session->get('user')->getUserId(), $web->getWebsiteId());
  1077.         // we persist and save
  1078.         $em->persist($web);
  1079.         $em->flush();
  1080.         
  1081.         // we insert data fixtures
  1082.         $this->webDataFixtures($request);
  1083.         $this->addFlash('notice'$this->translator->trans('web.created'));
  1084.     }      
  1085.     
  1086.     /**
  1087.      * we insert default data into e-shop from basicdemo account
  1088.     */
  1089.     public function webDataFixtures(Request $request)
  1090.     {       
  1091.         /* we load session data */
  1092.         parent::init($request);
  1093.     
  1094.         $session $request->getSession();
  1095.     
  1096.         $em $this->doctrine->getManager();
  1097.         $dem $this->doctrine->getManager('dynamic_em');
  1098.         $demo_em $this->doctrine->getManager('eshop_demo_em');
  1099.         
  1100.         print('qqw web data fixtures...');
  1101.         $userId $session->get('user')->getUserId();
  1102.         /* we get current web */
  1103.         $currentWeb $em->getRepository(Website::class)->getCurrentWebsite($userId);
  1104.          
  1105.         /* we get basicdemo web */
  1106.         $demoUserId 97//demobasic user id
  1107.         $demoweb $em->getRepository(Website::class)->getCurrentWebsite($demoUserId);
  1108.         if(empty($demoweb)) {
  1109.             $this->addFlash('error''Demo base web - No fixture data.');
  1110.             return;
  1111.         }
  1112.         print('<br>qqw current web id: '.$demoweb->getWebsiteId());
  1113.         $demoPagesCollection $demo_em->getRepository(WebPage::class)->getWebPageList();
  1114.         //$cat->setLocale($session->get('lang')->getLangKey());
  1115.         
  1116.         foreach($demoPagesCollection as $demoPage)
  1117.         {
  1118.             $pageId $demoPage->getPageId();
  1119.             print('<br>qqw demo page: '.$pageId);
  1120.             \Doctrine\Common\Util\Debug::dump($demoPage); 
  1121.                 //we update or create web page
  1122.                 $page null;
  1123.                 if(empty($page)) {
  1124.                     $page = new WebPage;
  1125.                 }
  1126.                 $page->setWebPageName($demoPage->getWebPageName());
  1127.                 $page->setWebPageContent($demoPage->getWebPageContent());
  1128.                 $page->setWebsiteId($demoPage->getWebsiteId());
  1129.                 $page->setWebPageType($demoPage->getWebPageType());                
  1130.                 $page->setEshopId($demoPage->getEshopId());
  1131.                 $page->setLocale($demoPage->getLocale());                
  1132.                 $page->setWebPageDescription($demoPage->getWebPageDescription());
  1133.                 $page->setPriority($demoPage->getPriority());                
  1134.                 $page->setImageFile($demoPage->getImageFile());
  1135.                 $page->setSeoTitle($demoPage->getSeoTitle());                
  1136.                 $page->setSeoDescription($demoPage->getSeoDescription());                   
  1137.                 $page->setAuctionHallId($demoPage->getAuctionHallId());                                                    
  1138.                  
  1139.                 // we persist and save page 
  1140.                 $dem->persist($page);
  1141.                 $dem->flush();
  1142.         }   
  1143.     }          
  1144.     /**
  1145.      * @Route("/webPageEdit/{webPageId}", name="webPageEdit")
  1146.      */
  1147.     public function webPageEditAction(Request $request$webPageId)
  1148.     {
  1149.     
  1150.         /* we load session data */
  1151.         parent::init($request);
  1152.         $session $request->getSession();
  1153.         // we check if any user is logged in
  1154.         if(!$this->isLoggedUser($request)) {
  1155.             return $this->redirectToRoute('login');
  1156.         }         
  1157.     
  1158.         /* we load entity managers */
  1159.         $em $this->doctrine->getManager();
  1160.         $dem $this->doctrine->getManager('dynamic_em');
  1161.         $currentUserId $session->get('user')->getUserId();
  1162.         $user $em->getRepository(User::class)->getUser($currentUserId);
  1163.          
  1164.         /* we get current website */
  1165.         $web $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  1166.         
  1167.         /* we get web page */
  1168.         $webPage $dem->getRepository(WebPage::class)->getWebPage($webPageId);
  1169.         //print('<br>qqw web page: '.$webPageId);
  1170.         //\Doctrine\Common\Util\Debug::dump($webPage);
  1171.         $webPage->setLocale($session->get('lang')->getLangKey());
  1172.         $dem->refresh($webPage);
  1173.         
  1174.         /*
  1175.         print('<br>qqw web page: '.$webPageId);
  1176.         \Doctrine\Common\Util\Debug::dump($webPage);
  1177.         */     
  1178.         
  1179.         /* we build form */
  1180.         $formBuilder $this->createFormBuilder($webPage);
  1181.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  1182.             'attr' => array('class' => 'butt_big')));
  1183. //        $formBuilder->add('webPageName', TextType::class, array(
  1184. //                'required' => true,
  1185. //                'label' => $this->translator->trans('webpages.page_title'),
  1186. //                'attr' => array('class' => 'text_form', 'size' => 55, 'value' => $webPage->getWebPageName()),
  1187. //                'label_attr' => array('class' => 'form_field_label')
  1188. //        ));
  1189.         /* for eshop - we display page content in various languages */
  1190.         if(!empty($webPage->getEshopId()) && ($webPage->getEshopId() > 0)) {
  1191.             //print("<br>qqw eshop Id: ".$webPage->getEshopId());
  1192.             /* we get current e-shop */
  1193.             $eshop $em->getRepository(Eshop::class)->getEshop($webPage->getEshopId());
  1194.             // webPageContent 
  1195.             foreach($eshop->getLanguages() as $lang) {
  1196.                 if ($lang->getLangKey() == 'en') {
  1197.                     $key 'en_us';
  1198.                 } elseif ($lang->getLangKey() == 'de') {
  1199.                     $key 'de_de';
  1200.                 } elseif ($lang->getLangKey() == 'es') {
  1201.                     $key 'es_es';
  1202.                 } elseif ($lang->getLangKey() == 'cs') {
  1203.                     $key 'cs_cs';
  1204.                 } else {
  1205.                     $key 'en_us';
  1206.                 }
  1207.                 //$webPage->setLocale('cs');
  1208.                 $webPage->setLocale($lang->getLangKey());
  1209.                 $dem->refresh($webPage);
  1210.                 $fieldLabel $this->translator->trans('webpages.page_title').' ['.$lang->getLangKey().']';
  1211.                 $fieldValue $webPage->getWebPageName();
  1212.                 $formBuilder->add('webPageName_'.$lang->getLangKey(), TextType::class, array(
  1213.                     'required' => false,
  1214.                     'label' => $fieldLabel,
  1215.                     'attr' => array('class' => 'text_form''size' => 55'value' => $webPage->getWebPageName()),
  1216.                     'label_attr' => array('class' => 'form_field_label'),
  1217.                     'data' => $fieldValue,
  1218.                     'mapped' => false
  1219.                 ));
  1220.                 $fieldLabel $this->translator->trans('webpages.page_content').' ['.$lang->getLangKey().']';
  1221.                 $fieldValue $webPage->getWebPageContent();
  1222.                 //print('<br>eshopPage locale: '.$lang->getLangKey());
  1223.                 
  1224.                 $formBuilder->add('webPageContent_'.$lang->getLangKey(), TextareaType::class, array(
  1225.                         'required' => false,
  1226.                         'label' => $fieldLabel,
  1227.                         'attr' => array('class' => 'medium_textarea''size' => 35'value' => $fieldValue),
  1228.                         'label_attr' => array('class' => 'form_field_label'),
  1229.                         'data' => $fieldValue,
  1230.                         'mapped' => false
  1231.                 ));   
  1232.             }
  1233.             // SEO Content
  1234. //            foreach($eshop->getLanguages() as $lang) {
  1235. //
  1236. //                $webPage->setLocale($lang->getLangKey());
  1237. //                $dem->refresh($webPage);
  1238. //
  1239. //                $fieldLabel = $this->translator->trans('webpages.seo_title').' ['.$lang->getLangKey().']';
  1240. //                $fieldValue = $webPage->getSeoTitle();
  1241. //
  1242. //                $formBuilder->add('seoTitle_'.$lang->getLangKey(), TextType::class, array(
  1243. //                        'required' => false,
  1244. //                        'label' => $fieldLabel,
  1245. //                        'attr' => array('class' => 'text_form', 'size' => 55, 'value' => $fieldValue),
  1246. //                        'label_attr' => array('class' => 'form_field_label')
  1247. //                ));
  1248. //
  1249. //                $fieldLabel = $this->translator->trans('webpages.seo_description').' ['.$lang->getLangKey().']';
  1250. //                $fieldValue = $webPage->getSeoDescription();
  1251. //
  1252. //                $formBuilder->add('seoDescription_'.$lang->getLangKey(), TextareaType::class, array(
  1253. //                        'required' => false,
  1254. //                        'label' => $fieldLabel,
  1255. //                        'attr' => array('class' => 'medium_textarea', 'cols' => 55, 'rows' => 4, 'value' => $fieldValue),
  1256. //                        'label_attr' => array('class' => 'form_field_label'),
  1257. //                        'data' => $fieldValue,
  1258. //                ));
  1259. //            }
  1260.             // SEO Content
  1261.             foreach($eshop->getLanguages() as $lang) {
  1262.                 $webPage->setLocale($lang->getLangKey());
  1263.                 $dem->refresh($webPage);
  1264.                 $fieldLabel $this->translator->trans('webpages.seo_title').' ['.$lang->getLangKey().']';
  1265.                 $fieldValue $webPage->getSeoTitle();
  1266.                 $formBuilder->add('seoTitle_'.$lang->getLangKey(), TextType::class, array(
  1267.                     'required' => false,
  1268.                     'label' => $fieldLabel,
  1269.                     'attr' => array('class' => 'text_form''size' => 55'value' => $fieldValue),
  1270.                     'label_attr' => array('class' => 'form_field_label'),
  1271.                     'mapped' => false
  1272.                 ));
  1273.                 //print('<br>eshopPage locale 2: '.$lang->getLangKey());
  1274.                 $fieldLabel $this->translator->trans('webpages.seo_description').' ['.$lang->getLangKey().']';
  1275.                 $fieldValue $webPage->getSeoDescription();
  1276.                 $formBuilder->add('seoDescription_'.$lang->getLangKey(), TextareaType::class, array(
  1277.                     'required' => false,
  1278.                     'label' => $fieldLabel,
  1279.                     'attr' => array('class' => 'text_form''cols' => 55'rows' => 4'value' => $fieldValue),
  1280.                     'label_attr' => array('class' => 'form_field_label'),
  1281.                     'data' => $fieldValue,
  1282.                     'mapped' => false
  1283.                 ));
  1284.             }
  1285.         } else {
  1286.             /* website page  */
  1287.             /*
  1288.             $formBuilder->add('webPageContent', CKEditorType::class, array(
  1289.                     'required' => false,
  1290.                     'label' => $this->translator->trans('webpages.page_content'),
  1291.                     'attr' => array('class' => 'textarea_form', 'cols' => 101, 'rows' => 11),
  1292.                     'label_attr' => array('class' => 'form_textarea_label2'),
  1293.                     'data' => $webPage->getWebPageContent(),
  1294.             ));       
  1295.             */
  1296.             // webPageContent 
  1297.             foreach($web->getLanguages() as $lang) {
  1298.                 $webPage->setLocale($lang->getLangKey());
  1299.                 $dem->refresh($webPage);
  1300.                 $fieldLabel $this->translator->trans('webpages.page_title').' ['.$lang->getLangKey().']';
  1301.                 $fieldValue $webPage->getWebPageName();
  1302.                 $formBuilder->add('webPageName_'.$lang->getLangKey(), TextType::class, array(
  1303.                     'required' => false,
  1304.                     'label' => $fieldLabel,
  1305.                     'attr' => array('class' => 'text_form''size' => 55'value' => $webPage->getWebPageName()),
  1306.                     'label_attr' => array('class' => 'form_field_label'),
  1307.                     'data' => $fieldValue,
  1308.                     'mapped' => false
  1309.                 ));
  1310.                 $fieldLabel $this->translator->trans('webpages.page_content').' ['.$lang->getLangKey().']';
  1311.                 $fieldValue $webPage->getWebPageContent();
  1312.                 //CKEditorType::class
  1313.                 //TextareaType 
  1314.                 //print("<br>qqw webpages.page_content: ".$fieldValue);
  1315.                 //@todo - CKEditorType does not render
  1316.                 //CKEditorType::class
  1317.                 $formBuilder->add('webPageContent_'.$lang->getLangKey(), CodeEditorType::class, array(
  1318.                         'required' => false,
  1319.                         'label' => $fieldLabel,
  1320.                         'attr' => array('class' => 'medium_textarea''size' => 35'value' => $fieldValue),
  1321.                         'label_attr' => array('class' => 'form_field_label'),
  1322.                         'data' => $fieldValue,
  1323.                         //'config' => array('toolbar' => 'full'),
  1324.                         'mapped' => false
  1325.                 ));   
  1326.             }
  1327.             // SEO Content
  1328.             foreach($web->getLanguages() as $lang) {
  1329.                 $webPage->setLocale($lang->getLangKey());
  1330.                 $dem->refresh($webPage);        
  1331.                 $fieldLabel $this->translator->trans('webpages.seo_title').' ['.$lang->getLangKey().']';
  1332.                 $fieldValue $webPage->getSeoTitle();
  1333.                 
  1334.                 $formBuilder->add('seoTitle_'.$lang->getLangKey(), TextType::class, array(
  1335.                         'required' => false,
  1336.                         'label' => $fieldLabel,
  1337.                         'attr' => array('class' => 'text_form''size' => 55'value' => $fieldValue),
  1338.                         'label_attr' => array('class' => 'form_field_label'),
  1339.                         'mapped' => false
  1340.                 ));
  1341.                 $fieldLabel $this->translator->trans('webpages.seo_description').' ['.$lang->getLangKey().']';
  1342.                 $fieldValue $webPage->getSeoDescription();
  1343.                 
  1344.                 $formBuilder->add('seoDescription_'.$lang->getLangKey(), TextareaType::class, array(
  1345.                         'required' => false,
  1346.                         'label' => $fieldLabel,
  1347.                         'attr' => array('class' => 'text_form''cols' => 55'rows' => 4'value' => $fieldValue),
  1348.                         'label_attr' => array('class' => 'form_field_label'),
  1349.                         'data' => $fieldValue,
  1350.                         'mapped' => false
  1351.                 ));     
  1352.             } 
  1353.         }      
  1354.          
  1355.         $imageLabel $this->translator->trans('image.main');
  1356.         if(!empty($webPage->getImageFile())) {
  1357.             $imageLabel .= " [ ".$webPage->getImageFile()." ]";
  1358.         }
  1359.         
  1360.         $formBuilder->add('imageFile'FileType::class, array(
  1361.                 'required' => false,
  1362.                 'label' => $imageLabel,
  1363.                 'attr' => array('class' => 'text_form_file''size' => 22'value' => 'vvx'),
  1364.                 'label_attr' => array('class' => 'form_field_label2'),
  1365.                 'mapped' => false
  1366.         ));
  1367.         $formBuilder->add('webPageDescription'TextareaType::class, array(
  1368.                 'required' => false,
  1369.                 'label' => $this->translator->trans('webpages.page_description'),
  1370.                 'attr' => array('class' => 'textarea_form''cols' => 55'rows' => 4'value' => $webPage->getWebPageDescription()),
  1371.                 'label_attr' => array('class' => 'form_textarea_label'),
  1372.                 'data' => $webPage->getWebPageDescription(),
  1373.         ));   
  1374.         if(!empty($webPage->getDatePublished())) {
  1375.             $sDatePublished $webPage->getDatePublished()->format("Y-m-d H:i:s");
  1376.         } else {
  1377.             $sDatePublished '';
  1378.         }
  1379.       
  1380.             $formBuilder->add('datePublished'DateTimeType::class, array(
  1381.                     'required' => false,
  1382.                     'label' => $this->translator->trans('webpages.date_published'),
  1383.                     'attr' => array('class' => 'text_form''size' => 22'value' => $sDatePublished),
  1384.                     'label_attr' => array('class' => 'form_field_label')
  1385.             ));
  1386.         $formBuilder->add('priority'TextType::class, array(
  1387.                 'required' => false,
  1388.                 'label' => $this->translator->trans('system.priority'),
  1389.                 'attr' => array('class' => 'text_form''size' => 5'value' => $webPage->getPriority()),
  1390.                 'label_attr' => array('class' => 'form_field_label')
  1391.         ));
  1392.         /* we add page types list */
  1393.         $webPageTypes = array();
  1394.         $selectedType '';
  1395.         foreach($webPage::PAGETYPE as $key=>$webPageType)
  1396.         {
  1397.             $webPageTypes[$this->translator->trans($key)] = $webPageType;
  1398.         
  1399.             /* we look for selected web page type */
  1400.             if($webPageType == $webPage->getWebPageType()) {
  1401.                 $selectedType $webPageType;
  1402.             }
  1403.         }
  1404. //        print('<br>webPageType selected: '.$selectedType);
  1405. //        print('<br>getWebPageType: '.$webPage->getWebPageType());
  1406.         
  1407.         $formBuilder->add('webPageType'ChoiceType::class, array(
  1408.                 'choices' => $webPageTypes,
  1409.                 'required' => false,
  1410.                 'mapped' => false,
  1411.                 'multiple' => false,
  1412.                 'expanded' => true,
  1413.                 'placeholder' => false,
  1414.                 'data' => $selectedType
  1415.         ));        
  1416.     
  1417.         $formBuilder->add('save2'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  1418.                 'attr' => array('class' => 'butt_big')));
  1419.     
  1420.         $form $formBuilder->getForm();
  1421.         $form->handleRequest($request);
  1422.     
  1423.         if ($request->getMethod() == 'POST') {
  1424.     
  1425.             //$form->bindRequest($request);
  1426.             //print("<br>qqw POST");
  1427.     
  1428.             //if ($form->isValid()) {
  1429.                 //print("<br>qqw POST 2");
  1430.                 $formData $form->getData();
  1431.     
  1432.                 /* we load web page data from register form into object */
  1433.                 $webPage->setWebPageName($formData->getWebPageName());
  1434.                 /* for eshop - we save page content in various languages */
  1435.                 if(!empty($webPage->getEshopId()) && ($webPage->getEshopId() > 0)) {
  1436.                     //print("<br>qqw post eshop page ");
  1437.                     /* we get e-shop */
  1438.                     $eshop $em->getRepository(Eshop::class)->getEshop($webPage->getEshopId());
  1439.                     foreach($eshop->getLanguages() as $lang) {
  1440.                         if(!empty($form['webPageName_' $lang->getLangKey()])) {
  1441.                             $webPage->setWebPageName($form['webPageName_' $lang->getLangKey()]->getData());
  1442.                         }
  1443.                         if(!empty($form['webPageContent_' $lang->getLangKey()])) {
  1444.                             $webPage->setWebPageContent($form['webPageContent_' $lang->getLangKey()]->getData());
  1445.                         }
  1446.                         if(!empty($form['seoTitle_' $lang->getLangKey()]->getData())) {
  1447.                             $webPage->setSeoTitle($form['seoTitle_' $lang->getLangKey()]->getData());
  1448.                         }
  1449.                         if(!empty($form['seoDescription_' $lang->getLangKey()]->getData())) {
  1450.                             $webPage->setSeoDescription($form['seoDescription_' $lang->getLangKey()]->getData());
  1451.                         }
  1452.                         $webPage->setLocale($lang->getLangKey());
  1453.                         //$webPage->setTranslatableLocale($key);
  1454.                         //print('<br>persist locale: '.$lang->getLangKey());
  1455.                         //print('<br>page content: '.$form['webPageContent_' . $lang->getLangKey()]->getData());
  1456.                         $dem->persist($webPage);
  1457.                         $dem->flush();
  1458.                     }
  1459. //                    foreach($eshop->getLanguages() as $lang) {
  1460. //                        $webPage->setLocale($lang->getLangKey());
  1461. //
  1462. //                        if(!empty($form['webPageContent_'.$lang->getLangKey()])) {
  1463. //                            $webPage->setWebPageContent($form['webPageContent_'.$lang->getLangKey()]->getData());
  1464. //                        }
  1465. //                        if(!empty($form['seoTitle_'.$lang->getLangKey()])) {
  1466. //                            $webPage->setSeoTitle($form['seoTitle_'.$lang->getLangKey()]->getData());
  1467. //                        }
  1468. //                        if(!empty($form['seoDescription_'.$lang->getLangKey()])) {
  1469. //                            $webPage->setSeoDescription($form['seoDescription_'.$lang->getLangKey()]->getData());
  1470. //                        }
  1471. //
  1472. //                        $dem->persist($webPage);
  1473. //                        $dem->flush();
  1474. //                    }
  1475.                 } else {
  1476.                     //we setup web page page content
  1477.                     //print("<br>qqw post webpages page");
  1478.                     $webPage->setPriority($formData->getPriority());
  1479.                     foreach($web->getLanguages() as $lang) {
  1480.                         $webPage->setWebPageName($form['webPageName_'.$lang->getLangKey()]->getData());
  1481.                         $webPage->setWebPageContent($form['webPageContent_'.$lang->getLangKey()]->getData());
  1482.                         $webPage->setSeoTitle($form['seoTitle_'.$lang->getLangKey()]->getData());
  1483.                         $webPage->setSeoDescription($form['seoDescription_'.$lang->getLangKey()]->getData());
  1484.                         $webPage->setLocale($lang->getLangKey());
  1485.                         //$webPage->setTranslatableLocale($key);
  1486.                         print('<br>persist locale: '.$key);
  1487.                         $dem->persist($webPage);
  1488.                         $dem->flush();
  1489.                     }
  1490.                     /* we handle image */
  1491.                     $image1 $request->files->get('form')['imageFile'];
  1492.                     //print('<br>QQW image 1: ');
  1493.                     //\Doctrine\Common\Util\Debug::dump($image1);
  1494.                     
  1495.                     /* we check user folder for user files */
  1496.                     if(!$this->isUserFolder($request)) {
  1497.                         $this->createUserFolder($request);
  1498.                     }
  1499.                     $userDirs $this->getUserFolderPaths($request);
  1500.                     if(!empty($image1)) {
  1501.                       $fileName1 md5(uniqid()).'.'.$image1->guessExtension();
  1502.                       $image1->move($userDirs['images'], $fileName1);
  1503.                       $webPage->setImageFile($fileName1);
  1504.                     }
  1505.                 }
  1506.                 $webPageType $form['webPageType']->getData();
  1507.                 /* if homepage then we unlink old homepage(s) */
  1508.                 if($form['webPageType']->getData() == $webPage::PAGETYPE['PAGETYPE_HOMEPAGE']) {
  1509.                     /* for website */
  1510.                     if(!empty($webPage->getWebsiteId()) && ($webPage->getWebsiteId() > 0)) {
  1511.                         $dem->getRepository(WebPage::class)->emptyPageHome($web->getWebsiteId(), $webPage->getWebPageId());
  1512.                     }            
  1513.                     /* for eshop */
  1514.                     if(!empty($webPage->getEshopId()) && ($webPage->getEshopId() > 0)) {
  1515.                         $dem->getRepository(WebPage::class)->emptyEshopHome($webPage->getEshopId(), $webPage->getWebPageId());
  1516.                     }             
  1517.             
  1518.                 }                
  1519.                 
  1520.                 /* if header then we unlink old page header(s) */
  1521.                 
  1522.                 if($form['webPageType']->getData() == $webPage::PAGETYPE['PAGETYPE_HEADER']) {
  1523.                     // for website 
  1524.                     if(!empty($webPage->getWebsiteId()) && ($webPage->getWebsiteId() > 0)) {
  1525.                         print('<br>------------------------  setting PAGETYPE_HEADER: ');
  1526.                         $dem->getRepository(WebPage::class)->emptyPageHeader($web->getWebsiteId(), $webPage->getWebPageId());
  1527.                     }            
  1528.                     // for eshop 
  1529.                     if(!empty($webPage->getEshopId()) && ($webPage->getEshopId() > 0)) {
  1530.                         $dem->getRepository(WebPage::class)->emptyEshopHeader($webPage->getEshopId(), $webPage->getWebPageId());
  1531.                     }            
  1532.                     
  1533.                 }
  1534.                 
  1535.                 
  1536.                 /* if footer then we unlink old page footer(s) */
  1537.                 if($form['webPageType']->getData() == $webPage::PAGETYPE['PAGETYPE_FOOTER']) {
  1538.                     /* for website */
  1539.                     if(!empty($webPage->getWebsiteId()) && ($webPage->getWebsiteId() > 0)) {
  1540.                         $dem->getRepository(WebPage::class)->emptyPageFooter($web->getWebsiteId(), $webPage->getWebPageId());
  1541.                     }            
  1542.                     /* for eshop */
  1543.                     if(!empty($webPage->getEshopId()) && ($webPage->getEshopId() > 0)) {
  1544.                         $dem->getRepository(WebPage::class)->emptyEshopFooter($webPage->getEshopId(), $webPage->getWebPageId());
  1545.                     }               
  1546.             
  1547.                 }   
  1548.                 /* if leftColumn then we unlink old leftColumn(s) */
  1549.                 if($form['webPageType']->getData() == $webPage::PAGETYPE['PAGETYPE_LEFT_COLUMN']) {
  1550.                     /* for website */
  1551.                     if(!empty($webPage->getWebsiteId()) && ($webPage->getWebsiteId() > 0)) {
  1552.                         $dem->getRepository(WebPage::class)->emptyLeftColumn($web->getWebsiteId(), $webPage->getWebPageId());
  1553.                     }                        
  1554.                 }
  1555.                 //print('<br>---------------------------- qqw PAGETYPE_HEADER: '.$webPage::PAGETYPE['PAGETYPE_HEADER']);
  1556.                 //print('<br>---------------------------- qqw PAGETYPE_COMMON: '.$webPage::PAGETYPE['PAGETYPE_COMMON']);
  1557.                 /* we set page type */
  1558.                 //print('<br>---------------------------- qqw set webPageType: '.(int)$form['webPageType']->getData());
  1559.                 //print('<br>---------------------------- qqw set webPageType 2: '.$webPageType);
  1560.                 
  1561.                 $webPage->setWebPageType($webPageType);
  1562.                 //$this->addFlash('notice', 'webPageType::'.$form['webPageType']->getData());
  1563.                 $webPage->setDatePublished($formData->getDatePublished());
  1564.                  
  1565.                 /* we persist and save */
  1566.                 $dem->persist($webPage);
  1567.                 $dem->flush();
  1568.     
  1569.                 $this->addFlash('notice'$this->translator->trans('webpages.updated'));
  1570.     
  1571.                 return $this->redirectToRoute('webPageEdit', array('webPageId' => $webPage->getWebPageId()));
  1572.     
  1573.             //}
  1574.     
  1575.         }
  1576.         //phpinfo();
  1577.         /* we render data */
  1578.         return $this->render('webPageEdit.html.twig',
  1579.                 array('headerData' => $this -> getPageHeader($request),
  1580.                         'form' => $formBuilder->getForm()->createView(),
  1581.                         'webPage' => $webPage,
  1582.                         'menu' => $this -> adminMenu($request),
  1583.                         'mainMenu' => $this -> adminMainMenu($request),
  1584.                         'user' => $user,
  1585.                 )
  1586.                 );
  1587.     
  1588.     }   
  1589.     /**
  1590.      * @Route("/webPageList", name="webPageList")
  1591.      */
  1592.     public function webPageListAction(Request $request)
  1593.     {
  1594.         /* we load session data */
  1595.         parent::init($request);     
  1596.         $session $request->getSession();
  1597.         
  1598.         /* we load entity managers */
  1599.         $em $this->doctrine->getManager();
  1600.         $dem $this->doctrine->getManager('dynamic_em');
  1601.       
  1602.       /* we get user */ 
  1603.       $userId $session->get('user')->getUserId();
  1604.       $user $em->getRepository(User::class)->getUser($userId);
  1605.       $userDirs $this->getUserFolderPaths($request);
  1606.       
  1607.       /* we get current e-shop */
  1608.       $eshop $em->getRepository(Eshop::class)->getCurrentEshop($userId);
  1609.          
  1610.       //$productList = $dem->getRepository('AppBundle:Product')->getProductList();
  1611.       $webPageList $dem->getRepository(WebPage::class)->getWebPageListByEshop($eshop->getEshopId());
  1612.         
  1613.         //echo $request->attributes->get('_route');
  1614.         //echo $request->getPathInfo();
  1615.         
  1616.         /* we render data */
  1617.         return $this->render('productListEdit.html.php',
  1618.                 array('headerData' => $this -> getPageHeader($request),
  1619.                       'productList' => $productList,
  1620.                       'productThumbs' => $productThumbs,
  1621.                       'userDirs' => $userDirs,
  1622.                       'menu' => $this -> adminMenu($request),
  1623.                         'mainMenu' => $this -> adminMainMenu($request),
  1624.                 )
  1625.                 );
  1626.     
  1627.     }    
  1628.     /**
  1629.      * @Route("/webPageRemove/{webPageId}", name="webPageRemove")
  1630.      */
  1631.     public function webPageRemoveAction(Request $request$webPageId)
  1632.     {
  1633.         /* we load session data */
  1634.         parent::init($request);
  1635.         $session $request->getSession();
  1636.         
  1637.         /* we load entity managers */
  1638.         $em $this->doctrine->getManager();
  1639.         $dem $this->doctrine->getManager('dynamic_em');
  1640.          
  1641.         /* we get user */ 
  1642.         $userId $session->get('user')->getUserId();
  1643.         $user $em->getRepository(User::class)->getUser($userId);
  1644.         
  1645.         /* we get current e-shop */
  1646.         //$eshop = $em->getRepository(Eshop::class)->getCurrentEshop($userId);
  1647.         //$eshopCurrency = $em->getRepository('AppBundle:Currency')->getCurrency($eshop->getPreferredCurrencyId());
  1648.  
  1649.         /* we get webPage */
  1650.         $webPage $dem->getRepository(WebPage::class)->getWebPage($webPageId);
  1651.         /* we remove price levels */
  1652.         //$priceLevelCollection = $dem->getRepository('AppBundle:PriceLevel')->getPriceLevelList();
  1653.         /* we remove categories */
  1654.         //$categoryCollection = $dem->getRepository(Eshop::class)->getCategoryListByEshop($eshop->getEshopId());
  1655.         /* we remove product groups */
  1656.         //$productGroupCollection = $dem->getRepository('AppBundle:ProductGroup')->getProductGroupList();
  1657.         //die('<br>qqw removing product');
  1658.         $dem->remove($webPage);
  1659.         
  1660.         //$em->persist($user);
  1661.         $dem->flush();
  1662.         
  1663.         $this->addFlash('notice''Web page was removed.');
  1664.         
  1665.         return $this->redirectToRoute('productListEdit');
  1666.     }            
  1667.     
  1668.     /**
  1669.      * @Route("/createHeader", name="createHeader")
  1670.      */
  1671.     public function createHeaderAction(Request $request)
  1672.     {
  1673.     
  1674.         /* we load session data */
  1675.         parent::init($request);
  1676.     
  1677.         $session $request->getSession();
  1678.     
  1679.         /* we load entity managers */
  1680.         $em $this->doctrine->getManager();
  1681.         $dem $this->doctrine->getManager('dynamic_em');
  1682.          
  1683.         /* we get current user */
  1684.         $currentUserId $session->get('user')->getUserId();
  1685.         $user $em->getRepository(User::class)->getUser($currentUserId);
  1686.     
  1687.         $webPage = new WebPage;
  1688.         $webPage->setWebPageName("Page Header");    
  1689.     
  1690.       if(!empty($request->query->get('eshopHeader'))) {
  1691.           /* we set current eshop */
  1692.           $currentEshop $em->getRepository(Eshop::class)->getCurrentEshop($currentUserId);
  1693.           $webPage->setEshopId($currentEshop->getEshopId());            
  1694.       } else {
  1695.           /* we set current website */
  1696.           $currentWeb $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  1697.           $webPage->setWebsiteId($currentWeb->getWebsiteId());      
  1698.       }
  1699.         $webPage->setWebPageType($webPage::PAGETYPE['PAGETYPE_HEADER']);
  1700.         /* we persist and save */
  1701.         $dem->persist($webPage);
  1702.         $dem->flush();
  1703.         
  1704.         $this->addFlash('notice''Header was created.');
  1705.         
  1706.         return $this->redirectToRoute('webPageEdit', array('webPageId' => $webPage->getWebPageId()));
  1707.     }    
  1708.     
  1709.     /**
  1710.      * @Route("/createFooter", name="createFooter")
  1711.      */
  1712.     public function createFooterAction(Request $request)
  1713.     {
  1714.     
  1715.         /* we load session data */
  1716.         parent::init($request);
  1717.     
  1718.         $session $request->getSession();
  1719.     
  1720.         /* we load entity managers */
  1721.         $em $this->doctrine->getManager();
  1722.         $dem $this->doctrine->getManager('dynamic_em');
  1723.     
  1724.         /* we get current user */
  1725.         $currentUserId $session->get('user')->getUserId();
  1726.         $user $em->getRepository(User::class)->getUser($currentUserId);
  1727.     
  1728.         $webPage = new WebPage;
  1729.         $webPage->setWebPageName("Page Footer");    
  1730.     
  1731.       if(!empty($request->query->get('eshopFooter'))) {
  1732.           /* we set current eshop */
  1733.           $currentEshop $em->getRepository(Eshop::class)->getCurrentEshop($currentUserId);
  1734.           $webPage->setEshopId($currentEshop->getEshopId());            
  1735.       } else {
  1736.           /* we set current website */
  1737.           $currentWeb $em->getRepository(Website::class)->getCurrentWebsite($currentUserId);
  1738.           $webPage->setWebsiteId($currentWeb->getWebsiteId());      
  1739.       }    
  1740.         $webPage->setWebPageType($webPage::PAGETYPE['PAGETYPE_FOOTER']);
  1741.     
  1742.         /* we persist and save */
  1743.         $dem->persist($webPage);
  1744.         $dem->flush();
  1745.          
  1746.         $this->addFlash('notice''Footer was created.');
  1747.          
  1748.         return $this->redirectToRoute('webPageEdit', array('webPageId' => $webPage->getWebPageId()));
  1749.     
  1750.     }      
  1751.     /**
  1752.      * @Route("/web/{webId}/register", name="webRegister")
  1753.      */
  1754.     public function webRegisterAction(Request $request$webId)
  1755.     {
  1756.     
  1757.         /* we load session data */
  1758.         parent::init($request);
  1759.         $session $request->getSession();
  1760.     
  1761.         /* we load entity managers */
  1762.         $em $this->doctrine->getManager();
  1763.         $dem $this->doctrine->getManager('dynamic_em');
  1764.     
  1765.         /* we get current web */
  1766.         $web $em->getRepository(Website::class)->getWebsite($webId);
  1767.          
  1768.         /* we check if web exists */
  1769.         if($web === null) {
  1770.             $this->addFlash('error''Web with tis ID does not exists.');
  1771.             return $this->redirectToRoute('webHome');
  1772.         }
  1773.         /* we load header for the current website */
  1774.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  1775.         /* we load footer for the current website */
  1776.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  1777.          
  1778.         /* we load header for the current website */
  1779.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  1780.         if(!empty($webMenuMain)) {
  1781.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  1782.         } else {
  1783.            $webMenuItemList = array();
  1784.         }
  1785.         $user $em->getRepository(User::class)->getUser($web->getUserId());
  1786.         /* we get wireframe */
  1787.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  1788.         /*
  1789.         print('<hr>qqw wireframe: ');
  1790.         \Doctrine\Common\Util\Debug::dump($wireFrame);
  1791.         */
  1792.         $webMenuVertical null;
  1793.         $webMenuVerticalItemList null;
  1794.         /* we load left column - vertical menu for the current website */
  1795.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  1796.             
  1797.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  1798.             if(!empty($webMenuVertical)) {
  1799.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  1800.             }
  1801.         }
  1802.         /* we prepare data for the form */
  1803.         if(!empty($request->request->get('form')['company'])) {
  1804.             $company $request->request->get('form')['company'];
  1805.         } else {
  1806.             $company '';
  1807.         }
  1808.         if(!empty($request->request->get('form')['email'])) {
  1809.             $email $request->request->get('form')['email'];
  1810.         } else {
  1811.             $email '';
  1812.         }
  1813.         if(!empty($request->request->get('form')['telefon'])) {
  1814.             $telefon $request->request->get('form')['telefon'];
  1815.         } else {
  1816.             $telefon '';
  1817.         }
  1818.         if(!empty($request->request->get('form')['address'])) {
  1819.             $address $request->request->get('form')['address'];
  1820.         } else {
  1821.             $address '';
  1822.         }
  1823.         if(!empty($request->request->get('form')['username'])) {
  1824.             $username $request->request->get('form')['username'];
  1825.         } else {
  1826.             $username '';
  1827.         }
  1828.         if(!empty($request->request->get('form')['password'])) {
  1829.             $password $request->request->get('form')['password'];
  1830.         } else {
  1831.             $password '';
  1832.         }
  1833.         if(!empty($request->request->get('form')['password_retype'])) {
  1834.             $password_retype $request->request->get('form')['password_retype'];
  1835.         } else {
  1836.             $password_retype '';
  1837.         }       
  1838.         
  1839.         /* we build register form */
  1840.         $formBuilder $this->createFormBuilder();
  1841.         
  1842.         $formBuilder->add('company'TextType::class, array(
  1843.                 'required' => false,
  1844.                 'label' => $this->translator->trans('user.company'),
  1845.                 'attr' => array('class' => 'text_form''size' => 35'value' => $company),
  1846.                 'label_attr' => array('class' => 'form_field_label')
  1847.         ));
  1848.         
  1849.         $formBuilder->add('email'EmailType::class, array(
  1850.                 'required' => true,
  1851.                 'attr' => array('class' => 'text_form''size' => 35'value' => $email),
  1852.                 'label_attr' => array('class' => 'form_field_label_required'),
  1853.         ));
  1854.         
  1855.         $formBuilder->add('telefon'TextType::class, array(
  1856.                 'required' => false,
  1857.                 'label' => $this->translator->trans('user.telephone'),
  1858.                 'attr' => array('class' => 'text_form''size' => 35'value' => $telefon),
  1859.                 'label_attr' => array('class' => 'form_field_label'),
  1860.         ));
  1861.         
  1862.         $formBuilder->add('address'TextareaType::class, array(
  1863.                 'required' => false,
  1864.                 'label' => $this->translator->trans('user.address'),
  1865.                 'attr' => array('class' => 'textarea_form''cols' => 30'rows' => 3'value' => $address),
  1866.                 'label_attr' => array('class' => 'form_textarea_label'),
  1867.         ));
  1868.         
  1869.         $formBuilder->add('username'TextType::class, array(
  1870.                 'required' => true,
  1871.                 'label' => $this->translator->trans('user.username'),
  1872.                 'empty_data'  => '',
  1873.                 'attr' => array('class' => 'text_form''size' => 35'value' => $username),
  1874.                 'label_attr' => array('class' => 'form_field_label_required'),
  1875.         ));
  1876.         
  1877.         $formBuilder->add('password'PasswordType::class, array(
  1878.                 'required' => true,
  1879.                 'label' => $this->translator->trans('user.password'),
  1880.                 'attr' => array('class' => 'text_form''size' => 35'value' => $password),
  1881.                 'label_attr' => array('class' => 'form_field_label_required'),
  1882.         ));
  1883.         
  1884.         $formBuilder->add('password_retype'PasswordType::class, array(
  1885.                 'required' => true,
  1886.                 'label' => $this->translator->trans('user.password_retype'),
  1887.                 'attr' => array('class' => 'text_form''size' => 35'value' => $password_retype),
  1888.                 'label_attr' => array('class' => 'form_field_label_required'),
  1889.         ));      
  1890.         
  1891.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.send'),
  1892.                 'attr' => array('class' => 'butt_big')));
  1893.         
  1894.         $form $formBuilder->getForm();
  1895.         
  1896.         $form->handleRequest($request);
  1897.         
  1898.         if ($request->getMethod() == 'POST') {
  1899.         
  1900.             //$form->bindRequest($request);
  1901.             if ($form->isValid()) {
  1902.                 // perform some action, such as save the object to the database
  1903.                 //print('<br>qqw post form 2: ');
  1904.         
  1905.                 /* we check if this contact already exists */
  1906.                 $contactExist $dem->getRepository('AppBundle:Contact')->getContactFromUsername($request->request->get('form')['username']);
  1907.         
  1908.                 /*
  1909.                 print('<br>qqw contact exists: ');
  1910.                 \Doctrine\Common\Util\Debug::dump($contactExist);
  1911.                 */
  1912.                 if($contactExist === null) {
  1913.         
  1914.                     /* we check if the password fields are the same */
  1915.                     $password $request->request->get('form')['password'];
  1916.                     $retypePassword $request->request->get('form')['password_retype'];
  1917.                     if($password != '' && $password == $retypePassword) {
  1918.                         //print('<br>We create new contact');
  1919.                         $contact = new Contact;
  1920.         
  1921.                         $password md5($request->request->get('form')['password']);
  1922.         
  1923.                         /* we load contact data from register form into contact object */
  1924.                         $contact->setCompanyName($request->request->get('form')['company']);
  1925.                         $contact->setContactUserName($request->request->get('form')['username']);
  1926.                         $contact->setEmail($request->request->get('form')['email']);
  1927.                         $contact->setAddress1($request->request->get('form')['address']);
  1928.                         $contact->setContactUserPassword($password);
  1929.                         /*
  1930.                         print('<br>qqw user exists: ');
  1931.                         \Doctrine\Common\Util\Debug::dump($contact);
  1932.                         */
  1933.         
  1934.                         /* we persist and save contact */
  1935.                         $dem->persist($contact);
  1936.                         $dem->flush();
  1937.         
  1938.                         $this->addFlash('notice''New customer account was created.');
  1939.                         
  1940.                         /* we load logged contact into session */
  1941.                         $session $request->getSession();
  1942.                         $session->set('contact'$contact);                     
  1943.                         
  1944.                         return $this->redirectToRoute('webHomeContact', array('webId' => $webId));
  1945.         
  1946.                     }
  1947.                     else {
  1948.                         $this->addFlash('error''Both password fields must be the same.');
  1949.                     }
  1950.         
  1951.                 }
  1952.                 else {
  1953.                     $this->addFlash('error''Account with this username already exists.');
  1954.                 }
  1955.         
  1956.             }
  1957.         
  1958.         }       
  1959.         
  1960.         /* we render data */
  1961.         return $this->render('webRegister.html.php',
  1962.                 array(  'headerData' => $this -> getPageHeader($request),
  1963.                         'form' => $formBuilder->getForm()->createView(),
  1964.                         'menu' => $this -> adminMenu($request),
  1965.                         'mainMenu' => $this -> adminMainMenu($request),
  1966.                         'web' => $web,
  1967.                         'user' => $user,
  1968.                         'wireFrame' => $wireFrame,
  1969.                         'webPageHeader' => $webPageHeader,
  1970.                         'webPageFooter' => $webPageFooter,  
  1971.                         'webMenuVertical' => $webMenuVertical,  
  1972.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,     
  1973.                 )
  1974.                 );
  1975.     
  1976.     }    
  1977.     /**
  1978.      * @Route("/web/{webId}/logout", name="webLogout")
  1979.      */
  1980.     public function webLogoutAction(Request $request$webId) {
  1981.     
  1982.         /* we load session data */
  1983.         parent::init($request);
  1984.     
  1985.         /* we unload logged user session */
  1986.         $session $request->getSession();
  1987.         $session->set('contact'null);
  1988.         $this->addFlash('notice''User was logged out. ');
  1989.     
  1990.         return $this->redirectToRoute('web', array('webId' => $webId));
  1991.     
  1992.     }    
  1993.     /**
  1994.      * @Route("/web/{webId}/login", name="webLogin")
  1995.      */
  1996.     public function webLoginAction(Request $request$webId)
  1997.     {
  1998.     
  1999.         /* we load session data */
  2000.         parent::init($request);
  2001.         $session $request->getSession();
  2002.     
  2003.         /* we load entity managers */
  2004.         $em $this->doctrine->getManager();
  2005.         $dem $this->doctrine->getManager('dynamic_em');
  2006.     
  2007.         /* we get current web */
  2008.         $web $em->getRepository(Website::class)->getWebsite($webId);
  2009.          
  2010.         /* we check if web exists */
  2011.         if($web === null) {
  2012.             $this->addFlash('error''Web with tis ID does not exists.');
  2013.             return $this->redirectToRoute('webHome');
  2014.         }
  2015.         /* if there is a contact logged in then we redirect to contacts home page */
  2016.         if(!empty($session->get('contact'))) {
  2017.             return $this->redirectToRoute('webHomeContact', array('webId' => $webId));
  2018.         }
  2019.         /* we load header for the current website */
  2020.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  2021.         /* we load footer for the current website */
  2022.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  2023.          
  2024.         /* we load header for the current website */
  2025.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  2026.         if(!empty($webMenuMain)) {
  2027.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  2028.         } else {
  2029.            $webMenuItemList = array();
  2030.         }
  2031.         /* we load top menu for the current website */
  2032.         $webMenuTop $dem->getRepository(WebMenu::class)->getTopMenu($webId);
  2033.         if(!empty($webMenuTop)) {
  2034.            $webMenuTopItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuTop->getWebMenuId());
  2035.         } else {
  2036.            $webMenuTopItemList = array();
  2037.         } 
  2038.         $user $em->getRepository(User::class)->getUser($web->getUserId());
  2039.         /* we get wireframe */
  2040.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  2041.         /*
  2042.         print('<hr>qqw wireframe: ');
  2043.         \Doctrine\Common\Util\Debug::dump($wireFrame);
  2044.         */
  2045.         $webMenuVertical null;
  2046.         $webMenuVerticalItemList null;
  2047.         /* we load left column - vertical menu for the current website */
  2048.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  2049.             
  2050.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  2051.             if(!empty($webMenuVertical)) {
  2052.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  2053.             }
  2054.         }
  2055.     
  2056.         /* we build login form */
  2057.         $formBuilder $this->createFormBuilder();
  2058.         
  2059.         $formBuilder->add('username'TextType::class, array(
  2060.                 'required' => true,
  2061.                 'attr' => array('class' => 'text_form''size' => 22),
  2062.                 'label_attr' => array('class' => 'form_field_label'),
  2063.         ));
  2064.         
  2065.         $formBuilder->add('password'PasswordType::class, array(
  2066.                 'required' => true,
  2067.                 'label' => $this->translator->trans('user.password'),
  2068.                 'attr' => array('class' => 'text_form''size' => 22),
  2069.                 'label_attr' => array('class' => 'form_field_label'),
  2070.         ));
  2071.         
  2072.         $formBuilder->add('save'SubmitType::class, array('label' => 'Login',
  2073.                 'attr' => array('class' => 'butt_big')));
  2074.         
  2075.         $form $formBuilder->getForm();
  2076.         
  2077.         $form->handleRequest($request);
  2078.         
  2079.         if ($request->getMethod() == 'POST') {
  2080.         
  2081.             //$form->bindRequest($request);
  2082.         
  2083.             if ($form->isValid()) {
  2084.                 // perform some action, such as save the object to the database
  2085.                 /* we check if this username exists */
  2086.                 $em $this->doctrine->getManager();
  2087.         
  2088.                 $userName $request->request->get('form')['username'];
  2089.         
  2090.                 $contactExist $dem->getRepository('AppBundle:Contact')->getContactFromLogin($userName$request->request->get('form')['password']);
  2091.                 /*
  2092.                  print('<br>qqw contact exists: '.$userName.' :: '.$request->request->get('form')['password']);
  2093.                  \Doctrine\Common\Util\Debug::dump($contactExist);
  2094.                  */
  2095.                 if(!empty($contactExist)) {
  2096.         
  2097.                     /* we load logged contact into session */
  2098.                     $session $request->getSession();
  2099.                     $session->set('contact'$contactExist);
  2100.         
  2101.                     /*
  2102.                      print('<hr>we set session contact: ');
  2103.                      \Doctrine\Common\Util\Debug::dump($session->get('contact'));
  2104.                      */
  2105.         
  2106.                     $this->addFlash('notice''Welcome '.$userName.'. You are logged in.');
  2107.         
  2108.                     //return $this->redirectToRoute('eshopHomeContact');
  2109.                     if(isset($request->request->get('form')['returnRoute'])) {
  2110.                         return $this->redirectToRoute($request->request->get('form')['returnRoute'], array('webId' => $webId));
  2111.                     } else {
  2112.                         return $this->redirectToRoute('webHomeContact', array('webId' => $webId));
  2113.                     }
  2114.                 }
  2115.                 else {
  2116.                     $this->addFlash('error''Login error.');
  2117.                 }
  2118.         
  2119.             }
  2120.         
  2121.         }       
  2122.         
  2123.         /* we render data */
  2124.         return $this->render('webLogin.html.twig',
  2125.                 array(  'headerData' => $this -> getPageHeader($request),
  2126.                         'form' => $formBuilder->getForm()->createView(),
  2127.                         'menu' => $this -> adminMenu($request),
  2128.                         'mainMenu' => $this -> adminMainMenu($request),
  2129.                         'web' => $web,
  2130.                         'user' => $user,
  2131.                         'wireFrame' => $wireFrame,
  2132.                         'webPageHeader' => $webPageHeader,
  2133.                         'webPageFooter' => $webPageFooter,  
  2134.                         'webMenuVertical' => $webMenuVertical,  
  2135.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,
  2136.                         'webMenuMain' => $webMenuMain,
  2137.                         'webMenuItemList' => $webMenuItemList,
  2138.                         'webMenuTop' => $webMenuTop,                        
  2139.                         'webMenuTopItemList' => $webMenuTopItemList,  
  2140.                 )
  2141.                 );
  2142.         
  2143.         }    
  2144.         
  2145.         /**
  2146.          * @Route("/web/{webId}/webHomeContact", name="webHomeContact")
  2147.          */
  2148.         public function webHomeContactAction(Request $request$webId) {
  2149.         
  2150.         /* we load session data */
  2151.         parent::init($request);
  2152.         $session $request->getSession();
  2153.     
  2154.         /* we load entity managers */
  2155.         $em $this->doctrine->getManager();
  2156.         $dem $this->doctrine->getManager('dynamic_em');
  2157.     
  2158.         /* we get current web */
  2159.         $web $em->getRepository(Website::class)->getWebsite($webId);
  2160.          
  2161.         /* we check if web exists */
  2162.         if($web === null) {
  2163.             $this->addFlash('error''Web with tis ID does not exists.');
  2164.             return $this->redirectToRoute('webHome');
  2165.         }
  2166.         /* we load header for the current website */
  2167.         $webPageHeader $dem->getRepository(WebPage::class)->getWebPageHeader($webId);
  2168.         /* we load footer for the current website */
  2169.         $webPageFooter $dem->getRepository(WebPage::class)->getWebPageFooter($webId);
  2170.          
  2171.         /* we load header for the current website */
  2172.         $webMenuMain $dem->getRepository(WebMenu::class)->getMainMenu($webId);
  2173.         if(!empty($webMenuMain)) {
  2174.            $webMenuItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuMain->getWebMenuId());
  2175.         } else {
  2176.            $webMenuItemList = array();
  2177.         }
  2178.         $user $em->getRepository(User::class)->getUser($web->getUserId());
  2179.         /* we get wireframe */
  2180.         $wireFrame $em->getRepository(WireFrame::class)->getWireFrame($web->getWireFrameId());
  2181.         /*
  2182.         print('<hr>qqw wireframe: ');
  2183.         \Doctrine\Common\Util\Debug::dump($wireFrame);
  2184.         */
  2185.         $webMenuVertical null;
  2186.         $webMenuVerticalItemList null;
  2187.         /* we load left column - vertical menu for the current website */
  2188.         if($wireFrame->getWireFrameName() == 'Website Classic') {
  2189.             
  2190.             $webMenuVertical $dem->getRepository(WebMenu::class)->getVerticalMenu($webId);
  2191.             if(!empty($webMenuVertical)) {
  2192.                 $webMenuVerticalItemList $dem->getRepository(WebMenuItem::class)->getWebMenuItemList($webMenuVertical->getWebMenuId());
  2193.             }
  2194.  
  2195.         }
  2196.             $contactId $session->get('contact')->getContactId();
  2197.             $contact $dem->getRepository('AppBundle:Contact')->getContact($contactId);
  2198.         //print('<hr>qqw contact: '.$contactId);
  2199.         //\Doctrine\Common\Util\Debug::dump($contact);            
  2200.             /* we render data */
  2201.             return $this->render('webHomeContact.html.php',
  2202.                     array('headerData' => $this -> getPageHeader($request),
  2203.                         'menu' => $this -> adminMenu($request),
  2204.                         'mainMenu' => $this -> adminMainMenu($request),
  2205.                         'web' => $web,
  2206.                         'user' => $user,
  2207.                         'contact' => $contact,
  2208.                         'wireFrame' => $wireFrame,
  2209.                         'webPageHeader' => $webPageHeader,
  2210.                         'webPageFooter' => $webPageFooter,  
  2211.                         'webMenuVertical' => $webMenuVertical,  
  2212.                         'webMenuVerticalItemList' => $webMenuVerticalItemList,
  2213.                     )
  2214.                     );
  2215.         
  2216.     }
  2217.     /**
  2218.      * @Route("/pages", name="webPages")
  2219.      */
  2220.     public function webPagesAction(Request $request) {
  2221.         /* we load session data */
  2222.         parent::init($request);
  2223.         $session $request->getSession();
  2224.         /* we load users entity manager */
  2225.         $em $this->doctrine->getManager();
  2226.         $dem $this->doctrine->getManager('dynamic_em');
  2227.         $userId $session->get('user')->getUserId();
  2228.         $user $em->getRepository(User::class)->getUser($userId);
  2229.         $pageList $dem->getRepository(WebPage::class)->findAll();
  2230.         foreach ($pageList as $page) {
  2231.             $page->setLocale($session->get('lang')->getLangKey());
  2232.             $dem->refresh($page);
  2233.         }
  2234.         /* we render data */
  2235.         return $this->render('webPageList.html.twig',
  2236.             array(  'headerData' => $this -> getPageHeader($request),
  2237.                 'pageList' => $pageList,
  2238.                 'menu' => $this -> adminMenu($request),
  2239.                 'user' => $user,
  2240.                 'mainMenu' => $this -> adminMainMenu($request)
  2241.             )
  2242.         );
  2243.     }
  2244.     public function adminMenu(Request $request)
  2245.     { 
  2246.         $menuItems = array(
  2247.                 => array('link' => 'webpagesAdmin''langKey' => 'webpages.admin''routeName' => 'webpagesAdmin'),
  2248.                 => array('link' => 'webPageNew''langKey' => 'webpages.new_page''routeName' => 'webPageNew'),
  2249.                 => array('link' => 'pages''langKey' => 'webpages.pages''routeName' => 'webPages'),
  2250.                 => array('link' => 'webnew''langKey' => 'webpages.new_web''routeName' => 'webNew'),
  2251.                 => array('link' => 'webConfig''langKey' => 'webpages.config''routeName' => 'webConfig'),
  2252.         );
  2253.     
  2254.         return $menuItems;
  2255.     }
  2256. }