src/Controller/MarketplaceController.php line 120

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\Persistence\ManagerRegistry;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  6. use Symfony\Component\Form\Extension\Core\Type\TextType;
  7. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  10. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  11. use Symfony\Component\Form\Extension\Core\Type\FileType;
  12. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  13. use Symfony\Component\Console\Input\ArrayInput;
  14. use Symfony\Bundle\FrameworkBundle\Console\Application;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use App\Entity\User;
  18. use App\Entity\Server;
  19. use App\Entity\Service;
  20. use App\Entity\Module;
  21. use App\Entity\EshopLink;
  22. use App\Entity\Feed;
  23. use App\Entity\Language;
  24. use App\Entity\Department;
  25. use App\Entity\Product;
  26. use App\Entity\ShoppingWindow;
  27. use Symfony\Contracts\Translation\TranslatorInterface;
  28. class MarketplaceController extends DefaultController
  29. {
  30.     protected ManagerRegistry $doctrine;
  31.     protected TranslatorInterface $translator;
  32.     public function __construct(ManagerRegistry $doctrine,
  33.                                 TranslatorInterface $translator)
  34.     {
  35.         $this->doctrine $doctrine;
  36.         $this->translator $translator;
  37.     }
  38.     /**
  39.      * @Route("/marketplace", name="marketplace")
  40.      */
  41.     public function marketplaceAction(Request $request)
  42.     {
  43.         // we load session data
  44.         parent::init($request);
  45.         $session $request->getSession();
  46.         // we load entity managers
  47.         $em $this->doctrine->getManager();
  48.         
  49.         $hostServer $em->getRepository(Server::class)->getServerFromHost($_SERVER['HTTP_HOST']);
  50.         //$hostServer->getParentSectionId()
  51.         
  52.         //$treeObject = $em->getRepository(Department::class)->getTree();
  53.         $treeObject null
  54.         
  55.         $rootDepartments $em->getRepository(Department::class)->getRootNodes();
  56.         
  57.         // we get root departments 
  58.         if (!empty($hostServer->getParentSectionId()) && $hostServer->getParentSectionId() > 0) {
  59.         
  60.             $customRootDepartment $em->getRepository(Department::class)->getDepartment($hostServer->getParentSectionId());
  61.             $treeObject->createRoot($customRootDepartment);
  62.             $tree $treeObject->fetchTree();
  63.         
  64.             $rootDepartments $tree->getRootNodes();
  65.         } else {
  66.             $rootDepartments $em->getRepository(Department::class)->getRootNodes();
  67.         }
  68.         
  69.         // we add sub departments
  70.         $subDepartments = array();
  71.         foreach($rootDepartments as $dep)
  72.         {
  73.             $depId $dep->getDepartmentId();
  74.             $dep->setLocale($session->get('lang')->getLangKey());
  75.             $em->refresh($dep);
  76.             $subDeps $em->getRepository(Server::class)->getSubDepartments($depId);
  77.             $subDepartments[$depId] = $subDeps;
  78.         }          
  79.         $service $em->getRepository(Service::class)->getService(4);
  80.         /* we load list of departments for marketplace service */
  81.         $departmentArray[] =  $em->getRepository(Server::class)->getDepartment(3);
  82.          /* we load list of shopping windows */
  83.         $shoppingWindowList $em->getRepository(ShoppingWindow::class)->getShoppingWindowList($departmentArray06);
  84.         foreach($shoppingWindowList as $shoppingWindow)
  85.         {        
  86.             print('<hr>qqw shoppingWindow: ');
  87.             \Doctrine\Common\Util\Debug::dump($shoppingWindow);       
  88.         }
  89.         //print('<hr>qqw shoppingWindowList: ');
  90.         //\Doctrine\Common\Util\Debug::dump($shoppingWindowList);       
  91.         
  92.         /* we render data */
  93.         return $this->render('marketplace.html.twig',
  94.             array('headerData' => $this -> getPageHeader($request),
  95.                   'rootDepartments' => $rootDepartments,
  96.                   'subDepartments' => $subDepartments,                  
  97.                   'moduleList' => $service->getModules(),
  98.                   'service' => $service,    
  99.                   'shoppingWindowList' => $shoppingWindowList,                                   
  100.                 )
  101.         );        
  102.     }
  103.     /**
  104.      * @Route("/marketplace/department/{departmentId}", name="department")
  105.      */
  106.     public function departmentAction(Request $request$departmentId)
  107.     {
  108.         /* we load session data */
  109.         parent::init($request);
  110.         $session $request->getSession();
  111.         /* we load entity managers */
  112.         $em $this->doctrine->getManager();
  113.         /* we get root departments */
  114.         $department $em->getRepository(Server::class)->getDepartment($departmentId);
  115.         $department->setLocale($session->get('lang')->getLangKey());
  116.         $em->refresh($department);
  117.         $departmentPath $em->getRepository(Department::class)->getPath($department);
  118.         foreach ($departmentPath as $dep) {
  119.             $dep->setLocale($session->get('lang')->getLangKey());
  120.             $em->refresh($dep);
  121.         }
  122.         //print('<br>departmentPath: ');
  123.         //\Doctrine\Common\Util\Debug::dump($departmentPath);
  124.         $childDepartments $department->getChildren();
  125.         //$childDepartments = $em->getRepository(Department::class)->getRootNodes();
  126.         /* we get languages */
  127.         $langCollection $em->getRepository(Language::class)->getLanguageList();
  128.         /* we get e-shop links */
  129.         $eshopLinkList $em->getRepository(EshopLink::class)->getEshopLinkListByDepartment($departmentId);
  130.         //$eshopLink = $em->getRepository(EshopLink::class)->getEshopLink($request->query->get('setCurrent'));
  131.         // we get root departments
  132.         $rootDepartments $em->getRepository(Department::class)->getRootNodes();
  133.         // we add sub departments
  134.         $subDepartments = array();
  135.         foreach($childDepartments as $dep)
  136.         {
  137.             $depId $dep->getDepartmentId();
  138.             $dep->setLocale($session->get('lang')->getLangKey());
  139.             $em->refresh($dep);
  140.             $subDeps $em->getRepository(Server::class)->getSubDepartments($depId);
  141.             $subDepartments[$depId] = $subDeps;
  142.         }    
  143.         $departmentArray = array();
  144.         $departmentArray[] = $department;
  145.         /* we get product list */
  146.         $productPerPage 20;
  147.         $page $request->query->get('page');
  148.         $firstRecord = ($page $productPerPage) - $productPerPage;
  149.         if($firstRecord 1) {
  150.             $firstRecord 0;
  151.         }
  152.         //print('<br>DepartmentArray: ');
  153.         //print_r($departmentArray);
  154. //        \Doctrine\Common\Util\Debug::dump($departmentArray);
  155.         $productList $em->getRepository(Product::class)->getProductListByDepartment($departmentArray$firstRecord$productPerPage);
  156.         $productCount $em->getRepository(Product::class)->getProductCountByDepartment($departmentArray);
  157.         //print('<br>productList:');
  158.         //\Doctrine\Common\Util\Debug::dump($productList);
  159.         
  160.         $productIds = array();
  161.         foreach($productList as $product) {
  162.             $pId $product->getProductId();
  163.             $product->setLocale($session->get('lang')->getLangKey());
  164.             $em->refresh($product);
  165.             $productIds[] = $pId;
  166.             /* we setup product names - if empty then we load multilingual values */
  167.             $productName '';
  168.             if(!empty($product->getProductName()) && $product->getProductName() != '') {
  169.                 $productName $product->getProductName();
  170.             } else {
  171.                 //we try to get the product name from multilangual fields 
  172.                 foreach($langCollection as $lang) {
  173.                     $product->setLocale($lang->getLangKey());
  174.                     $em->refresh($product);
  175.                     if(!empty($product->getProductName()) && $product->getProductName() != '') {
  176.                         $productName $product->getProductName();
  177.                     }
  178.                 }
  179.             }
  180.             //print('<br>qqw pname 1: '.$productName);
  181.             $product->setProductName($productName);
  182.             $em->flush();            
  183.         }
  184.         /* we load prices */
  185.         $productPriceList $em->getRepository(Product::class)->getProductPriceList($productIds);
  186.         //$defaultCurrency = $em->getRepository('AppBundle:Currency')->getCurrency($eshop->getPreferredCurrencyId());
  187.         //$targetCurrency = $session->get('eshopCurrency');
  188.         
  189.         /* we load currency rated prices */
  190.         //$productPriceList = $dem->getRepository(Product::class)->getCurrencyRatedProductPriceList($productPriceList, $defaultCurrency, $targetCurrency);
  191.         /* we get price(s) to display */
  192.         
  193.         $displayPrice null;
  194.         foreach($productPriceList as $price) {
  195.             if($price->getProductId() == $product->getProductId()) {
  196.                 // we get default price level 
  197.                 if($price->getPriceLevelId() == 1) {
  198.                     //$displayPrice = round($price->getBruttoValue(),$eshop->getRoundPrice());
  199.                     $displayPrice round($price->getNettoValue(),2);
  200.                 }
  201.                 
  202.             }
  203.         }
  204.         
  205.         /* we render data */
  206.         return $this->render('marketplaceDepartment.html.twig',
  207.             array('headerData' => $this -> getPageHeader($request),
  208.                   'childDepartments' => $childDepartments,
  209.                   'department' => $department,
  210.                   'departmentPath' => $departmentPath,
  211.                   'eshopLinkList' => $eshopLinkList,
  212.                   'productList' => $productList,
  213.                   'productPriceList' => $productPriceList,
  214.                   'productCount' => $productCount,
  215.                   'subDepartments' => $subDepartments,   
  216.                 )
  217.         );        
  218.     }
  219.     /**
  220.      * @Route("/marketplace/product/{productId}", name="marketplaceProduct")
  221.      */
  222.     public function marketplaceProductAction(Request $request$productId)
  223.     {
  224.         /* we load session data */
  225.         parent::init($request);
  226.         /* we load entity managers */
  227.         $em $this->doctrine->getManager();
  228.         /* we get root departments */
  229.         $product $em->getRepository(Product::class)->getProduct($productId);
  230.         if(!empty($product)) {
  231.             $em->persist($product);
  232.             $em->flush();   
  233.             return $this->redirect($product->getProductLink());
  234.         } else {
  235.             $this->addFlash('error''Product with this ID does not exist.');
  236.             return $this->redirectToRoute('marketplace');     
  237.         }
  238.         /*
  239.         $departmentPath = $em->getRepository(Department::class)->getPath($department);
  240.         $childDepartments = $department->getChildren();
  241.         //$childDepartments = $em->getRepository(Department::class)->getRootNodes();
  242.         */
  243.         /*
  244.         print('<br>qqw eshopLinkList: ');
  245.         \Doctrine\Common\Util\Debug::dump($eshopLinkList);
  246.         */
  247.     
  248.         /* we render data */
  249.         /*
  250.         return $this->render('marketplaceProduct.html.php',
  251.             array('headerData' => $this -> getPageHeader($request),
  252.                   'product' => $product,
  253.                 )
  254.         );        
  255.         */
  256.     }    
  257.     /**
  258.      * @Route("/marketplaceAdmin", name="marketplaceAdmin")
  259.      */
  260.     public function marketplaceAdminAction(Request $request)
  261.     {
  262.         /* we load session data */
  263.         parent::init($request);
  264.         $session $request->getSession();
  265.         /* we load entity managers */
  266.         $em $this->doctrine->getManager();
  267.         $dem $this->doctrine->getManager('dynamic_em');
  268.         /* we get current user */
  269.         $currentUserId $session->get('user')->getUserId();
  270.         $user $em->getRepository(User::class)->getUser($currentUserId);
  271.         /* eshopLink module */
  272.         $moduleId 19;
  273.         $module $em->getRepository(Module::class)->getModule($moduleId);
  274.         $eshopLinkList null;
  275.         $isEshopLinkModule $em->getRepository(User::class)->userHasModule($user$module);
  276.         if($isEshopLinkModule) {
  277.             /* setting current eshopLink */
  278.             if(!empty($request->query->get('setCurrent'))) {
  279.                 $eshopLink $em->getRepository(EshopLink::class)->getEshopLink($request->query->get('setCurrent'));
  280.                 $em->getRepository(EshopLink::class)->setCurrentEshopLink($currentUserId$request->query->get('setCurrent'));
  281.                 $session->set('eshopLink'$eshopLink);
  282.                 
  283.                 $this->addFlash('notice''The eshop link '.$eshopLink->getEshopLinkName().' was set as current one.');
  284.                 return $this->redirectToRoute('marketplaceAdmin');
  285.                 
  286.             }
  287.             /* we get current e-shop link */
  288.             $currentEshopLink $em->getRepository(EshopLink::class)->getCurrentEshopLink($currentUserId);
  289.           
  290.           /*
  291.             print('<br>qqw currentEshop: ');
  292.             \Doctrine\Common\Util\Debug::dump($currentEshop->getEshopId());
  293.           */      
  294.           
  295.             /* we load list of eshop links for logged user */
  296.             $eshopLinkList $em->getRepository(EshopLink::class)->getEshopLinkListByUser($currentUserId);
  297.         }
  298.         /* feed module */
  299.         $moduleId 20;
  300.         $module $em->getRepository(Module::class)->getModule($moduleId);
  301.         $feedList null;
  302.         $isFeedModule $em->getRepository(User::class)->userHasModule($user$module);
  303.         if($isFeedModule) {
  304.             /* setting current feed */
  305.             if(!empty($request->query->get('setCurrent'))) {
  306.                 $feed $em->getRepository(Feed::class)->getFeed($request->query->get('setCurrent'));
  307.                 $em->getRepository(Feed::class)->setCurrentFeed($currentUserId$request->query->get('setCurrent'));
  308.                 $session->set('feed'$feed);
  309.                 
  310.                 $this->addFlash('notice''The feed '.$feed->getFeedName().' was set as current one.');
  311.                 return $this->redirectToRoute('marketplaceAdmin');
  312.                 
  313.             }
  314.             /* we get current feed */
  315.             $currentFeed $em->getRepository(Feed::class)->getCurrentFeed($currentUserId);
  316.           
  317.           /*
  318.             print('<br>qqw currentEshop: ');
  319.             \Doctrine\Common\Util\Debug::dump($currentEshop->getEshopId());
  320.           */      
  321.           
  322.             /* we load list of feeds for logged user */
  323.             $feedList $em->getRepository(Feed::class)->getFeedListByUser($currentUserId);
  324.         }
  325.         /* we load list of modules for marketplace service */
  326.         $service $em->getRepository(Service::class)->getService(4);
  327.         /* we render data */
  328.         return $this->render('marketplaceAdmin.html.twig',
  329.             array('headerData' => $this -> getPageHeader($request),
  330.                   'moduleList' => $service->getModules(),
  331.                   'userModuleList' => $user->getModules(),  
  332.                   'eshopLinkList' => $eshopLinkList,
  333.                   'feedList' => $feedList,
  334.                   'isEshopLinkModule' => $isEshopLinkModule,
  335.                   'isFeedModule' => $isFeedModule,
  336.                   'menu' => $this -> adminMenu($request),
  337.                   'mainMenu' => $this -> adminMainMenu($request),
  338.                     'user' => $user,
  339.                 )
  340.         );        
  341.     }
  342.     /**
  343.      * @Route("/eshopLinkAdmin", name="eshopLinkAdmin")
  344.      */
  345.     public function eshopLinkAdminAction(Request $request)
  346.     {
  347.         /* we load session data */
  348.         parent::init($request);
  349.         $session $request->getSession();
  350.         /* we load entity managers */
  351.         $em $this->doctrine->getManager();
  352.         $dem $this->doctrine->getManager('dynamic_em');
  353.         
  354.         /* we get current user */
  355.         $currentUserId $session->get('user')->getUserId();
  356.         $user $em->getRepository(User::class)->getUser($currentUserId);
  357.         /* setting current eshopLink */
  358.         if(!empty($request->query->get('setCurrent'))) {
  359.             $eshopLink $em->getRepository(EshopLink::class)->getEshopLink($request->query->get('setCurrent'));
  360.             $em->getRepository(EshopLink::class)->setCurrentEshopLink($currentUserId$request->query->get('setCurrent'));
  361.             $session->set('eshopLink'$eshopLink);
  362.             
  363.             $this->addFlash('notice''The eshop link '.$eshopLink->getEshopLinkName().' was set as current one.');
  364.             return $this->redirectToRoute('eshopLinkAdmin');
  365.             
  366.         }
  367.         
  368.         /* we get current e-shop link */
  369.         $currentEshopLink $em->getRepository(EshopLink::class)->getCurrentEshopLink($currentUserId);
  370.       
  371.       /*
  372.         print('<br>qqw currentEshop: ');
  373.         \Doctrine\Common\Util\Debug::dump($currentEshop->getEshopId());
  374.       */      
  375.       
  376.         /* we load list of eshop links for logged user */
  377.         $eshopLinkList $em->getRepository(EshopLink::class)->getEshopLinkListByUser($currentUserId);
  378.         /* we render data */
  379.         return $this->render('eshopLinkAdmin.html.twig',
  380.             array('headerData' => $this -> getPageHeader($request),
  381.                   'eshopLinkList' => $eshopLinkList,
  382.                   'menu' => $this -> adminMenu($request),
  383.                   'mainMenu' => $this -> adminMainMenu($request),
  384.                   'user' => $user,
  385.                 )
  386.         );        
  387.     }    
  388.     /**
  389.      * @Route("/addproducts", name="eshopLinkNew")
  390.      */
  391.     public function eshopLinkNewAction(Request $request)
  392.     {
  393.         /* we load session data */
  394.         parent::init($request);
  395.          
  396.         $session $request->getSession();
  397.         $em $this->doctrine->getManager();
  398.         $departmentCollection $em->getRepository(Server::class)->getDepartmentList();
  399.         /* we get current user */
  400.         if (!empty($session->get('user'))) {
  401.             $currentUserId $session->get('user')->getUserId();
  402.             $user $em->getRepository(User::class)->getUser($currentUserId);
  403.         } else {
  404.             $user null;
  405.         }
  406.         
  407.         //$user = $em->getRepository(User::class)->getUser($currentUserId);
  408.         
  409.         /* we build login form */
  410.         $eshopLink = new EshopLink;
  411.         $formBuilder $this->createFormBuilder($eshopLink);
  412.         
  413.         $formBuilder->add('eshopLinkName'TextType::class, array(
  414.                 'required' => true,
  415.                 'label' => $this->translator->trans('module.eshopLink_name'),
  416.                 'attr' => array('class' => 'text_form''size' => 62),
  417.                 'label_attr' => array('class' => 'form_field_label'),
  418.         ));    
  419.         $formBuilder->add('eshopLinkNameHelp'TextType::class, array(
  420.                 'required' => false,
  421.                 'mapped' => false,
  422.                 'label' => '',
  423.                 'attr' => array('class' => 'text_form_help''size' => 62'readonly' => true'value' => $this->translator->trans('module.eshopLink_name_help'), 'title' => $this->translator->trans('module.eshopLink_name_help')),
  424.                 'label_attr' => array('class' => 'form_field_label_help'),
  425.         ));
  426.         $formBuilder->add('eshopLinkUrl'TextType::class, array(
  427.                 'required' => true,
  428.                 'label' => $this->translator->trans('system.url'),
  429.                 'attr' => array('class' => 'text_form''size' => 62'title'=>'text help''help_block'=>'text help block'), 
  430.                 'label_attr' => array('class' => 'form_field_label'),
  431.         )); 
  432.         $formBuilder->add('eshopLinkUrlHelp'TextType::class, array(
  433.                 'required' => false,
  434.                 'mapped' => false,
  435.                 'label' => '',
  436.                 'attr' => array('class' => 'text_form_help''size' => 90'readonly' => true'value' => $this->translator->trans('module.eshopLink_url_help'), 'title' => $this->translator->trans('module.eshopLink_url_help')),
  437.                 'label_attr' => array('class' => 'form_field_label_help'),
  438.         ));
  439.         $formBuilder->add('eshopLinkDescription'TextareaType::class, array(
  440.                 'required' => false,
  441.                 'label' => $this->translator->trans('module.eshopLink_description'),
  442.                 'attr' => array('class' => 'textarea_form''cols' => 60'rows' => 5),
  443.                 'label_attr' => array('class' => 'form_textarea_label'),
  444.         ));         
  445.         $formBuilder->add('eshopLinkDescriptionHelp'TextType::class, array(
  446.                 'required' => false,
  447.                 'mapped' => false,
  448.                 'label' => '',
  449.                 'attr' => array('class' => 'text_form_help''size' => 90'readonly' => true'value' => $this->translator->trans('module.eshopLink_description_help'), 'title' => $this->translator->trans('module.eshopLink_description_help')),
  450.                 'label_attr' => array('class' => 'form_field_label_help'),
  451.         ));
  452.         /* we add department list */
  453.         $departments = array();
  454.         //$departments['Root'] = 0;
  455.         foreach($departmentCollection as $dep)
  456.         {
  457.             $depId $dep->getDepartmentId();
  458.             $dep->setLocale($session->get('lang')->getLangKey());
  459.             $em->refresh($dep);    
  460.             //print('<br>qqw department: '.$departmentId);
  461.             $departments[$dep->getDepartmentName()] = $depId;
  462.         }      
  463.         
  464.         $formBuilder->add('department1'ChoiceType::class, array(
  465.                 'choices' => $departments,
  466.                 'attr' => array('class' => 'selector'),
  467.                 'mapped' => false,
  468.                 'label' => $this->translator->trans('marketplace.parent_department'),
  469.                 'label_attr' => array('class' => 'form_field_label')
  470.         ));  
  471.         $formBuilder->add('departmentHelp'TextType::class, array(
  472.                 'required' => false,
  473.                 'mapped' => false,
  474.                 'label' => '',
  475.                 'attr' => array('class' => 'text_form_help''size' => 90'readonly' => true'value' => $this->translator->trans('module.eshopLink_department_help'), 'title' => $this->translator->trans('module.eshopLink_department_help')),
  476.                 'label_attr' => array('class' => 'form_field_label_help'),
  477.         ));
  478.         $formBuilder->add('feedUrl'TextType::class, array(
  479.                 'required' => false,
  480.                 'mapped' => false,
  481.                 'label' => $this->translator->trans('marketplace.feed_url'),
  482.                 'attr' => array('class' => 'text_form''size' => 62),
  483.                 'label_attr' => array('class' => 'form_field_label')
  484.         ));
  485.         $formBuilder->add('feedUrlHelp'TextType::class, array(
  486.                 'required' => false,
  487.                 'mapped' => false,
  488.                 'label' => '',
  489.                 'attr' => array('class' => 'text_form_help''size' => 90'readonly' => true'value' => $this->translator->trans('module.eshopLink_feed_help'), 'title' => $this->translator->trans('module.eshopLink_feed_help')),
  490.                 'label_attr' => array('class' => 'form_field_label_help'),
  491.         ));     
  492.         $formBuilder->add('feedNotes'TextareaType::class, array(
  493.                 'required' => false,
  494.                 'mapped' => false,
  495.                 'label' => $this->translator->trans('system.notes'),
  496.                 'attr' => array('class' => 'textarea_form''cols' => 60'rows' => 2),
  497.                 'label_attr' => array('class' => 'form_textarea_label'),
  498.         ));         
  499.         $formBuilder->add('feedNotesHelp'TextType::class, array(
  500.                 'required' => false,
  501.                 'mapped' => false,
  502.                 'label' => '',
  503.                 'attr' => array('class' => 'text_form_help''size' => 90'readonly' => true'value' => $this->translator->trans('module.eshopLink_feed_notes_help'), 'title' => $this->translator->trans('module.eshopLink_feed_notes_help')),
  504.                 'label_attr' => array('class' => 'form_field_label_help'),
  505.         ));
  506.                   
  507.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  508.                 'attr' => array('class' => 'butt_big')));
  509.         
  510.         $form $formBuilder->getForm();        
  511.         $form->handleRequest($request);
  512.         
  513.         if ($request->getMethod() == 'POST') {
  514.             if ($form->isValid()) {
  515.                 $formData $form->getData();
  516.                 $eshopLink->setEshopLinkName($formData->getEshopLinkName());
  517.                 $eshopLink->setEshopLinkUrl($formData->getEshopLinkUrl());
  518.                 /* we add department */
  519.                 if($form['department1']->getData() !== null and $form['department1']->getData() !== 0) {
  520.                     $department1 $em->getRepository(Server::class)->getDepartment($form['department1']->getData());
  521.                     if(!empty($department1)) {
  522.                         $eshopLink->addDepartment($department1);
  523.                     } 
  524.                 }
  525.                 /* we create feed */
  526.                 $feed = new Feed;
  527.                 $feed->setFeedName($formData->getEshopLinkName()." - Feed");
  528.                 $feed->setFeedUrl($form['feedUrl']->getData());
  529.                 $feed->setNotes($form['feedNotes']->getData());
  530.                 /* we add department */
  531.                 if($form['department1']->getData() !== null and $form['department1']->getData() !== 0) {
  532.                     $department1 $em->getRepository(Server::class)->getDepartment($form['department1']->getData());
  533.                     if(!empty($department1)) {
  534.                         $feed->addDepartment($department1);
  535.                     }
  536.                 }
  537.                 /* we add server language */
  538.                 $eshopLink->addLanguage($session->get('lang'));
  539.                 if(!empty($session->get('user'))) {
  540.                     /* user is logged in - we persist the new eshopLink */
  541.                     $eshopLink->setUserId($session->get('user')->getUserId());
  542.                     $feed->setUserId($session->get('user')->getUserId());
  543.                     /* we set this eshop link as current one */
  544.                     $em->getRepository(EshopLink::class)->unsetCurrentEshopLink($session->get('user')->getUserId());
  545.                     $eshopLink->setEshopLinkCurrent(true);                      
  546.                     /* we persist and save eshopLink */
  547.                     $em->persist($feed);                    
  548.                     $em->persist($eshopLink);
  549. //                    print('<br>qqw Dep: ');
  550. //                    print_r($form['department1']->getData());
  551.                     if($form['department1']->getData() !== null and $form['department1']->getData() !== 0) {
  552.                         $em->persist($department1);
  553.                     }
  554.                     $em->flush();                     
  555.                     $this->addFlash('notice''New Eshop Link and Feed were created.');
  556.                     return $this->redirectToRoute('eshopLinkConfig');
  557.                 } else {
  558.                     /* we store new eshopLink in session and redirect to new account form */
  559.                     $session->set('eshopLink'$eshopLink);
  560.                     $session->set('feed'$feed);                    
  561.                     $this->addFlash('notice''Please add your user account info.');
  562.                     return $this->redirectToRoute('newaccount', array('addModule' => 19'addModule2' => 20));   
  563.                     //$this->redirectToRoute('eshopHomeContact', array('eshopId' => $eshopId))              
  564.                 }
  565.             }
  566.         
  567.         }
  568.     
  569.         /* we render data */
  570.         return $this->render('eshopLinkNew.html.twig',
  571.                 array(  'form' => $formBuilder->getForm()->createView(),
  572.                         'headerData' => $this -> getPageHeader($request),
  573.                         'menu' => $this -> adminMenu($request),
  574.                         'mainMenu' => $this -> adminMainMenu($request),
  575.                         'user' => $user,
  576.                 )
  577.                 );
  578.     
  579.     }  
  580.     /**
  581.      * @Route("/eshopLinkConfig", name="eshopLinkConfig")
  582.      */
  583.     public function eshopLinkConfigAction(Request $request)
  584.     {
  585.         /* we load session data */
  586.         parent::init($request);
  587.         $session $request->getSession();
  588.         
  589.         /* we load entity managers */
  590.         $em $this->doctrine->getManager();
  591.         $dem $this->doctrine->getManager('dynamic_em');
  592.          
  593.         /* we get e-shop link */ 
  594.         $userId $session->get('user')->getUserId();
  595.         $user $em->getRepository(User::class)->getUser($userId);
  596.         
  597.         /* we get current e-shop link */
  598.         $eshopLink $em->getRepository(EshopLink::class)->getCurrentEshopLink($userId);
  599.         /* we get current feed */
  600.         $feed $em->getRepository(Feed::class)->getCurrentFeed($userId);
  601.         
  602.         /* we get languages */
  603.         $langCollection $em->getRepository(Language::class)->getLanguageList();
  604.         /* we get departments */
  605.         $departmentCollection $em->getRepository(Server::class)->getDepartmentList();
  606.         $userDirs $this->getUserFolderPaths($request);
  607.         /* we build edit form */
  608.         $formBuilder $this->createFormBuilder($eshopLink);
  609.         
  610.         /* e-shop link name - multilangual fields */
  611.         foreach($eshopLink->getLanguages() as $lang) {
  612.             $fieldLabel $this->translator->trans('module.eshopLink_name').' ['.$lang->getLangKey().']';
  613.             $eshopLink->setLocale($lang->getLangKey());
  614.             $em->refresh($eshopLink);        
  615.             $fieldValue $eshopLink->getEshopLinkName();
  616.             
  617.             $formBuilder->add('eshopLinkName_'.$lang->getLangKey(), TextType::class, array(
  618.                     'required' => false,
  619.                     'label' => $fieldLabel,
  620.                     'attr' => array('class' => 'text_form''size' => 35'value' => $fieldValue),
  621.                     'label_attr' => array('class' => 'form_field_label'),
  622.                     'mapped' => false,
  623.             ));         
  624.             
  625.         }
  626.         /* e-shop link description - multilangual fields */
  627.         foreach($eshopLink->getLanguages() as $lang) {
  628.             $fieldLabel $this->translator->trans('module.eshopLink_description').' ['.$lang->getLangKey().']';
  629.             $eshopLink->setLocale($lang->getLangKey());
  630.             $em->refresh($eshopLink);        
  631.             $fieldValue $eshopLink->getEshopLinkDescription();
  632.             
  633.             $formBuilder->add('eshopLinkDescription_'.$lang->getLangKey(), TextareaType::class, array(
  634.                     'required' => false,
  635.                     'label' => $fieldLabel,
  636.                     'attr' => array('class' => 'textarea_form''cols' => 69'rows' => 7'value' => $fieldValue),
  637.                     'label_attr' => array('class' => 'form_textarea_label'),
  638.                     'data' => $fieldValue,
  639.                     'mapped' => false,
  640.             ));         
  641.             
  642.         }
  643.         $formBuilder->add('eshopLinkUrl'TextType::class, array(
  644.                 'required' => false,
  645.                 'label' => $this->translator->trans('system.url'),
  646.                 'attr' => array('class' => 'text_form''size' => 50'value' => $eshopLink->getEshopLinkUrl()),
  647.                 'label_attr' => array('class' => 'form_field_label')
  648.         ));
  649.         $formBuilder->add('logoUrl'TextType::class, array(
  650.                 'required' => false,
  651.                 'label' => $this->translator->trans('system.logo_url'),
  652.                 'attr' => array('class' => 'text_form''size' => 50'value' => $eshopLink->getLogoUrl()),
  653.                 'label_attr' => array('class' => 'form_field_label')
  654.         ));        
  655.         /* we add language list */
  656.         $languages = array();
  657.         foreach($langCollection as $lang)
  658.         {
  659.             $langId $lang->getLangId();
  660.             $languages[$lang->getLangName()] = $lang->getLangId();
  661.         }
  662.         $selectedLanguages = array();
  663.         foreach($eshopLink->getLanguages() as $lang) {
  664.             $selectedLanguages[] = $lang->getLangId();
  665.         }
  666.          
  667.         $formBuilder->add('languages'ChoiceType::class, array(
  668.                 'choices' => $languages,
  669.                 'required' => false,
  670.                 'mapped' => false,
  671.                 'multiple' => true,
  672.                 'expanded' => true,
  673.                 'label_attr' => array('class' => 'form_field_label'),
  674.                 'attr' => array('class' => 'form_field_text'),
  675.                 'data' => $selectedLanguages
  676.         ));  
  677.         /* we add department list */
  678.         
  679.         $departments = array();
  680.         foreach($departmentCollection as $dep)
  681.         {
  682.             $depId $dep->getDepartmentId();
  683.             $dep->setLocale($session->get('lang')->getLangKey());
  684.             $em->refresh($dep);
  685.             //print('<br>qqw dep: '.$dep->getDepartmentId());
  686.             //print('<br>qqw cat: '.$catId);
  687.             $depKey $dep->getDepartmentName().' (id:'.$dep->getDepartmentId().')';
  688.             $departments[$depKey] = $depId;
  689.              
  690.         }
  691.          
  692.         $selectedDepartment 0;
  693.         
  694.         // we load current category associations
  695.         foreach($eshopLink->getDepartments() as $dep) {
  696.             //print('<br>qqw sel dep: '.$dep->getDepartmentId());
  697.             $selectedDepartment $dep->getDepartmentId();
  698.         }        
  699.          
  700.         $formBuilder->add('department1'ChoiceType::class, array(
  701.                 'choices' => $departments,
  702.                 'label' => $this->translator->trans('marketplace.department'),
  703.                 'attr' => array('class' => 'selector'),
  704.                 'label_attr' => array('class' => 'form_field_label'),
  705.                 'data' => $selectedDepartment,
  706.                 'mapped' => false,
  707.         ));   
  708.         /*
  709.         $formBuilder->add('feedUrl', TextType::class, array(
  710.                 'required' => false, 
  711.                 'label' => $this->translator->trans('marketplace.feed_url'),
  712.                 'attr' => array('class' => 'text_form', 'size' => 57, 'value' => $eshopLink->getFeedUrl()),
  713.                 'label_attr' => array('class' => 'form_field_label')
  714.         ));
  715.         */            
  716.  
  717.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  718.                 'attr' => array('class' => 'butt_big')));
  719.          
  720.         $form $formBuilder->getForm();
  721.          
  722.         $form->handleRequest($request);
  723.          
  724.         if ($request->getMethod() == 'POST') {
  725.              
  726.             //$form->bindRequest($request);
  727.              
  728.             if ($form->isValid()) {
  729.                 $formData $form->getData();
  730.                 $eshopLink->setEshopLinkUrl($formData->getEshopLinkUrl());
  731.                 $eshopLink->setLogoUrl($formData->getLogoUrl());
  732.                 //$eshopLink->setFeedUrl($request->request->get('form')['feedUrl']);
  733.                 /* multilangual fields */
  734.                 foreach($eshopLink->getLanguages() as $lang) {
  735.                     $eshopLink->setLocale($lang->getLangKey());
  736.                     //$dem->refresh($product);
  737.                     $eshopLink->setEshopLinkName($form['eshopLinkName_'.$lang->getLangKey()]->getData());
  738.                     $eshopLink->setEshopLinkDescription($form['eshopLinkDescription_'.$lang->getLangKey()]->getData());
  739.                     //$dem->persist($product);
  740.                     //$product->setProductDescription($request->request->get('form')['productDescription_'.$lang->getLangKey()]);
  741.                     //$product->setProductShortDescription($request->request->get('form')['productShortDescription_'.$lang->getLangKey()]);
  742.                     $em->persist($eshopLink);                    
  743.                     $em->flush();
  744.                 }
  745.                 /* we remove old language associations */
  746.                 foreach($eshopLink->getLanguages() as $lang) {
  747.                     $eshopLink->removeLanguage($lang);
  748.                 }
  749.                     
  750.                 /* we load eshop languages */
  751.                 if(!empty($form['languages']->getData())) {
  752.                     foreach($form['languages']->getData() as $langId) {
  753.                         $addLang $em->getRepository(Language::class)->getLanguage($langId);
  754.                         $eshopLink->addLanguage($addLang);
  755.                         //$session->get('user')->addService($addService);
  756.                     }
  757.                 }                
  758.                 
  759.                 //print('<br>QQW cat 1: '.$request->request->get('form')['category1']);
  760.                 //Doctrine\Common\Util\Debug::dump($request-equest->get('form')['category1']);
  761.                 
  762.                 /* departments */
  763.                 /* we remove old associations */
  764.                 foreach($eshopLink->getDepartments() as $dep) {
  765.                     $eshopLink->removeDepartment($dep);
  766.                 }
  767.                 
  768.                 if($form['department1']->getData() !== 0) {
  769.                     $department1 $em->getRepository(Server::class)->getDepartment($form['department1']->getData());
  770.                     if(!empty($department1)) {
  771.                         $eshopLink->addDepartment($department1);
  772.                     }
  773.                 }
  774.                 /* we persist and save */
  775.                 foreach($eshopLink->getDepartments() as $dep) {
  776.                     $em->persist($dep);
  777.                 }
  778.                 //we create new feed
  779.                 if(!empty($form['feedUrl']) && empty($feed)) {
  780.                     
  781.                     $feed = new Feed;
  782.                     $feed->setFeedName($eshopLink->getEshopLinkName());
  783.                     $feed->setFeedUrl($form['feedUrl']->getData());
  784.                     /* we add department */
  785.                     if(!empty($department1)) {
  786.                         $feed->addDepartment($department1);
  787.                     }
  788.                     if(!empty($session->get('user'))) {
  789.                         /* user is logged in - we persist the new feed */
  790.                         $feed->setUserId($session->get('user')->getUserId());
  791.                         /* we set this feed as current one */
  792.                         $em->getRepository(Feed::class)->unsetCurrentFeed($session->get('user')->getUserId());
  793.                         $feed->setFeedCurrent(true);                      
  794.                         /* we persist and save feed */
  795.                         $em->persist($feed);
  796.                         $em->flush();                     
  797.                         $this->addFlash('notice''New Feed was created.');
  798.                         return $this->redirectToRoute('feedConfig');                 
  799.                     } else {
  800.                         /* we store new feed in session and redirect to new account form */
  801.                         $session->set('feed'$feed);
  802.                         $this->addFlash('notice''Please add your user account info.');
  803.                         return $this->redirectToRoute('newaccount');                 
  804.                     }                    
  805.                 }
  806.                 $em->persist($eshopLink);
  807.                 $em->flush();
  808.                 $this->addFlash('notice''E-shop Link was updated.');
  809.                 return $this->redirectToRoute('eshopLinkConfig');
  810.                  
  811.             }
  812.              
  813.         }
  814.         /* we render data */
  815.         return $this->render('eshopLinkConfig.html.twig',
  816.             array('headerData' => $this -> getPageHeader($request),
  817.                   'form' => $formBuilder->getForm()->createView(),
  818.                   'eshopLink' => $eshopLink,
  819.                   'userDirs' => $userDirs,
  820.                   'menu' => $this -> adminMenu($request),
  821.                         'mainMenu' => $this -> adminMainMenu($request),
  822.                   'user' => $user,
  823.                 )
  824.         );        
  825.     }  
  826.     /**
  827.      * @Route("/feedNew", name="feedNew")
  828.      */
  829.     public function feedNewAction(Request $request)
  830.     {
  831.         /* we load session data */
  832.         parent::init($request);
  833.          
  834.         $session $request->getSession();
  835.         /* we load entity managers */
  836.         $em $this->doctrine->getManager();
  837.         $dem $this->doctrine->getManager('dynamic_em');
  838.         $userId $session->get('user')->getUserId();
  839.         $user $em->getRepository(User::class)->getUser($userId);
  840.         $departmentCollection $em->getRepository(Server::class)->getDepartmentList();
  841.         
  842.         /* we build login form */
  843.         $feed = new Feed;
  844.         $formBuilder $this->createFormBuilder($feed);
  845.         
  846.         $formBuilder->add('feedName'TextType::class, array(
  847.                 'required' => true,
  848.                 'label' => $this->translator->trans('marketplace.feed_name'),
  849.                 'attr' => array('class' => 'text_form''size' => 33),
  850.                 'label_attr' => array('class' => 'form_field_label'),
  851.         ));     
  852.         $formBuilder->add('feedUrl'TextType::class, array(
  853.                 'required' => true,
  854.                 'label' => $this->translator->trans('system.url'),
  855.                 'attr' => array('class' => 'text_form''size' => 33),
  856.                 'label_attr' => array('class' => 'form_field_label'),
  857.         )); 
  858.         /* we add department list */
  859.         $departments = array();
  860.         //$departments['Root'] = 0;
  861.         foreach($departmentCollection as $dep)
  862.         {
  863.             $depId $dep->getDepartmentId();
  864.             $dep->setLocale($session->get('lang')->getLangKey());
  865.             $em->refresh($dep);
  866.             // print('<br>qqw department: '.$depId);
  867.             $departments[$dep->getDepartmentName()] = $depId;
  868.         }      
  869.         
  870.         $formBuilder->add('department1'ChoiceType::class, array(
  871.                 'choices' => $departments,
  872.                 'attr' => array('class' => 'selector'),
  873.                 'label' => 'Parent department',
  874.                 'mapped' => false,
  875.                 'label_attr' => array('class' => 'form_field_label')
  876.         ));  
  877.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  878.                 'attr' => array('class' => 'butt_big')));
  879.         
  880.         $form $formBuilder->getForm();        
  881.         $form->handleRequest($request);
  882.         
  883.         if ($request->getMethod() == 'POST') {
  884.             if ($form->isValid()) {
  885.                 $formData $form->getData();
  886.         
  887.                 /* we load users entity manager */
  888.                 //$dem = $this->doctrine->getManager('dynamic_em');
  889.                 $feed->setFeedName($formData->getFeedName());
  890.                 $feed->setFeedUrl($formData->getFeedUrl());
  891.                 /* we add department */
  892.                 if($form['department1']->getData() !== 0) {
  893.                     $department1 $em->getRepository(Server::class)->getDepartment($form['department1']->getData());
  894.                     if(!empty($department1)) {
  895.                         $feed->addDepartment($department1);
  896.                     }
  897.                 }
  898.                 if(!empty($session->get('user'))) {
  899.                     /* user is logged in - we persist the new feed */
  900.                     $feed->setUserId($session->get('user')->getUserId());
  901.                     /* we set this feed as current one */
  902.                     $em->getRepository(Feed::class)->unsetCurrentFeed($session->get('user')->getUserId());
  903.                     $feed->setFeedCurrent(true);                      
  904.                     /* we persist and save feed */
  905.                     $em->persist($feed);
  906.                     $em->flush();                     
  907.                     $this->addFlash('notice''New Feed was created.');
  908.                     return $this->redirectToRoute('feedConfig');                 
  909.                 } else {
  910.                     /* we store new feed in session and redirect to new account form */
  911.                     $session->set('feed'$feed);
  912.                     $this->addFlash('notice''Please add your user account info.');
  913.                     return $this->redirectToRoute('newaccount');                 
  914.                 }
  915.             }
  916.         
  917.         }
  918.     
  919.         /* we render data */
  920.         return $this->render('feedNew.html.twig',
  921.                 array(  'form' => $formBuilder->getForm()->createView(),
  922.                         'headerData' => $this -> getPageHeader($request),
  923.                         'menu' => $this -> adminMenu($request),
  924.                         'mainMenu' => $this -> adminMainMenu($request),
  925.                         'user' => $user,
  926.                 )
  927.                 );
  928.     
  929.     }  
  930.     /**
  931.      * @Route("/feedConfig", name="feedConfig")
  932.      */
  933.     public function feedConfigAction(Request $request)
  934.     {
  935.         /* we load session data */
  936.         parent::init($request);
  937.         $session $request->getSession();
  938.         
  939.         /* we load entity managers */
  940.         $em $this->doctrine->getManager();
  941.         $dem $this->doctrine->getManager('dynamic_em');
  942.          
  943.         /* we get feed */ 
  944.         $userId $session->get('user')->getUserId();
  945.         $user $em->getRepository(User::class)->getUser($userId);
  946.         
  947.         /* we get current feed */
  948.         $feed $em->getRepository(Feed::class)->getCurrentFeed($userId);
  949.         /* we get departments */
  950.         $departmentCollection $em->getRepository(Server::class)->getDepartmentList();
  951.         $userDirs $this->getUserFolderPaths($request);
  952.         /* we build edit form */
  953.         $formBuilder $this->createFormBuilder($feed);
  954.         $formBuilder->add('feedName'TextType::class, array(
  955.                 'required' => true,
  956.                 'label' => $this->translator->trans('marketplace.feed_name'),
  957.                 'attr' => array('class' => 'text_form''size' => 50'value' => $feed->getFeedName()),
  958.                 'label_attr' => array('class' => 'form_field_label')
  959.         ));
  960.         $formBuilder->add('feedUrl'TextType::class, array(
  961.                 'required' => true,
  962.                 'label' => $this->translator->trans('system.url'),
  963.                 'attr' => array('class' => 'text_form''size' => 50'value' => $feed->getFeedUrl()),
  964.                 'label_attr' => array('class' => 'form_field_label')
  965.         ));     
  966.         $formBuilder->add('feedType'TextType::class, array(
  967.                 'required' => true,
  968.                 'label' => $this->translator->trans('marketplace.feed_type'),
  969.                 'attr' => array('class' => 'text_form''size' => 50'value' => $feed->getFeedType()),
  970.                 'label_attr' => array('class' => 'form_field_label')
  971.         ));             
  972.         /* we add department list */
  973.         $departments = array();
  974.         foreach($departmentCollection as $dep)
  975.         {
  976.             $depId $dep->getDepartmentId();
  977.             $dep->setLocale($session->get('lang')->getLangKey());
  978.             $em->refresh($dep);
  979.             //print('<br>qqw dep: '.$dep->getDepartmentId());
  980.             //print('<br>qqw cat: '.$catId);
  981.             $depKey $dep->getDepartmentName().' (id:'.$dep->getDepartmentId().')';
  982.             $departments[$depKey] = $depId;
  983.              
  984.         }
  985.          
  986.         $selectedDepartment 0;
  987.         
  988.         // we load current category associations
  989.         foreach($feed->getDepartments() as $dep) {
  990.             //print('<br>qqw sel dep: '.$dep->getDepartmentId());
  991.             $selectedDepartment $dep->getDepartmentId();
  992.         }        
  993.          
  994.         $formBuilder->add('department1'ChoiceType::class, array(
  995.                 'choices' => $departments,
  996.                 'mapped' => false,
  997.                 'label' => $this->translator->trans('marketplace.department'),
  998.                 'attr' => array('class' => 'selector'),
  999.                 'label_attr' => array('class' => 'form_field_label'),
  1000.                 'data' => $selectedDepartment
  1001.         ));   
  1002.         $formBuilder->add('notes'TextareaType::class, array(
  1003.                 'required' => false,
  1004.                 'label' => $this->translator->trans('system.notes'),
  1005.                 'attr' => array('class' => 'textarea_form''cols' => 55'rows' => 5'value' => $feed->getNotes()),
  1006.                 'label_attr' => array('class' => 'form_textarea_label'),
  1007.                 'data' => $feed->getNotes(),
  1008.         ));        
  1009.  
  1010.         $formBuilder->add('save'SubmitType::class, array('label' => $this->translator->trans('form.button.save'),
  1011.                 'attr' => array('class' => 'butt_big')));
  1012.          
  1013.         $form $formBuilder->getForm();
  1014.          
  1015.         $form->handleRequest($request);
  1016.          
  1017.         if ($request->getMethod() == 'POST') {
  1018.              
  1019.             //$form->bindRequest($request);
  1020.              
  1021.             if ($form->isValid()) {
  1022.                 $formData $form->getData();
  1023.                 $feed->setFeedName($formData->getFeedName());
  1024.                 $feed->setFeedUrl($formData->getFeedUrl());
  1025.                 $feed->setFeedType($formData->getFeedType());
  1026.                 
  1027.                 //print('<br>QQW cat 1: '.$request->request->get('form')['category1']);
  1028.                 //Doctrine\Common\Util\Debug::dump($request->request->get('form')['category1']);
  1029.                 
  1030.                 /* departments */
  1031.                 /* we remove old associations */
  1032.                 foreach($feed->getDepartments() as $dep) {
  1033.                     $feed->removeDepartment($dep);
  1034.                 }
  1035.                 
  1036.                 if($form['department1']->getData() !== 0) {
  1037.                     $department1 $em->getRepository(Server::class)->getDepartment($form['department1']->getData());
  1038.                     if(!empty($department1)) {
  1039.                         $feed->addDepartment($department1);
  1040.                     }
  1041.                 }
  1042.                 /* we persist and save */
  1043.                 foreach($feed->getDepartments() as $dep) {
  1044.                     $em->persist($dep);
  1045.                 }
  1046.                 $em->persist($feed);
  1047.                 $em->flush();
  1048.                 $this->addFlash('notice''Feed was updated.');
  1049.                 return $this->redirectToRoute('feedConfig');
  1050.                  
  1051.             }
  1052.              
  1053.         }
  1054.         /* we render data */
  1055.         return $this->render('feedConfig.html.twig',
  1056.             array('headerData' => $this -> getPageHeader($request),
  1057.                   'form' => $formBuilder->getForm()->createView(),
  1058.                   'feed' => $feed,
  1059.                   'userDirs' => $userDirs,
  1060.                   'menu' => $this -> adminMenu($request),
  1061.                         'mainMenu' => $this -> adminMainMenu($request),
  1062.                   'user' => $user,
  1063.                 )
  1064.         );        
  1065.     }      
  1066.     /**
  1067.      * @Route("/marketplaceProductAdmin", name="marketplaceProductAdmin")
  1068.      */
  1069.     public function marketplaceProductAdminAction(Request $request)
  1070.     {
  1071.         /* we load session data */
  1072.         parent::init($request);
  1073.         $session $request->getSession();
  1074.         /* we load entity managers */
  1075.         $em $this->doctrine->getManager();
  1076.         $dem $this->doctrine->getManager('dynamic_em');
  1077.         
  1078.         /* we get current user */
  1079.         $currentUserId $session->get('user')->getUserId();
  1080.         $user $em->getRepository(User::class)->getUser($currentUserId);
  1081.         /* setting current feed */
  1082.         if(!empty($request->query->get('setCurrent'))) {
  1083.             $feed $em->getRepository(Feed::class)->getFeed($request->query->get('setCurrent'));
  1084.             $em->getRepository(Feed::class)->setCurrentFeed($currentUserId$request->query->get('setCurrent'));
  1085.             $session->set('feed'$feed);
  1086.             
  1087.             $this->addFlash('notice''The feed '.$feed->getFeedName().' was set as current one.');
  1088.             return $this->redirectToRoute('marketplaceProductAdmin');
  1089.             
  1090.         }
  1091.         
  1092.         /* we get current feed */
  1093.         $currentFeed $em->getRepository(Feed::class)->getCurrentFeed($currentUserId);
  1094.       
  1095.       /*
  1096.         print('<br>qqw currentEshop: ');
  1097.         \Doctrine\Common\Util\Debug::dump($currentEshop->getEshopId());
  1098.       */      
  1099.       
  1100.         /* we load list of eshop links for logged user */
  1101.         $feedList $em->getRepository(Feed::class)->getFeedListByUser($currentUserId);
  1102. //        print('<br>qqw feedList: ');
  1103. //        \Doctrine\Common\Util\Debug::dump($feedList);
  1104.         /* we render data */
  1105.         return $this->render('feedAdmin.html.twig',
  1106.             array('headerData' => $this -> getPageHeader($request),
  1107.                   'feedList' => $feedList,
  1108.                   'menu' => $this -> adminMenu($request),
  1109.                     'mainMenu' => $this -> adminMainMenu($request),
  1110.                     'user' => $user,
  1111.                 )
  1112.         );        
  1113.     }         
  1114.     public function adminMenu(Request $request)
  1115.     {
  1116.         $menuItems = array(=> array('link' => 'marketplaceAdmin''langKey' => 'marketplace.admin''routeName' => 'marketplaceAdmin'),
  1117.                 => array('link' => 'marketplaceProductListEdit''langKey' => 'marketplace.products''routeName' => 'marketplaceProductListEdit'),
  1118.                 => array('link' => 'marketplaceProductAdmin''langKey' => 'module.marketplaceProductAdmin''routeName' => 'marketplaceProductAdmin'),
  1119.                 => array('link' => 'feedNew''langKey' => 'marketplace.new_feed''routeName' => 'feedNew'),                
  1120.                 => array('link' => 'eshopLinkAdmin''langKey' => 'module.eshopLinkAdmin''routeName' => 'eshopLinkAdmin'),
  1121.                 => array('link' => 'addproducts''langKey' => 'module.eshopLink_new''routeName' => 'eshopLinkNew'),
  1122.         );  
  1123.         
  1124.         return $menuItems;
  1125.     
  1126.     }      
  1127. }