<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface;
use Pimcore\Bundle\EcommerceFrameworkBundle\IndexService\ProductList\ProductListInterface;
use Pimcore\Model\DataObject;
use Symfony\Component\Intl\Intl;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
// class ContentController extends \Website\Controller\Action
class ContentController extends Action {
//public function init() {
public function onKernelController(FilterControllerEvent $event)
{
parent::onKernelController($event);
$params = $event->getRequest()->request->all();
$this->view->preview = $event->getRequest()->get('pimcore_preview');
}
public function portalAction (Request $request) {
//$this->layout()->setLayout('product');
//$this->enableLayout();
$data = [];
$lastlogin = '';
$data['locale'] = strtolower($request->getLocale());
$data['params'] = $request->request->all();
$data['preview'] = $request->get('pimcore_preview',null);
// Set Us as default country
$defaultCountry = DataObject\AvailabilityCountry::getByPath('/availability-countries/us');
if(isset($this->country)){
$availableCountry = $this->country;
}else{
$availableCountry = $defaultCountry;
//$this->view->country = $defaultCountry;
$data['country'] = $defaultCountry;
}
//$authNamespace = new Zend_Session_Namespace('Zend_Auth');
$session = $request->getSession();
$authNamespace = $session->getBag('espirit');
$data['lastlogin'] = '';
if ($authNamespace && $authNamespace->get('customeraccount')) {
$orders = new DataObject\OnlineShopOrder\Listing();
$orders->setCondition(" customer__id = '" . $authNamespace->get('customeraccount')->getId() . "'");
$orders->setOrderKey("orderdate",false);
$orders->setOrder("desc");
$orders->setLimit(1);
$orders->load();
$orders = $orders->getData();
if (!empty($orders)) {
$order = $orders[0];
$lastlogin = $order->getOrderDate()->getTimestamp();
$data['lastlogin'] = $lastlogin;
} else {
$lastlogin = $authNamespace->get('customeraccount')->getLastLoginDate()->getTimestamp();
//$this->view->lastlogin = $lastlogin;
$data['lastlogin'] = $lastlogin;
}
}
// create product list
$products = \Pimcore\Bundle\EcommerceFrameworkBundle\Factory::getInstance()->getIndexService()->getProductListForCurrentTenant();
$products->setVariantMode(ProductListInterface::VARIANT_MODE_HIDE);
// $products->addRelationCondition('CountryAvailabilityList', "dest IN (" . $availableCountry->getId() . ")");
// $products->addCondition("is_default = 1");
$products->setOrderKey("modificationDate");
$products->setOrder("DESC");
$products->setLimit(10);
$data['products'] = $products;
$data['heading'] = '';
//Get CurrentUser Email
if ($authNamespace->get('customeraccount')) {
$data['useremail'] = $authNamespace->get('customeraccount')->getEmail();
$data['FirstName'] = $authNamespace->get('customeraccount')->getFirstName();
$data['LastName'] = $authNamespace->get('customeraccount')->getLastName();
}else{
$data['useremail'] = "";
}
return $this->render('Content/portal.html.twig', $data);
}
public function defaultAction (Request $request) {
// $this->enableLayout();
}
public function landingPageAction(Request $request) {
//$this->enableLayout();
}
public function redirectAction(Request $request) {
return $this->redirect('/en');
}
public function tenantSwitchesAction(Request $request) {
//$this->enableLayout();
$environment = \Pimcore\Bundle\EcommerceFrameworkBundle\Factory::getInstance()->getEnvironment();
if($request->get("change-checkout-tenant")) {
$checkoutTenant = $request->get("change-checkout-tenant");
$checkoutTenant = $checkoutTenant == "default" ? "" : $checkoutTenant;
$environment->setCurrentCheckoutTenant(strip_tags($checkoutTenant));
$environment->save();
}
if($request->get("change-assortment-tenant")) {
$assortmentTenant = $request->get("change-assortment-tenant");
$assortmentTenant = $assortmentTenant == "default" ? "" : $assortmentTenant;
$environment->setCurrentAssortmentTenant(strip_tags($assortmentTenant));
$environment->save();
}
$this->view->checkoutTenants = array("default", "noShipping", "expensiveShipping", "paypal", "datatrans", "otherFolder");
$this->view->currentCheckoutTenant = $environment->getCurrentCheckoutTenant() ? $environment->getCurrentCheckoutTenant() : "default";
$this->view->assortmentTenants = array("default", "OptimizedMysql");
$this->view->currentAssortmentTenant = $environment->getCurrentAssortmentTenant() ? $environment->getCurrentAssortmentTenant() : "default";
}
public function footerAction(Request $request) {
return $this->render('Content/footer.html.twig');
}
public function contactUsAction(Request $request) {
//Function for Contact-Us Page
$params = [];
$params['locale'] = strtolower($request->getLocale());
$params['document'] = $this->document;
$params['params'] = $request->request->all();
$params['preview'] = $request->get('pimcore_preview',null);
$params['actual_link'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
// Set Us as default country
$defaultCountry = DataObject\AvailabilityCountry::getByPath('/availability-countries/us');
if(isset($this->country)){
$availableCountry = $this->country;
}else{
$availableCountry = $defaultCountry;
$params['country'] = $defaultCountry;
}
$mailSent = '';
if(!empty($request->request->all()) && !empty($request->get("userEmail"))){
$params = $request->request->all();
$mail = new \Pimcore\Mail();
$mail->setIgnoreDebugMode(true);
$mail->setDocument('/emails/contact-form-confirmation');
$mail->setParams($params);
$mail->send();
if($mail){
$mailSent = 'Email Sent';
}else{
$mailSent = 'Something went wrong!!';
}
}
$params['mailSent'] = $mailSent;
return $this->render('Content/contactUs.html.twig',$params);
}
public function pageAction(Request $request){
/*if ($this->user) {
//$this->layout()->setLayout('product');
//$this->enableLayout();
} else {
//$this->layout()->setLayout('signin');
//$this->enableLayout();
}*/
$params = [];
$params['params'] = $request->request->all();
$params['preview'] = $request->get('pimcore_preview',null);
$defaultCountry = DataObject\AvailabilityCountry::getByPath('/availability-countries/us');
if(isset($this->country)){
$availableCountry = $this->country;
}else{
$availableCountry = $defaultCountry;
$params['country'] = $defaultCountry;
}
$params['locale'] = strtolower($request->getLocale());
$params['user'] = $this->user;
//$this->view->user = $this->user;
return $this->render('Content/page.html.twig',$params);
}
public function learningGuideAction(Request $request) {
//$this->layout()->setLayout('learningguide');
//$this->enableLayout();
$lgid = $request->get("id");
if ($lgid) {
$learningguide = \DataObject\LearningGuide::getById($lgid);
$this->view->learningguide = $learningguide;
}
}
public function learningGuideListAction(Request $request) {
//$this->layout()->setLayout('learningguide');
//$this->enableLayout();
$vlgs = new DataObject\LearningGuide\Listing();
$this->view->vlgs = $vlgs;
}
}