src/Controller/commonController.php line 62

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 Pimcore\Model\DataObject\Trendingrecipes;
  10. use Pimcore\Model\DataObject\Recipe;
  11. use Pimcore\Model\DataObject\Recipecategory;
  12. use Pimcore\Model\DataObject\Category;
  13. use Pimcore\Model\DataObject\Brands;
  14. use Pimcore\Model\DataObject\NewsLetterHeader;
  15. use Pimcore\Model\DataObject\Resourcecategory;
  16. use Pimcore\Model\DataObject\Newsletter;
  17. use Pimcore\Bundle\EcommerceFrameworkBundle\Exception\VoucherServiceException;
  18. use Pimcore\Bundle\EcommerceFrameworkBundle\Factory;
  19. use Pimcore\Localization\LocaleServiceInterface;
  20. use Pimcore\Model;
  21. use Pimcore\Model\DataObject\ClassDefinition\Service;
  22. use Pimcore\Bundle\EcommerceFrameworkBundle\EnvironmentInterface;
  23. use Pimcore\Bundle\EcommerceFrameworkBundle\CartManager\MultiCartManager;
  24. use Pimcore\Db;
  25. class commonController extends FrontendController
  26. {
  27.     const DEFAULT_CART_NAME 'cart';
  28.     protected $factory;
  29.     protected $environment;
  30.     protected $event;
  31.      public function __construct(Factory $factoryEnvironmentInterface $environment)
  32.     {
  33.         $this->factory $factory;
  34.         $this->environment $environment;
  35.     }
  36.     protected function getCart()
  37.     {
  38.         $cartManager Factory::getInstance()->getCartManager();
  39.         return $cartManager->getOrCreateCartByName(self::DEFAULT_CART_NAME);
  40.     }
  41.     public function cartItems()
  42.     {
  43.         $cartCount 0;          
  44.         $cart =   $this->getCart();
  45.             
  46.         foreach($cart->getItems() as $item){
  47.             $cartCount += $item->getCount();       
  48.         }
  49.         return $cartCount;            
  50.     }
  51.     public function headAction(Request $request)
  52.     {
  53.         $countries \Pimcore::getContainer()->get(LocaleServiceInterface::class)->getDisplayRegions();
  54.         asort($countries);
  55.         $categories = new Category\Listing();
  56.         $categories->setOrderKey('order');
  57.         $categories->setOrder("ASC");
  58.         $categories->setLimit('10');
  59.         $brands = new Brands\Listing();
  60.         $brands->setOrderKey('order');
  61.         $brands->setOrder("ASC");
  62.         $brands->setLimit('5');
  63.         $resources = new Resourcecategory\Listing();
  64.         $resources->setCondition("o_parentId = 269");
  65.         $resources->setOrderKey('name');
  66.         $resources->setLimit('20');
  67.         $resources->setOrder("ASC");
  68.         $recipes = new Recipe\Listing();
  69.         $recipes->setOrderKey('name');
  70.         $recipes->setLimit('5');
  71.         $recipes->setOrder("ASC");
  72.         $recipescategory = new Recipecategory\Listing();
  73.         
  74.         $newsletter NewsLetterHeader::getByPath("/NewsLetterHead/Newsletter");
  75.         //latestPdf
  76.         $newsletterLatest = new NewsLetterHeader\Listing();
  77.         $newsletterLatest->setCondition('o_id NOT IN (?)',[$newsletter->getId()]);
  78.         $newsletterLatest->setOrderKey("oo_id");
  79.         $newsletterLatest->setOrder("desc");
  80.         $newsletterLatest->setLimit('1');
  81.         $newsletterLatest->load();
  82.         $newsletterLatest$newsletterLatest->current() ?? null;
  83.         $pdf "";
  84.         if ($newsletterLatest) {
  85.             $pdf $newsletterLatest->getPdf();
  86.         }else{
  87.             $pdf $newsletter->getPdf();
  88.         }
  89.         $cartCount $this->cartItems();
  90.         return $this->render('includes/top-head.html.twig',
  91.                                 [
  92.                                     'categories'        => $categories,
  93.                                     'brands'            => $brands,
  94.                                     'resources'         => $resources,
  95.                                     'cartCount'         => $cartCount,
  96.                                     'recipes'           => $recipes,
  97.                                     'recipescategory'           => $recipescategory,
  98.                                     'newsletter' => $newsletter,
  99.                                     'newsletterPdf' => $pdf,
  100.                                 ]);
  101.     }
  102.     public function footerAction(Request $request)
  103.     {
  104.         $countries \Pimcore::getContainer()->get(LocaleServiceInterface::class)->getDisplayRegions();
  105.         asort($countries);
  106.         $categories = new Category\Listing();
  107.         $categories->setOrderKey('order');
  108.         $categories->setOrder("ASC");
  109.         $categories->setLimit('10');
  110.         // $brands = new Brands\Listing();
  111.         // $brands->setOrderKey('name');
  112.         // $brands->setLimit('5');
  113.         // $brands->setOrder("ASC");
  114.         
  115.         
  116.         $recipes = new Recipe\Listing();
  117.         $recipes->setOrderKey('name');
  118.         $recipes->setLimit('5');
  119.         $recipes->setOrder("ASC");
  120.         $recipescategory = new Recipecategory\Listing();
  121.         return $this->render('includes/footer.html.twig',
  122.                                 [
  123.                                     'categories'        => $categories,
  124.                                     'recipes'           => $recipes,
  125.                                     'recipescategory'           => $recipescategory,
  126.                                     
  127.                                 ]);
  128.     }
  129.     /**
  130.      * @Route("/validate-newsletter", name="validate-newsletter")
  131.     */
  132.     public function newsletterValidation(Request $request){
  133.         if($request->get('email')){
  134.             $user Newsletter::getByEmail($request->get('email'));
  135.             $user->load();
  136.             if($user->getData()){
  137.                 $text 'This email address has already Subscribe.';
  138.             }else{
  139.                 $text '';
  140.             }
  141.         }
  142.         return $this->json(array('success'=>$text));
  143.     }
  144.     public function newsletterAction(Request $request)
  145.     {   $success false;
  146.         if( $request->get('email')){
  147.             $success false;
  148.             $Newsletter = new Newsletter();
  149.             $Newsletter->setKey(\Pimcore\File::getValidFilename($request->get('email')));
  150.             $Newsletter->setParent(DataObject\Folder::getByPath('/Newsletter/'));
  151.             $Newsletter->setEmail(strip_tags($request->get('email')));
  152.             $Newsletter->setPublished(true);
  153.             $result $Newsletter->save();
  154.            
  155.             if($result){
  156.                 $success true;
  157.             }else{
  158.                 $success false;
  159.             }
  160.             
  161.         }else{
  162.             $success false;
  163.         }
  164.         
  165.         return $this->json(array('success'=> $success));
  166.         //return $this->render('includes/footer.html.twig');
  167.         
  168.     }
  169. }
  170. ?>