src/Controller/EventsController.php line 94

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use http\Header;
  4. use Pimcore\Controller\FrontendController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Pimcore\Model\DataObject;
  9. use Pimcore\Model\DataObject\Events;
  10. use Pimcore\Model\DataObject\Service;
  11. use Pimcore\Model\DataObject\Userloyaltyprogram;
  12. use App\Form\RegistrationFormType;
  13. use App\Form\CofiqueRegistrationFormType;
  14. use Symfony\Contracts\Translation\TranslatorInterface;
  15. use Pimcore\Model\DataObject\EventRegistrationForm;
  16. use Pimcore\Model\DataObject\CofiqueRegistrationForm;
  17. use Pimcore\Model\Asset\Image;
  18. use App\Service\EmailService;
  19. use CustomerManagementFrameworkBundle\CustomerSaveValidator\Exception\DuplicateCustomerException;
  20. //use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
  21. class EventsController extends FrontendController
  22. {
  23.     public function eventAction(Request $request){
  24.         $featured_events = new Events\Listing();
  25.         $featured_events->setCondition('featured IN (?)','1');
  26.         //$featured_events->addConditionParam('date_time >= ?',time());
  27.         $featured_events->setLimit(1);
  28.         $featured_events->load();
  29.         $F_event_id 0;
  30.         foreach($featured_events as $Featured_events){
  31.             $F_event_id=$Featured_events->getId();
  32.             break;
  33.         }
  34.          
  35.         //most recent event
  36.         $recent_events = new Events\Listing();
  37.        // $recent_events->setCondition('date_time >= ?',time());
  38.         //$recent_events->setOrderKey("date_time");
  39.         //$recent_events->setOrder("asc");
  40.         $recent_events->setLimit(1);
  41.         $recent_events->load();
  42.         $R_event_id =0;
  43.        
  44.         foreach($recent_events as $Recent_events){
  45.             $R_event_id $Recent_events->getId();
  46.             break;
  47.         }
  48.         $events = new Events\Listing();
  49.         $currentDateTime = new \DateTime();
  50.     
  51.         if($request->get('data')){
  52.             if($request->get('data') == 'Upcoming_Events'){
  53.                 $events->setCondition('date_time > ?',strtotime($currentDateTime->format('Y-m-d H:i')));
  54.             }elseif ($request->get('data') == 'Past_Events') {
  55.                 $events->setCondition('date_time < ?',strtotime($currentDateTime->format('Y-m-d H:i')));
  56.                
  57.             }
  58.             
  59.         }else{
  60.             $events->setCondition('date_time < ?',strtotime($currentDateTime->format('Y-m-d H:i')));
  61.         }
  62.         $events->load();
  63.        
  64.         return $this->render('events/events.html.twig',[
  65.             'events'=>$events,
  66.             'featuredevents'=>$featured_events,
  67.             'recent_events'=>$Recent_events
  68.         ]);
  69.     }
  70.     public function eventdetailsAction(Request $request)
  71.     {
  72.         $request->get('url');
  73.         $event_detail = new Events\Listing();
  74.         $event_detail->setCondition('url = ?',[$request->get('url')]);
  75.         $event_detail->load();
  76.         foreach($event_detail as $eventdetail){
  77.             $obj_id $eventdetail->getId();
  78.             break;
  79.         }
  80.         $uid $this->get('session')->get('loginUID');
  81.         $Liked = new Userloyaltyprogram\Listing();
  82.         $Liked->setCondition("op_name = ? and u_id = ? and obj_data__id = ?",['Like',$uid,$obj_id]);
  83.         $Liked->load();
  84.         return $this->render('events/events-detail.html.twig'
  85.         [
  86.             'eventdetail'=>$eventdetail,
  87.             'Liked'=>$Liked,
  88.         ]
  89.     );
  90.     }
  91.     /**
  92.      * @Route("/{locale}/events/chef-competition", name="event_competition")
  93.     */
  94.     public function eventCompetitionAction(Request $requestTranslatorInterface $translator)
  95. {
  96.     $errors = [];
  97.     $form $this->createForm(RegistrationFormType::class, null, [
  98.         'translator' => $translator,
  99.     ]);
  100.     $form->handleRequest($request);
  101.     if ($form->isSubmitted()) {
  102.         // Remember scroll position before form submission
  103.         if ($form->isValid()) {
  104.             $data $form->getData();
  105.             $user EventRegistrationForm::getByEmailAddress($data["emailAddress"], true);
  106.             if ($user && $user instanceof EventRegistrationForm) {
  107.                 $this->addFlash("danger"$translator->trans("Email already exists. Please use a different email address."));
  108.                 return $this->redirectToRoute('event_competition', ['locale' => $request->getLocale(), '_fragment' => 'yourAnchor']);
  109.             } else {
  110.                 $asset=$this->uploadImage($form->get('dishImage'));
  111.                 //$data['assetFile'] = $asset;
  112.                 if ($this->saveUser($data,$asset)) {
  113.                     $mail = new EmailService();
  114.                     // $request->getLocale()
  115.                     $doc '/en/emails/user_registration';
  116.                     if($request->getLocale() == 'ar'){
  117.                         $doc '/ar/emails/user_registration';
  118.                     }
  119.                     $mail->sendEmail($data['emailAddress'], 'Thank You for Registering in the first ZADK & GCS Saudi Fusion Culinary Competition!'$doc$data);
  120.                     $data['assetFile'] = $asset;    
  121.                     $mail->sendEmail('naa@goody.com.sa'$data['fullName'], '/en/emails/registration_user_data'$data);
  122.                     $mail->sendEmail('chef.chris@zadk.com.sa'$data['fullName'], '/en/emails/registration_user_data'$data);
  123.                     $mail->sendEmail('bmr@goody.com.sa'$data['fullName'], '/en/emails/registration_user_data'$data);
  124.                     $this->addFlash("success"$translator->trans("Thank you for registering! We will contact you soon."));
  125.                     // Redirect to the anchor after form submission
  126.                     return $this->redirectToRoute('event_competition', ['locale' => $request->getLocale(), '_fragment' => 'yourAnchor']);
  127.                 }
  128.             }
  129.         }
  130.     }
  131.     // If the form is not valid or not submitted, render the template without redirection
  132.     return $this->render('events/events-competition.html.twig', [
  133.         'form' => $form->createView()
  134.     ]);
  135. }
  136.     public function errorEventAction(Request $request){
  137.         // return $this->json(['something'=>'soemthing']);
  138. //        dd($httpException.getStatusCode());
  139.         return $this->render('errors/error-en.html.twig');
  140.     }
  141.     // /**
  142.     //  * @Route("/registration-form", name="registration-form")
  143.     // */
  144.     // public function registrationAction(Request $request ,TranslatorInterface $translator){
  145.     //   $errors =[];
  146.     //     $form = $this->createForm(RegistrationFormType::class,null, [
  147.     //         'translator' => $translator,
  148.     //     ]);
  149.         
  150.         
  151.    
  152.     //     $form->handleRequest($request);
  153.         
  154.     //     if ($form->isSubmitted() && $form->isValid()) {
  155.     //         $data = $form->getData();
  156.     //         try{
  157.     //             $user=EventRegistrationForm::getByEmailAddress($data["emailAddress"],true);
  158.            
  159.     //                 if($this->saveUser($data)){
  160.     //                     $mail=new EmailService();
  161.     //                     $mail->sendEmail($data['emailAddress'],'Thank You for Registering in the first ZADK & GCS Saudi Fusion Culinary Competition!','/en/emails/user_registration',$data);
  162.     //                     $mail->sendEmail('samrat.kumar@centric.ae',$data['fullName'],'/en/emails/registration_user_data',$data);
  163.     //                     $this->addFlash("success",$translator->trans("Thank you for your query. Our representatives wil respond to your query very soon."));                    
  164.     //                 }
  165.     //                 $response = $this->redirectToRoute('registration-form');
  166.             
  167.     //     } catch (DuplicateCustomerException $e) {
  168.     //         $errors[] = $translator->trans(
  169.     //             'account.customer-already-exists',
  170.     //             [
  171.     //                 $customer->getEmail(),
  172.     //                 $urlGenerator->generate('account-password-send-recovery', ['email' => $customer->getEmail()])
  173.     //             ]
  174.     //         );
  175.     //     } catch (\Exception $e) {
  176.     //         $errors[] = $e->getMessage();
  177.     //     }
  178.            
  179.     //     }
  180.     //     if ($form->isSubmitted() && !$form->isValid()) {
  181.     //         foreach ($form->getErrors() as $error) {
  182.     //             $errors[] = $error->getMessage();
  183.     //         }
  184.     //     }
  185.     //     return $this->render('events/event-registationform.html.twig', [
  186.     //         'form' => $form->createView(),
  187.     //         'errors' => $errors,
  188.     //     ]);
  189.     // }
  190.     public function saveUser($data,$asset){
  191.         $register=new EventRegistrationForm();
  192.         $register->setParent(Service::createFolderByPath('Registration ZDAK/'.date('Y')."/".date('M').'/'.date('d')."/"));
  193.         $register->setKey($data["emailAddress"]);
  194.         $register->setFullName($data["fullName"]);
  195.         $register->setEmailAddress($data["emailAddress"]);
  196.         $register->setPhoneNumber($data["phoneNumber"]);
  197.         $register->setCountry("Saudi Arabia");
  198.         $register->setCity($data["city"]);
  199.         $register->setBirthYear($data["birthYear"]);
  200.         $register->setGender($data["gender"]);
  201.         $register->setCurrentPlaceOfEmployment($data["currentPlaceOfEmployment"]);
  202.         $register->setYearOfExperience($data["yearOfExperience"]);
  203.         $register->setPositionTitle($data["positionTitle"]);
  204.         $register->setTellUsMoreAboutYourself($data["tellUsMoreAboutYourself"]);
  205.         $register->setHowDidYouHearAboutTheCompetition($data["howDidYouHearAboutTheCompetition"]);
  206.         $register->setDishToPresent($data["dishToPresent"]);
  207.         $register->setDishImage($asset);
  208.         $register->setHaveYouParticipatedInSimilarCompetition(true);
  209.         $register->setDoYouUseGcsProduct(true);
  210.         if($data["haveYouParticipatedInSimilarCompetition"]=='no'){
  211.         $register->setHaveYouParticipatedInSimilarCompetition(false);
  212.         }
  213.         if($data["doYouUseGcsProduct"]=='no'){
  214.         $register->setDoYouUseGcsProduct(false);
  215.         }
  216.         
  217.         $register->setNameYourFavoriteProducts($data["nameYourFavoriteProducts"]);
  218.         $register->setCompetitionName($data["competitionName"]);
  219.         $register->setPublished(true);
  220.         $register->save();
  221.         return true;
  222.     }
  223.     public function uploadImage($file)
  224.     {
  225.         $asset = new Image();
  226.         $uploadedFile $file->getData();
  227.         $asset->setFilename(strtotime(date('y-m-d H:i:s')).'-'.$uploadedFile->getClientOriginalName());
  228.         $asset->setData(file_get_contents($uploadedFile));
  229.         $parent =  \Pimcore\Model\Asset\Service::createFolderByPath('/event_form_image/');
  230.         $asset->setParent($parent);
  231.         $asset->save();
  232.         return $asset;
  233.     }
  234.     public function cofiqueBaristaCompetitionAction(Request $requestTranslatorInterface $translator){
  235.         $errors = [];
  236.     $form $this->createForm(CofiqueRegistrationFormType::class, null, [
  237.         'translator' => $translator,
  238.     ]);
  239.     $form->handleRequest($request);
  240.     if ($form->isSubmitted()) {
  241.         // Remember scroll position before form submission
  242.         if ($form->isValid()) {
  243.             $data $form->getData();
  244.             $user CofiqueRegistrationForm::getByEmailAddress($data["emailAddress"], true);
  245.             if ($user && $user instanceof CofiqueRegistrationForm) {
  246.                 $this->addFlash("danger"$translator->trans("Email already exists. Please use a different email address."));
  247.                 return $this->redirectToRoute('cofique_barista_competition', ['locale' => $request->getLocale(), '_fragment' => 'yourAnchor']);
  248.             } else {
  249.                 if ($this->saveUserCofiqueData($data)) {
  250.                     $mail = new EmailService();
  251.                     // $request->getLocale()
  252.                     $doc '/en/emails/cofique_thankyou_email_en';
  253.                     if($request->getLocale() == 'ar'){
  254.                         $doc '/ar/emails/cofique_thankyou_email_ar';
  255.                     }
  256.                     $mail->sendEmail($data['emailAddress'], 'Thank You for Registering for the Cofique Barista Competition!'$doc$data);
  257.                     $mail->sendEmail('reine.tohme@centric.ae'$data['fullName'], '/en/emails/cofique_registration_user'$data);
  258.                     // $mail->sendEmail('naa@goody.com.sa', $data['fullName'], '/en/emails/cofique_registration_user', $data);
  259.                     // $mail->sendEmail('chef.chris@zadk.com.sa', $data['fullName'], '/en/emails/cofique_registration_user', $data);
  260.                     // $mail->sendEmail('bmr@goody.com.sa', $data['fullName'], '/en/emails/cofique_registration_user', $data);
  261.                     $this->addFlash("success"$translator->trans("Thank you for registering! We will contact you soon."));
  262.                     // Redirect to the anchor after form submission
  263.                     return $this->redirectToRoute('cofique_barista_competition', ['locale' => $request->getLocale(), '_fragment' => 'yourAnchor']);
  264.                 }
  265.             }
  266.         }
  267.     }
  268.         return $this->render('events/cofique-barista-competition.html.twig', [
  269.             'form' => $form->createView()
  270.         ]);
  271.     
  272.     }
  273.     public function saveUserCofiqueData($data){
  274.         $register=new CofiqueRegistrationForm();
  275.         $register->setParent(Service::createFolderByPath('Registration Cofique/'.date('Y')."/".date('M').'/'.date('d')."/"));
  276.         $register->setKey($data["emailAddress"]);
  277.         $register->setFullName($data["fullName"]);
  278.         $register->setEmailAddress($data["emailAddress"]);
  279.         $register->setPhoneNumber($data["phoneNumber"]);
  280.         $register->setCountry("Saudi Arabia");
  281.         $register->setCity($data["city"]);
  282.         $register->setBirthYear($data["birthYear"]);
  283.         $register->setGender($data["gender"]);
  284.         $register->setCurrentPlaceOfEmployment($data["currentPlaceOfEmployment"]);
  285.         $register->setYearOfExperience($data["yearOfExperience"]);
  286.         $register->setPositionTitle($data["positionTitle"]);
  287.         $register->setTellUsMoreAboutYourself($data["tellUsMoreAboutYourself"]);
  288.         $register->setHowDidYouHearAboutTheCompetition($data["howDidYouHearAboutTheCompetition"]);
  289.         $register->setHaveYouParticipatedInSimilarCompetition(true);
  290.         $register->setDoYouUseGcsProduct(true);
  291.         $register->setDoYouHaveFoodAllergies(true);
  292.         $register->setAreYouAvailableForTravel(true);
  293.         if($data["haveYouParticipatedInSimilarCompetition"]=='no'){
  294.         $register->setHaveYouParticipatedInSimilarCompetition(false);
  295.         }
  296.         if($data["doYouUseGcsProduct"]=='no'){
  297.         $register->setDoYouUseGcsProduct(false);
  298.         }
  299.         if($data["doYouHaveFoodAllergies"]=='no'){
  300.             $register->setDoYouUseGcsProduct(false);
  301.         }
  302.         if($data["areYouAvailableForTravel"]=='no'){
  303.             $register->setDoYouUseGcsProduct(false);
  304.         }
  305.         
  306.         $register->setNameYourFavoriteProducts($data["nameYourFavoriteProducts"]);
  307.         $register->setCompetitionName($data["competitionName"]);
  308.         $register->setPleaseSpecifyFood($data["pleaseSpecifyFood"]);
  309.         $register->setPublished(true);
  310.         $register->save();
  311.         return true;
  312.     }
  313.     /**
  314.      * @Route("/{locale}/events/barista-course", name="competion-baresta")
  315.     */
  316.     public function barestaCourseAction(Request $request)
  317.     {
  318.         $locate $request->getLocale();
  319.         $url =  $request->get('turl');
  320.         $ref $request->server->get('REDIRECT_URL');
  321.         $this->get('session')->set('refURL'$ref);
  322.         $email $this->get('session')->get('loginUserId');
  323.         if ($email) {
  324.         return $this->render('competition/baresta-course.html.twig');
  325.         } else {
  326.             return $this->redirect('/en/signin');
  327.         }
  328.     }
  329.     /**
  330.      * @Route("/{locale}/events/lifestyle-course", name="competion-baresta")
  331.     */
  332.     public function lifestyleCourseAction(Request $request)
  333.     {
  334.         $locate $request->getLocale();
  335.         $url =  $request->get('turl');
  336.         $ref $request->server->get('REDIRECT_URL');
  337.         $this->get('session')->set('refURL'$ref);
  338.         $email $this->get('session')->get('loginUserId');
  339.         if ($email) {
  340.             return $this->render('competition/lifestyle-course.html.twig');
  341.         } else {
  342.             return $this->redirect('/en/signin');
  343.         }
  344.     }   
  345. }
  346.   
  347. ?>