src/Controller/SignupController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Pimcore\Model\DataObject;
  8. use Pimcore\Model\DataObject\Products;
  9. use CustomerManagementFrameworkBundle\CustomerProvider\CustomerProviderInterface;
  10. //use Symfony\Component\Mailer\MailerInterface;
  11. //use Symfony\Component\Mime\Email;
  12. use Pimcore\Model\DataObject\Newsletter;
  13. use Pimcore\Localization\LocaleServiceInterface;
  14. use Pimcore\Model;
  15. use Pimcore\Model\DataObject\ClassDefinition\Service;
  16. use Pimcore\Model\DataObject\Users;
  17. use Pimcore\Model\User\Role;
  18. use Pimcore\Model\DataObject\Image;
  19. use Pimcore\Model\Asset;
  20. use Pimcore\Mail;
  21. use App\Service\C2Service;
  22. use Symfony\Component\Templating\EngineInterface;
  23. use CustomerManagementFrameworkBundle\CustomerSaveValidator\Exception\DuplicateCustomerException;
  24. class SignupController extends FrontendController
  25. {
  26.     private $c2Service;
  27.     private $templating;
  28.     public function __construct(EngineInterface $templating)
  29.     {
  30.         $this->templating $templating;
  31.         $this->c2Service = new C2Service();
  32.     }
  33.     public function SignupAction(Request $request)
  34.     {
  35.         $countries \Pimcore::getContainer()->get(LocaleServiceInterface::class)->getDisplayRegions();
  36.         asort($countries);
  37.         $roles = new Role\Listing();
  38.        return $this->render('content/signup.html.twig'
  39.                      [
  40.                          'countries'=>$countries,
  41.                          'roles' => $roles->getRoles()
  42.                      ]
  43.         );
  44.     }
  45.     /**
  46.      * @Route("/validate-email", name="validate-email")
  47.     */
  48.     public function emailValidation(Request $requestCustomerProviderInterface $customerProvider){
  49.         if($request->get('email')){
  50.             
  51.             $user Users::getByEmail($request->get('email'));
  52.             $user->load();
  53.             if($user->getData()){
  54.                 $text 'Email already registerd';
  55.             }else{
  56.                 $text '';
  57.             }
  58.         }
  59.         return $this->json(array('success'=>$text));
  60.     }
  61.     public function RegisterAction(Request $requestCustomerProviderInterface $customerProvider)
  62.     {
  63.         $success false;
  64.         $session $request->getSession();
  65.         // $mailSent = $this->c2Service->sendDefaultEmail($_ENV['REGISTRATION_TEMPLATE'],50752,"samrat.kumar@centric.ae","html","Welcome to Goody Professional","test");
  66.         // dd($mailSent);
  67.         // if($request->isXmlHttpRequest()) {
  68.         //     $emailChk = $request->get('email');
  69.         //     $user = Users::getByEmail($emailChk);
  70.         //     $user->load();
  71.         //     $is_customer = $customerProvider->getActiveCustomerByEmail($emailChk);
  72.         //    if(empty($user->getData()) && empty($is_customer)){
  73.         //     $users = new Users();
  74.         //     $users->setKey(\Pimcore\File::getValidFilename($request->get('email')));
  75.         //     $users->setParent(DataObject\Folder::getByPath('/Users/'));
  76.         //     $users->setFirstname($request->get('firstname'));
  77.         //     $users->setLastname($request->get('lastname'));
  78.         //     $users->setEmail($request->get('email'));
  79.         //     $users->setPassword('goodyCS789');
  80.         //     //$users->setCountry($request->get('country'));
  81.         //     $users->setRegisterwith(0);
  82.         //     $users->setUser_image(null);
  83.         //     $users->setPublished(true);
  84.         //     $data = $users->save();
  85.         //    $customer = $customerProvider->create([
  86.         //         'firstname' => $request->get('firstname'),
  87.         //         'lastname' => $request->get('lastname'),
  88.         //         'email' => $request->get('email'),
  89.         //         'password' => 'goodyCS789',
  90.         //         //'countryCode' => $request->get('country'),
  91.         //         'roleName' => 'Normal',
  92.         //         'active' => true,
  93.         //     ]);
  94.         //     $customer->save();
  95.         //    if( $data){ $success = true; } else { $success = false; }      
  96.         //         return $this->json(array('success'=>$success));
  97.         //    } else {
  98.         //     return $this->json(array('success'=>$success));
  99.         //    }       
  100.         // } else {
  101.         if($request->get('email')){
  102.             if($request->get('newslatter')){
  103.                 $newslatter = new Newsletter\Listing();
  104.                 $newslatter->setCondition('email = ?', [$request->get('email')]);
  105.                 $checknewslatter $newslatter->load();
  106.                 if(!empty($checknewslatter)){
  107.                     $session->getFlashBag()->add('newslatter-error''This email address has already Subscribe.');
  108.                     return $this->redirect('/signup');
  109.     
  110.                 }else{
  111.                     $Newsletter = new Newsletter();
  112.                     $Newsletter->setKey(\Pimcore\File::getValidFilename($request->get('email')));
  113.     
  114.                     $Newsletter->setParent(DataObject\Folder::getByPath('/Newsletter/'));
  115.                     $Newsletter->setEmail($request->get('email'));
  116.                     $Newsletter->setPublished(true);
  117.                     $result $Newsletter->save();
  118.                 }
  119.              
  120.             }
  121.            
  122.             
  123.             $user = new Users\Listing();
  124.             $user->setCondition('o_key = ?'\Pimcore\File::getValidFilename($request->get('email')));
  125.             $usrChk $user->load();
  126.             if(!empty($usrChk)){
  127.                 $session->getFlashBag()->add('error''User Already Exists');
  128.                 return $this->redirect('/signup');
  129.             }else {
  130.                       if(!empty($_POST['g-recaptcha-response'])){
  131.                        
  132.                             $secret $secretprod '6Le5OcAgAAAAAIxdbVPc2Y3DN6WMEWzAmE2F85WR';
  133.                         
  134.                     
  135.                         $url 'https://www.google.com/recaptcha/api/siteverify?secret=' urlencode($secret) .  '&response=' urlencode($_POST['g-recaptcha-response']);
  136.                     // $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
  137.                         $verifyResponse file_get_contents($url);
  138.                         $responseData json_decode($verifyResponse);
  139.                         if($responseData->success == true){
  140.                         $users = new Users();
  141.                         $users->setKey(\Pimcore\File::getValidFilename($request->get('email')));
  142.                         $users->setParent(DataObject\Folder::getByPath('/Users/'));
  143.             
  144.                         $users->setFirstname($request->get('firstname'));
  145.                         $users->setLastname($request->get('lastname'));
  146.                         $users->setEmail($request->get('email'));
  147.                         $users->setPassword($request->get('password'));
  148.                         $users->setCountry($request->get('country'));
  149.                         $users->setAddress1($request->get('address1'));
  150.                         $users->setAddress2($request->get('address2'));
  151.                         $users->setCompany($request->get('company'));
  152.                         $users->setBusiness_type($request->get('business_type'));
  153.                         $users->setMobilenumber($request->get('mobilenumber'));
  154.                         $users->setJob_title($request->get('job_title'));
  155.                         $users->setRegisterwith(0);
  156.                         $users->setUser_image(null);
  157.                         $users->setPublished(true);
  158.                         $data $users->save();
  159.             
  160.                     $customer $customerProvider->create([
  161.                             'firstname' => $request->get('firstname'),
  162.                             'lastname' => $request->get('lastname'),
  163.                             'email' => $request->get('email'),
  164.                             'password' => $request->get('password'),
  165.                             'countryCode' => $request->get('country'),
  166.                             'phone' => $request->get('mobilenumber'),
  167.                             'roleName' => 'Normal',
  168.                             'active' => true,
  169.                         ]);
  170.             
  171.                         $service \Pimcore::getContainer()->get('CustomerManagementFrameworkBundle\CustomerDuplicatesService\CustomerDuplicatesServiceInterface');
  172.                         $duplicates $service->getDuplicatesOfCustomer($customer1);
  173.             
  174.                         try {
  175.                             $customer->save();
  176.                         } catch(DuplicateCustomerException $e) {
  177.                             print "save failed - duplicate found: " $e->getDuplicateCustomer() . PHP_EOL;
  178.                         }
  179.                         if($data){
  180.                             $userID $data->getId();
  181.                             $userData['firstname'] = $data->getFirstname(); 
  182.                             $userData['lastname'] = $data->getLastname();
  183.                             $purpose "registration signup";
  184.                             $html $this->templating->render('web2print/c2templates/registration.html.twig'$userData);
  185.                             $mailSent $this->c2Service->sendDefaultEmail($_ENV['REGISTRATION_TEMPLATE'],$userID,$request->get('email'),$html,"Welcome to Goody Professional",$purpose);
  186.                             $success true;
  187.                             // $mail = new \Pimcore\Mail();
  188.                             // $mail->setIgnoreDebugMode(true);
  189.                             // if($success){
  190.                             //     $data['firstname'] = $request->get('firstname');
  191.                             //     $data['lastname'] = $request->get('lastname');
  192.                             //     $mail->to($request->get('email'));
  193.                             //     $mail->cc('kiran.saleem@centric.ae');
  194.                             //     $mail->setSubject("Welcome to Goody Professional");
  195.                             //     $mail->text("Dear " . $request->get('firstname') . " " . $request->get('lastname') . ",
  196.                             //     We are pleased to inform you that you have successfully 
  197.                             //     registered yourself with Goody Professional.           
  198.                             //     We are looking forward to serve you.   
  199.                             //     Thank You
  200.                             //     Goody Team " 
  201.                             //     );
  202.                             //     $mail->send();              
  203.                             // }
  204.                         }else{
  205.                             $success false;    
  206.                         }
  207.                     }else{
  208.                         $session->getFlashBag()->add('recaptcha-error''Please check the the captcha form.');
  209.                         return $this->redirect('/signup');
  210.                     }
  211.                     }else{
  212.                         $session->getFlashBag()->add('recaptcha-error''Please check the the captcha form.');
  213.                         return $this->redirect('/signup');
  214.                     }
  215.             }          
  216.         }
  217.         $locate $request->getLocale();
  218.         $link $request->server->get('HTTP_REFERER');
  219.         $brlink explode("//"$link);
  220.         $nlnk explode('/'$brlink[1]);
  221.         $locale '';
  222.         if($nlnk[1]==$locate){
  223.             $locale $locate;
  224.         } else {
  225.             $locale $nlnk[1];
  226.         }
  227.             if($success){
  228.                 return $this->redirect('/' $locale .'/signin');
  229.             } else {
  230.                 $session->getFlashBag()->add('error''Register failed');
  231.                 return $this->redirect('/signup');
  232.             }
  233.             
  234.         //}
  235.     }
  236.     public function imageAction(Request $request)
  237.     {
  238.         $success 0;
  239.         if( $request->files->get('image')){
  240.           $userimage $request->files->get('image');  //get image  file
  241.           $extention explode("/",$userimage->getMimeType())[1]; //get extention of image like png , jpg , jpeg
  242.           $rand  time().rand(0,99999);   // get general unique number for image name
  243.           $imgName $rand.".".$extention// concatinate image name with extention
  244.           $imgPath PIMCORE_PROJECT_ROOT."/public/var/assets/".$imgName." "// define path for image upload
  245.           $result move_uploaded_file($userimage->getPathname(), $imgPath); // move image file on defined path
  246.               $asset = new Asset();
  247.               $asset->setParentId(1);
  248.               $asset->setFilename($imgName);
  249.               $asset->setData(file_get_contents($imgPath));
  250.               $asset->save();
  251.                 $Image = new Image();
  252.                 $Image->setKey(\Pimcore\File::getValidFilename(strtotime(date('Y-m-d h:i:s'))));
  253.                 $Image->setParent(DataObject\Folder::getByPath('/Register/'));
  254.                 $img Asset\Image::getByPath('/'.$imgName);
  255.                 $Image->setImg($img);
  256.                 $Image->setPublished(true);
  257.                 $data $Image->save();
  258.                     if( $data){
  259.                         $success 1;
  260.                     }
  261.         }
  262.             return $this->json(array('success' =>$success));
  263.     }
  264.     // public function mailAction(Request $request)
  265.     // {
  266.     //     $success = false;
  267.     //     $mail = new \Pimcore\Mail();
  268.     //     $mail->setIgnoreDebugMode(true);
  269.     //    // dd($mail);
  270.     //     $mail->to('mansoor.ali@centric.ae');
  271.     //     $mail->setSubject("Goody professional");
  272.     //      //$mail->setBody("blank email");
  273.     //     $mail->text("Test email from Goody professional food service");
  274.     //    // dd($mail);
  275.     //     $mail->send();
  276.     //             return $this->json(array('success'));
  277.     // }
  278. }
  279. ?>