middleware('active.account'); } public function index() { $this->setFilterVars(); $files = DcFile::where('active', true)->orderBy('id', 'desc')->get(); //File::all(); $filter_list = $this->makeFilterList(); $data = [ 'files' => $files, 'filter_list' => $filter_list, 'tag_ids' => array(), 'resTagIds' => array(), 'search' => false, ]; return view('user.downloadcenter.index', $data); } public function search(){ $request = Request::all(); if(Request::ajax()){ $request['tagIds'] = isset($request['tagIds']) ? $request['tagIds'] : array(); $request['searchinput'] = isset($request['searchinput']) ? $request['searchinput'] : ""; $tag_ids = $request['tagIds']; $searchTags = []; foreach ($tag_ids as $tags) { if($tags != "" && $tags != "0"){ if(is_array($tags)){ foreach ($tags as $tag) { array_push($searchTags, $tag); } }else{ array_push($searchTags, $tags); } } } $q = DcFile::with('fileTag')->where('active', 1); if($request['searchinput'] != ""){ $q->where('original_name', 'LIKE', '%'.$request['searchinput'].'%'); } if(count($searchTags) > 0){ $q->whereHas('fileTag', function ($query) use ($searchTags){ $query->whereIn('tag_id', $searchTags); }); } $files = $q->orderBy('id', 'desc')->get(); $returnContentFiles = view('user.downloadcenter.content-files')->with('files', $files)->render(); /* if(strlen($files) < 1){ $returnContentFiles = "Keine Einträge vorhanden"; }*/ /* $resTagIds = array(); foreach ($files as $file) { foreach ($file->fileTag as $tagId) { if(empty($resTagIds[$tagId->tag_id])){ $resTagIds[$tagId->tag_id] = 1; }else{ $resTagIds[$tagId->tag_id]++; } } } $categories = DcCategory::orderBy('pos')->get(); $data = [ 'categories' => $categories, 'tag_ids' => $tag_ids, 'resTagIds' => $resTagIds, 'search' => true, ]; $returnFilters = view('content-collapse')->with('data', $data)->render(); */ $returnFilters = ""; return response()->json( array('success' => true, 'request' => $request, 'searchTags' => $searchTags, 'content_files'=>$returnContentFiles, 'content_filter'=>$returnFilters) ); } return false; } private function setFilterVars(){ /* if(!session('user_shop_api_orders_filter')){ session(['user_shop_api_orders_filter' => 1]); } if(Request::get('user_shop_api_orders_filter')){ session(['user_shop_api_orders_filter' => Request::get('user_shop_api_orders_filter')]); } */ } private function makeFilterList($archive = false, $request = true) { $ret = []; $categories = DcCategory::where('active', true)->orderBy('pos')->get(); foreach($categories as $category){ $tags = DcTag::where('category_id', $category->id)->where('active', true)->orderBy('pos')->get(); $items = []; foreach ($tags as $tag){ //has file tags $count = DcFileTag::with('dc_file')->where('tag_id', $tag->id)->whereHas('dc_file', function ($query){ $query->where('active', true); })->count(); if($count > 0){ $tag->count = $count; $items[] = $tag; } } if(isset($items) && count($items) > 0){ $ret[$category->id]['items'] = $items; $ret[$category->id]['name'] = $category->name; } } return $ret; } }