src/Controller/DefaultController.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Log\ApplicationLogger;
  4. use Pimcore\Model\DataObject\Customer;
  5. use Pimcore\Model\DataObject\Faq\Listing;
  6. use Pimcore\Controller\FrontendController;
  7. use FrontendPermissionToolkitBundle\Service;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  12. class DefaultController extends FrontendController
  13. {
  14.     /** @var TranslatorInterface */
  15.     protected $translator;
  16.     /** 
  17.      * @var Service 
  18.      */
  19.     protected $permissionService;
  20.     public function __construct(TranslatorInterface $translatorService $permissionService )
  21.     {
  22.         $this->translator $translator;
  23.         $this->permissionService $permissionService;
  24.     }
  25.     /**
  26.      * @Template
  27.      * 
  28.      * @Route("/", name="home")
  29.      * @param Request $request
  30.      *
  31.      * @return array
  32.      */
  33.     public function defaultAction(Request $request)
  34.     {
  35.         $params = [];
  36.         $user $this->getUser();
  37.         if(!$user){
  38.             return $this->redirectToRoute('account-login');
  39.         }
  40.         
  41.         $this->setUserParams($params);
  42.         return $params;
  43.     }
  44.     /**
  45.      * @Template
  46.      * @param Request $request
  47.      *
  48.      * @return array
  49.      */
  50.     public function faqAction(Request $request){
  51.         $params = [];
  52.         $user $this->getUser();
  53.         
  54.         if(!$user){
  55.             return $this->redirectToRoute('account-login', ["_target_path" => $request->getPathInfo()]);
  56.         }
  57.         
  58.         $this->setUserParams($params);
  59.         $faqList = new Listing();
  60.         $faqList->filterByEnabled("1");
  61.         $faqs $faqList->load();
  62.         if($faqs){
  63.             $params['faqs'] = $faqs;
  64.         } else{
  65.             $params['faqs'] = [];
  66.         }
  67.         return $params;
  68.     }
  69.     /**
  70.      * @param Request $request
  71.      * @return array
  72.      */
  73.     public function sentPublicationNewsletterEmailAction(Request $request){
  74.         $params = [
  75.             "customerName" => $request->get('customerName'),
  76.             "materials" => $request->get('materials'),
  77.         ];
  78.         return $this->render("default/publicationNewsletterEmail.html.twig"$params);
  79.     }
  80.     /**
  81.      * @param Request $request
  82.      * @return array
  83.      */
  84.     public function sendEmailOrderFormAction(Request $request)
  85.     {
  86.         $params = [
  87.             "message" => $request->get('message'),
  88.             "subject" => $request->get('subject'),
  89.             "username" => $request->get('username'),
  90.             "from" => $request->get('from'),
  91.             "ragioneSociale" => $request->get('ragioneSociale'),
  92.             "codiceCliente" => $request->get('codiceCliente'),
  93.             "nomeCliente" => $request->get('nomeCliente'),
  94.             "cognomeCliente" => $request->get('cognomeCliente'),
  95.         ];
  96.         
  97.         return $this->render("default/orderForm.html.twig"$params);
  98.     }
  99.     /**
  100.      * @param Request $request
  101.      * @return array
  102.      */
  103.     public function sendEmailOrderFormCustomerAction(Request $request)
  104.     {
  105.         $params = [
  106.             "message" => $request->get('message'),
  107.             "subject" => $request->get('subject'),
  108.             "username" => $request->get('username'),
  109.             "from" => $request->get('from'),
  110.         ];
  111.         return $this->render("default/orderFormCustomer.html.twig"$params);
  112.     }
  113.     /**
  114.      * Undocumented function
  115.      *
  116.      * @param array $params
  117.      * @return void
  118.      */
  119.     protected function setUserParams(array &$params){
  120.         $user $this->getUser();
  121.         if ($user && $user instanceof Customer) {
  122.             
  123.             $customerLanguages $user->getLanguages();
  124.             if($customerLanguages){
  125.                 $languages = [];
  126.                 foreach($customerLanguages as $customerLanguage){
  127.                     $language['code'] =  $customerLanguage;
  128.                     $language['lang'] =  locale_get_display_language($customerLanguage'en');
  129.                     array_push($languages,$language);
  130.                 }
  131.                 $params['customerLanguages'] = $languages;
  132.             }
  133.             $params['permissions'] = array_map(fn($permission) => $permission === 'allow' true false$this->permissionService->getPermissions($user));
  134.             
  135.             $userRole $user->getCustomerRole();
  136.             $params['includedBrands'] = $userRole->getIncludedBrands();
  137.             $params['excludedBrands'] = $userRole->getExcludedBrands();
  138.             $params['includedSublines'] = $userRole->getIncludedSublines();
  139.             $params['excludedSublines'] = $userRole->getExcludedSublines();
  140.             $params['logged'] = true;
  141.             $params['mail'] = $user->getEmail();
  142.         }else{
  143.             $params['logged'] = false;
  144.         }
  145.         return $params;
  146.     }
  147.     /**
  148.      * @Route("/confirm-registration/{guid}", methods={"GET"})
  149.      */
  150.     public function confirmRegistration(Request $request)
  151.     {
  152.         $guid $request->get('guid');
  153.         if (!(empty($guid))) {
  154.             $customer Customer::getByConfirmRegistrationToken($guid1);
  155.             if($customer){
  156.                 $customer->setActive(true);
  157.                 $customer->setConfirmRegistrationToken(null);
  158.                 $language "en";
  159.                 $languages $customer->getLanguages();
  160.                 $guid uuid_create();
  161.                 $customer->setPasswordRecoveryToken($guid);
  162.                 $customer->save();
  163.                 return $this->render('account/passwordRestore.html.twig', array(
  164.                     'errors' => [],
  165.                     'title' => $this->translator->trans("password_creation_title", [], 'messages'$language),
  166.                     'psw_criter_upper' => $this->translator->trans("error_password_uppercase", [], 'messages'$language),
  167.                     'psw_criter_lower' => $this->translator->trans("error_password_lowercase", [], 'messages'$language),
  168.                     'psw_criter_special' => $this->translator->trans("error_password_special", [], 'messages'$language),
  169.                     'psw_criter_twelve' => $this->translator->trans("error_password_number", [], 'messages'$language),
  170.                     'psw_criter_number' => $this->translator->trans("error_password_twelve", [], 'messages'$language),
  171.                     'locale' => $language,
  172.                     'guid' => $guid,
  173.                 ));
  174.             }else{
  175.                 return $this->redirectToRoute('account-login');
  176.             }
  177.             
  178.         } else {
  179.             return $this->redirectToRoute('home');
  180.         }
  181.     }
  182.     /**
  183.      * 
  184.      * @Route("/password-restore/{guid}", methods={"GET"})
  185.      *
  186.      * @param Request $request
  187.      * @return void
  188.      */
  189.     public function passwordRestoreAction(Request $requeststring $guid)
  190.     {
  191.         $customerByGuid Customer::getByPasswordRecoveryToken($guid1);
  192.         if(!$customerByGuid){
  193.             return $this->redirectToRoute('account-login');
  194.         }
  195.         $locale $this->document->getProperty("language");
  196.         if (($customerByGuid instanceof Customer)) {
  197.             $language "en";
  198.             return $this->render('account/passwordRestore.html.twig', array(
  199.                 'guid' => $guid,
  200.                 'psw_criter_upper' => $this->translator->trans("error_password_uppercase", [], 'messages'$language),
  201.                 'psw_criter_lower' => $this->translator->trans("error_password_lowercase", [], 'messages'$language),
  202.                 'psw_criter_special' => $this->translator->trans("error_password_special", [], 'messages'$language),
  203.                 'psw_criter_twelve' => $this->translator->trans("error_password_number", [], 'messages'$language),
  204.                 'psw_criter_number' => $this->translator->trans("error_password_twelve", [], 'messages'$language),
  205.                 'title' => $this->translator->trans("password_restore_title", [], 'messages'$language),
  206.                 'locale' => $locale
  207.             ));
  208.         } else {
  209.             return $this->redirectToRoute('home');
  210.         }
  211.         return $this->json(["success" => true]);
  212.     }
  213.     /**
  214.      * @Route("/password-recovery", methods={"GET"})
  215.      */
  216.     public function passwordRecoveryAction(Request $request)
  217.     {
  218.         return $this->render('account/passwordRecovery.html.twig', array('success' => """error" => "","locale"=>"en"));
  219.     }
  220. }