src/Controller/Recipes/recipemenubuilderController.php line 100

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Recipes;
  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 CustomerManagementFrameworkBundle\CustomerProvider\CustomerProviderInterface;
  8. use Pimcore\Localization\LocaleServiceInterface;
  9. use Pimcore\Model\DataObject\ClassDefinition\Service;
  10. use Pimcore\Model\DataObject\Users;
  11. use Pimcore\Model\DataObject\Userloyaltyprogram;
  12. use Pimcore\Model\DataObject\Recipe;
  13. use Pimcore\Model\DataObject\Slider;
  14. use CustomerManagementFrameworkBundle\CustomerSaveValidator\Exception\DuplicateCustomerException;
  15. class recipemenubuilderController extends FrontendController{
  16.     
  17.     public function menubuilderlistingAction(Request $request){
  18.         $get_param $request->query->all();
  19.         $category_ids   '';
  20.         $brand_ids      '';
  21.         $query          '';
  22.         $meal_type   '';
  23.         
  24.         if(!empty($get_param)){
  25.             foreach($get_param as $key => $value){
  26.                 if($key == 'category_id'){
  27.                     $category_ids .= str_replace('_',','$value);
  28.                 }
  29.                 if($key == 'brand_id'){
  30.                     $brand_ids .= str_replace('_',','$value);
  31.                 }
  32.                 if($key == 'query'){
  33.                     $query $value;
  34.                 }
  35.                 
  36.                 if($key == 'meal_type'){
  37.                     $meal_type .= str_replace('_',','$value);
  38.                 }
  39.             }
  40.         }
  41.         // if(!empty($category_ids)){
  42.         //     $category_ids = $category_ids;
  43.         // }elseif(!empty($request->get('url')) && empty($get_param)){
  44.         //     $category_ids = (string)$this->getCategoryId($request->get('url'));
  45.         // }
  46.         
  47.         // if(!empty($brand_ids)){
  48.         //     $brand_ids =  array_map('intval',explode(',',$brand_ids));
  49.         // }elseif(!empty($request->get('url')) && empty($get_param)){
  50.         //     $brand_ids = (string)$this->getBrandId($request->get('url'));
  51.         // }
  52.         // if(!empty($meal_type)){
  53.         //     $meal_type =  explode(',',$meal_type);
  54.         // }
  55.     
  56.         $recipes = new Recipe\Listing();
  57.         $menu 0;
  58.         if(!empty($category_ids)){         
  59.             $recipes->addConditionParam("category REGEXP CONCAT('(^|,)(', REPLACE('$category_ids',',', '|'), ')(,|$)')");
  60.             $menu 1;
  61.         }
  62.         
  63.         
  64.         if(!empty($brand_ids)){
  65.            // $recipes->addConditionParam("brands_id IN (?)", [$brand_ids]);
  66.             $recipes->addConditionParam("brands REGEXP CONCAT('(^|,)(', REPLACE('$brand_ids',',', '|'), ')(,|$)')");
  67.             $menu 1;
  68.            
  69.         }
  70.         
  71.         if(!empty($query)){ 
  72.             $recipes->addConditionParam("name LIKE " $recipes->quote("%$query%"));
  73.             $menu 1;
  74.         }
  75.         if(!empty($meal_type)){
  76.             $recipes->addConditionParam("typeofmeal LIKE ?", ["%".$meal_type."%"]);
  77.             $menu 1;
  78.         }
  79.         $page $request->get('page');
  80.         $limit 9;
  81.         if($page == '' || $page ==1){
  82.             $start 0;
  83.             $end $limit;
  84.         }else{
  85.             $start $page*$limit 9;
  86.             $end $limit;
  87.         }
  88.         $recipes->setOffset($start);
  89.         $recipes->setLimit($end);
  90.         $recipes->load();
  91.          // filters
  92.          $filters = array(
  93.             'category_ids'      => $category_ids,
  94.             'brand_ids'         => $brand_ids,
  95.             'query'             => $query,
  96.             'meal_type'         => $meal_type,            
  97.         );
  98.        
  99.        $total_recipes count($recipes);
  100.        $total_pages ceil($total_recipes/9);
  101.        $loyalty_banner = new Slider\Listing();
  102.        $loyalty_banner->setCondition("o_id = 206");
  103.        $loyalty_banner->load();
  104.        foreach($loyalty_banner as $loyaltybanner){
  105.            break;
  106.        }
  107.        $ObjectIds = [];
  108.        foreach($recipes as $Recipes){
  109.            $ObjectIds[] =  $Recipes->getId();
  110.        }
  111.        $uid $this->get('session')->get('loginUID');
  112.        //$rid = $recipedata->getId();
  113.        $Liked = new Userloyaltyprogram\Listing();
  114.       //for($i=0; $i<count($ObjectIds); $i++){
  115.        $Liked->setCondition("op_name = ? and u_id = ? and obj_mod_name = ? and obj_data__id IN (?)",['Like',$uid,'Recipe',$ObjectIds]);
  116.    
  117.       
  118.      //}
  119.     
  120.      $Liked->load();
  121.      $LikedId = [];
  122.      foreach($Liked as $liked){
  123.        $LikedId[]=$liked->getObj_id();
  124.      }
  125.      //dd($LikedId);
  126.     //    $recipe = new Recipe\Listing();
  127.       
  128.     //    $recipe->load();
  129.     //    $recipetype = [];
  130.     //    $recipesarray = [];
  131.     //    $newArray = [];
  132.       
  133.     //    foreach($recipe as $Recipes){
  134.     //    // if ($Recipes->getCuisine() not in $recipesarray){
  135.     //     if (!(in_array($Recipes->getCuisine(), $recipesarray))){
  136.     //    // $recipesarray = $recipesarray|merge([$Recipes->getCuisine()]);
  137.     //     $recipesarray = array_merge($recipesarray,[$Recipes->getCuisine()]);
  138.     //     }
  139.     //        $recipetype[] = $Recipes->getCuisine();
  140.     //    }
  141.     //    //dd($recipesarray);
  142.         return $this->render('menubuilder/menu-builder.html.twig',
  143.         [
  144.             'recipes' => $recipes,
  145.             'total_pages' => $total_pages,
  146.             'loyaltybanner' => $loyaltybanner,
  147.             'filters' => $filters,
  148.             'menu'         => $menu,
  149.             'LikedId'     => $LikedId,
  150.         ]);
  151.     }
  152.     
  153.     public function menubuilderdetailAction(Request $request){
  154.         $url $request->get('url');
  155.         $menu_builder_details = new Recipe\Listing();
  156.         $menu_builder_details->setCondition("url = ?", [$url]);
  157.         $menu_builder_details->load();
  158.         foreach ($menu_builder_details as $menubuilderdetails) {
  159.             break;
  160.         }
  161.         $similar_menu_ideas = new Recipe\Listing();
  162.         $menu_recipe_category $menubuilderdetails->getCuisine();   
  163.         $menu_recipe_name $menubuilderdetails->getName();
  164.         $similar_menu_ideas->setCondition("cuisine IN (?) and name != ?",[$menu_recipe_category $menu_recipe_name]);
  165.         $similar_menu_ideas->setLimit(3);
  166.         $similar_menu_ideas->setOrderKey("RAND()"false);
  167.         $similar_menu_ideas->load();
  168.         $uid $this->get('session')->get('loginUID');
  169.         $rid $menubuilderdetails->getId();
  170.         $Liked = new Userloyaltyprogram\Listing();
  171.         $Liked->setCondition("op_name = ? and u_id = ? and obj_id = ?",['Like',$uid,$rid]);
  172.         $Liked->load();
  173.        
  174.        
  175.         return $this->render('menubuilder/menu-builder-detail.html.twig',
  176.         [
  177.             'menu_builder_details' => $menubuilderdetails,
  178.             'similar_menu_ideas' => $similar_menu_ideas,
  179.             'Liked'=>$Liked,
  180.            
  181.         ]);
  182.     
  183.     }
  184.     /**
  185.      * @Route("/menufilter", name="menufilter")
  186.     */
  187.     public function getmenurecipenamefilter(Request $request){
  188.         $name  $request->get('mune_recipe_name');
  189.         dd($name);
  190.         $Recipe = new Recipe\Listing();
  191.         $Recipe->setCondition("name IN (?)", [[$name]]);
  192.         $brands->load();
  193.        
  194.         if(isset($brand)){
  195.             return $brand;
  196.         }
  197.         return '';
  198.     }
  199.     
  200.     
  201. }
  202. ?>