<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\Products;
use CustomerManagementFrameworkBundle\CustomerProvider\CustomerProviderInterface;
//use Symfony\Component\Mailer\MailerInterface;
//use Symfony\Component\Mime\Email;
use Pimcore\Model\DataObject\Newsletter;
use Pimcore\Localization\LocaleServiceInterface;
use Pimcore\Model;
use Pimcore\Model\DataObject\ClassDefinition\Service;
use Pimcore\Model\DataObject\Users;
use Pimcore\Model\User\Role;
use Pimcore\Model\DataObject\Image;
use Pimcore\Model\Asset;
use Pimcore\Mail;
use App\Service\C2Service;
use Symfony\Component\Templating\EngineInterface;
use CustomerManagementFrameworkBundle\CustomerSaveValidator\Exception\DuplicateCustomerException;
class SignupController extends FrontendController
{
private $c2Service;
private $templating;
public function __construct(EngineInterface $templating)
{
$this->templating = $templating;
$this->c2Service = new C2Service();
}
public function SignupAction(Request $request)
{
$countries = \Pimcore::getContainer()->get(LocaleServiceInterface::class)->getDisplayRegions();
asort($countries);
$roles = new Role\Listing();
return $this->render('content/signup.html.twig',
[
'countries'=>$countries,
'roles' => $roles->getRoles()
]
);
}
/**
* @Route("/validate-email", name="validate-email")
*/
public function emailValidation(Request $request, CustomerProviderInterface $customerProvider){
if($request->get('email')){
$user = Users::getByEmail($request->get('email'));
$user->load();
if($user->getData()){
$text = 'Email already registerd';
}else{
$text = '';
}
}
return $this->json(array('success'=>$text));
}
public function RegisterAction(Request $request, CustomerProviderInterface $customerProvider)
{
$success = false;
$session = $request->getSession();
// $mailSent = $this->c2Service->sendDefaultEmail($_ENV['REGISTRATION_TEMPLATE'],50752,"samrat.kumar@centric.ae","html","Welcome to Goody Professional","test");
// dd($mailSent);
// if($request->isXmlHttpRequest()) {
// $emailChk = $request->get('email');
// $user = Users::getByEmail($emailChk);
// $user->load();
// $is_customer = $customerProvider->getActiveCustomerByEmail($emailChk);
// if(empty($user->getData()) && empty($is_customer)){
// $users = new Users();
// $users->setKey(\Pimcore\File::getValidFilename($request->get('email')));
// $users->setParent(DataObject\Folder::getByPath('/Users/'));
// $users->setFirstname($request->get('firstname'));
// $users->setLastname($request->get('lastname'));
// $users->setEmail($request->get('email'));
// $users->setPassword('goodyCS789');
// //$users->setCountry($request->get('country'));
// $users->setRegisterwith(0);
// $users->setUser_image(null);
// $users->setPublished(true);
// $data = $users->save();
// $customer = $customerProvider->create([
// 'firstname' => $request->get('firstname'),
// 'lastname' => $request->get('lastname'),
// 'email' => $request->get('email'),
// 'password' => 'goodyCS789',
// //'countryCode' => $request->get('country'),
// 'roleName' => 'Normal',
// 'active' => true,
// ]);
// $customer->save();
// if( $data){ $success = true; } else { $success = false; }
// return $this->json(array('success'=>$success));
// } else {
// return $this->json(array('success'=>$success));
// }
// } else {
if($request->get('email')){
if($request->get('newslatter')){
$newslatter = new Newsletter\Listing();
$newslatter->setCondition('email = ?', [$request->get('email')]);
$checknewslatter = $newslatter->load();
if(!empty($checknewslatter)){
$session->getFlashBag()->add('newslatter-error', 'This email address has already Subscribe.');
return $this->redirect('/signup');
}else{
$Newsletter = new Newsletter();
$Newsletter->setKey(\Pimcore\File::getValidFilename($request->get('email')));
$Newsletter->setParent(DataObject\Folder::getByPath('/Newsletter/'));
$Newsletter->setEmail($request->get('email'));
$Newsletter->setPublished(true);
$result = $Newsletter->save();
}
}
$user = new Users\Listing();
$user->setCondition('o_key = ?', \Pimcore\File::getValidFilename($request->get('email')));
$usrChk = $user->load();
if(!empty($usrChk)){
$session->getFlashBag()->add('error', 'User Already Exists');
return $this->redirect('/signup');
}else {
if(!empty($_POST['g-recaptcha-response'])){
$secret = $secretprod = '6Le5OcAgAAAAAIxdbVPc2Y3DN6WMEWzAmE2F85WR';
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secret) . '&response=' . urlencode($_POST['g-recaptcha-response']);
// $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$verifyResponse = file_get_contents($url);
$responseData = json_decode($verifyResponse);
if($responseData->success == true){
$users = new Users();
$users->setKey(\Pimcore\File::getValidFilename($request->get('email')));
$users->setParent(DataObject\Folder::getByPath('/Users/'));
$users->setFirstname($request->get('firstname'));
$users->setLastname($request->get('lastname'));
$users->setEmail($request->get('email'));
$users->setPassword($request->get('password'));
$users->setCountry($request->get('country'));
$users->setAddress1($request->get('address1'));
$users->setAddress2($request->get('address2'));
$users->setCompany($request->get('company'));
$users->setBusiness_type($request->get('business_type'));
$users->setMobilenumber($request->get('mobilenumber'));
$users->setJob_title($request->get('job_title'));
$users->setRegisterwith(0);
$users->setUser_image(null);
$users->setPublished(true);
$data = $users->save();
$customer = $customerProvider->create([
'firstname' => $request->get('firstname'),
'lastname' => $request->get('lastname'),
'email' => $request->get('email'),
'password' => $request->get('password'),
'countryCode' => $request->get('country'),
'phone' => $request->get('mobilenumber'),
'roleName' => 'Normal',
'active' => true,
]);
$service = \Pimcore::getContainer()->get('CustomerManagementFrameworkBundle\CustomerDuplicatesService\CustomerDuplicatesServiceInterface');
$duplicates = $service->getDuplicatesOfCustomer($customer, 1);
try {
$customer->save();
} catch(DuplicateCustomerException $e) {
print "save failed - duplicate found: " . $e->getDuplicateCustomer() . PHP_EOL;
}
if($data){
$userID = $data->getId();
$userData['firstname'] = $data->getFirstname();
$userData['lastname'] = $data->getLastname();
$purpose = "registration signup";
$html = $this->templating->render('web2print/c2templates/registration.html.twig', $userData);
$mailSent = $this->c2Service->sendDefaultEmail($_ENV['REGISTRATION_TEMPLATE'],$userID,$request->get('email'),$html,"Welcome to Goody Professional",$purpose);
$success = true;
// $mail = new \Pimcore\Mail();
// $mail->setIgnoreDebugMode(true);
// if($success){
// $data['firstname'] = $request->get('firstname');
// $data['lastname'] = $request->get('lastname');
// $mail->to($request->get('email'));
// $mail->cc('kiran.saleem@centric.ae');
// $mail->setSubject("Welcome to Goody Professional");
// $mail->text("Dear " . $request->get('firstname') . " " . $request->get('lastname') . ",
// We are pleased to inform you that you have successfully
// registered yourself with Goody Professional.
// We are looking forward to serve you.
// Thank You
// Goody Team "
// );
// $mail->send();
// }
}else{
$success = false;
}
}else{
$session->getFlashBag()->add('recaptcha-error', 'Please check the the captcha form.');
return $this->redirect('/signup');
}
}else{
$session->getFlashBag()->add('recaptcha-error', 'Please check the the captcha form.');
return $this->redirect('/signup');
}
}
}
$locate = $request->getLocale();
$link = $request->server->get('HTTP_REFERER');
$brlink = explode("//", $link);
$nlnk = explode('/', $brlink[1]);
$locale = '';
if($nlnk[1]==$locate){
$locale = $locate;
} else {
$locale = $nlnk[1];
}
if($success){
return $this->redirect('/' . $locale .'/signin');
} else {
$session->getFlashBag()->add('error', 'Register failed');
return $this->redirect('/signup');
}
//}
}
public function imageAction(Request $request)
{
$success = 0;
if( $request->files->get('image')){
$userimage = $request->files->get('image'); //get image file
$extention = explode("/",$userimage->getMimeType())[1]; //get extention of image like png , jpg , jpeg
$rand = time().rand(0,99999); // get general unique number for image name
$imgName = $rand.".".$extention; // concatinate image name with extention
$imgPath = PIMCORE_PROJECT_ROOT."/public/var/assets/".$imgName." "; // define path for image upload
$result = move_uploaded_file($userimage->getPathname(), $imgPath); // move image file on defined path
$asset = new Asset();
$asset->setParentId(1);
$asset->setFilename($imgName);
$asset->setData(file_get_contents($imgPath));
$asset->save();
$Image = new Image();
$Image->setKey(\Pimcore\File::getValidFilename(strtotime(date('Y-m-d h:i:s'))));
$Image->setParent(DataObject\Folder::getByPath('/Register/'));
$img = Asset\Image::getByPath('/'.$imgName);
$Image->setImg($img);
$Image->setPublished(true);
$data = $Image->save();
if( $data){
$success = 1;
}
}
return $this->json(array('success' =>$success));
}
// public function mailAction(Request $request)
// {
// $success = false;
// $mail = new \Pimcore\Mail();
// $mail->setIgnoreDebugMode(true);
// // dd($mail);
// $mail->to('mansoor.ali@centric.ae');
// $mail->setSubject("Goody professional");
// //$mail->setBody("blank email");
// $mail->text("Test email from Goody professional food service");
// // dd($mail);
// $mail->send();
// return $this->json(array('success'));
// }
}
?>