src/Controller/Resources/resourcesController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Resources;
  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\Localization\LocaleServiceInterface;
  8. use Pimcore\Model\DataObject\ClassDefinition\Service;
  9. use App\Model\Product\AbstractProduct;
  10. use Pimcore\Bundle\EcommerceFrameworkBundle\Factory;
  11. use Pimcore\Model\DataObject\Resources;
  12. use Pimcore\Model\DataObject\Resourcecategory;
  13. use Pimcore\Model\DataObject\Userloyaltyprogram;
  14. class resourcesController extends FrontendController
  15. {
  16.     public function resourcesAction(Request $request){
  17.         
  18.         $get_param $request->query->all();
  19.         $sub_category_ids '';
  20.         $query '';
  21.         $resources = new Resources\Listing();
  22.         if(!empty($get_param)){
  23.             foreach($get_param as $key => $value){
  24.                 if($key == 'sub_category_id'){
  25.                     $sub_category_ids .= str_replace('_',','$value);
  26.                 }
  27.                 if($key == 'query'){
  28.                     $query $value;
  29.                 }
  30.             }
  31.         }
  32.         $category_ids = (string)$this->getCategoryId($request->get('url'));
  33.         // Get parent Category
  34.         if($category_ids){
  35.             $current_category $this->getCategory($category_ids);            
  36.         }else{
  37.             $current_category = array();
  38.         }
  39.         $category_ids = (string)$this->getCategoryId($request->get('url'));
  40.         
  41.         if(!empty($category_ids)){
  42.             $resources->addConditionParam("category__id IN (?)", [$category_ids]);
  43.         }
  44.         if(!empty($sub_category_ids)){
  45.             $resources->addConditionParam("subcategory REGEXP CONCAT('(^|,)(', REPLACE('$sub_category_ids',',', '|'), ')(,|$)')");
  46.         }
  47.         if(!empty($query)){
  48.             $resources->addConditionParam("name LIKE " $resources->quote("%$query%"));
  49.         }
  50.         if($request->get('most')){
  51.             $resources->addConditionParam("mostpopular = 1");
  52.         }
  53.         $resources->load(); 
  54.         $all_recource_Ids=[];
  55.         foreach($resources as $Resources){
  56.             $all_recource_Ids[] =  $Resources->getId();
  57.         }
  58.         $uid $this->get('session')->get('loginUID');
  59.         $Liked_all_recource = new Userloyaltyprogram\Listing();
  60.         $Liked_all_recource->setCondition("op_name = ? and u_id = ? and obj_mod_name = ? and obj_data__id IN (?)",['Like',$uid,'Article',$all_recource_Ids]);
  61.         $Liked_all_recource->load();
  62.        // dd($Liked_all_recource);
  63.         $Liked_all_recource_Id = [];
  64.         foreach($Liked_all_recource as $liked_all_recource){
  65.         $Liked_all_recource_Id[]=$liked_all_recource->getObj_id();}
  66.        // dd($Liked_all_recource_Id);
  67.         // Resource Sub Category
  68.         $category = new Resourcecategory\Listing(); 
  69.         $category->setCondition("o_parentId IN (?)", [$category_ids]);       
  70.         $category->load();
  71.         // More Topics
  72.         $more_topics = new Resourcecategory\Listing(); 
  73.         $more_topics->setCondition("o_parentId = 269");       
  74.         $more_topics->load();
  75.         
  76.         // Filter sub category
  77.         $filters = array(
  78.             'category_ids'      => $sub_category_ids,    
  79.             'query'             => $query,        
  80.         );
  81.         
  82.         // Popuplar Artical
  83.         $most = new Resources\Listing();
  84.         $most->setCondition('mostpopular IN (?)''1');
  85.         if(!empty($category_ids)){
  86.             $most->addConditionParam("category__id IN (?)", [$category_ids]);
  87.         }
  88.         $most->setLimit('10');
  89.         $most->load();
  90.         $most_popular_Ids =[];
  91.        foreach($most as $Most){
  92.         $most_popular_Ids[]=$Most->getId();
  93.        }
  94.       //dd( $most_popular_Ids);
  95.         $uid $this->get('session')->get('loginUID');
  96.         $Liked_most_popular = new Userloyaltyprogram\Listing();
  97.         $Liked_most_popular->setCondition("op_name = ? and u_id = ? and obj_mod_name = ? and obj_data__id IN (?)",['Like',$uid,'Article',$most_popular_Ids]);
  98.         $Liked_most_popular->load();
  99.         $Liked_most_popular_Id = [];
  100.         foreach($Liked_most_popular as $liked_most_popular){
  101.         $Liked_most_popular_Id[]=$liked_most_popular->getObj_id();}
  102.         //dd($Liked_most_popular_Id);
  103.         
  104.         return $this->render('Resources/resources.html.twig', [
  105.                 'categories'        => $category,
  106.                 'more_topics'       => $more_topics,
  107.                 'resources'         => $resources,   
  108.                 'filters'           => $filters,
  109.                 'most'              => $most,
  110.                 'current_category'  => $current_category,
  111.                 'Liked_most_popular_Id'=>$Liked_most_popular_Id,
  112.                 'Liked_all_recource_Id'=>$Liked_all_recource_Id,
  113.             ]);
  114.     }
  115.     
  116.     public function getCategoryId($url ''){
  117.         $categories = new Resourcecategory\Listing();
  118.         $categories->setCondition("url IN (?)", [[$url]]);
  119.         $categories->load();
  120.         foreach($categories as $category){
  121.             $category_id $category->getId();
  122.             break;
  123.         }
  124.         if(isset($category_id)){
  125.             return $category_id;
  126.         }
  127.         return '';
  128.     }
  129.     public function getCategory($id ''){
  130.         $categories = new Resourcecategory\Listing();
  131.         $categories->setCondition("o_id IN (?)", [[$id]]);
  132.         $categories->load();
  133.         foreach($categories as $category){
  134.             break;
  135.         }
  136.         if(isset($category)){
  137.             return $category;
  138.         }
  139.         return '';
  140.     }
  141.  
  142.    
  143.   
  144. }
  145. ?>